[liblingua-stem-snowball-perl] 12/19: new upstream release
dom at earth.li
dom at earth.li
Sun Apr 24 10:25:24 UTC 2016
This is an automated email from the git hooks/post-receive script.
dom pushed a commit to branch master
in repository liblingua-stem-snowball-perl.
commit 9b6bdfb2e7ff59d26b6dc51d962b45b6a23650fb
Author: Dominic Hargreaves <dom at earth.li>
Date: Mon Feb 23 16:17:38 2009 +0000
new upstream release
---
Build.PL | 9 +-
Changes | 11 +
MANIFEST | 26 +-
META.yml | 7 +-
README | 7 +-
bin/generate_tests.plx | 63 -
debian/changelog | 6 +
debian/rules | 4 +-
{bin => devel}/benchmark_stemmers.plx | 22 +-
devel/generate_tests.plx | 93 +
lib/Lingua/Stem/Snowball.pm | 74 +-
lib/Lingua/Stem/Snowball.xs | 237 ++-
libstemmer_c/MANIFEST | 72 +
libstemmer_c/README | 43 +
libstemmer_c/examples/stemwords.c.disabled | 44 +-
libstemmer_c/libstemmer/libstemmer.c | 5 +-
.../{libstemmer.c => libstemmer_utf8.c.disabled} | 7 +-
libstemmer_c/libstemmer/modules.h | 42 +-
libstemmer_c/libstemmer/modules.txt | 50 +
libstemmer_c/libstemmer/modules_utf8.h | 121 ++
libstemmer_c/libstemmer/modules_utf8.txt | 49 +
libstemmer_c/mkinc.mak | 137 +-
libstemmer_c/mkinc_utf8.mak | 52 +
libstemmer_c/runtime/api.c | 17 +-
libstemmer_c/runtime/api.h | 7 +-
libstemmer_c/runtime/header.h | 38 +-
libstemmer_c/runtime/utilities.c | 168 +-
libstemmer_c/src_c/stem_ISO_8859_1_danish.c | 247 ++-
libstemmer_c/src_c/stem_ISO_8859_1_dutch.c | 365 ++--
libstemmer_c/src_c/stem_ISO_8859_1_english.c | 907 ++++----
libstemmer_c/src_c/stem_ISO_8859_1_finnish.c | 582 +++---
libstemmer_c/src_c/stem_ISO_8859_1_french.c | 1326 ++++++------
libstemmer_c/src_c/stem_ISO_8859_1_german.c | 331 ++-
libstemmer_c/src_c/stem_ISO_8859_1_hungarian.c | 1230 +++++++++++
libstemmer_c/src_c/stem_ISO_8859_1_hungarian.h | 16 +
libstemmer_c/src_c/stem_ISO_8859_1_italian.c | 804 ++++---
libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c | 223 +-
libstemmer_c/src_c/stem_ISO_8859_1_porter.c | 553 +++--
libstemmer_c/src_c/stem_ISO_8859_1_portuguese.c | 742 ++++---
libstemmer_c/src_c/stem_ISO_8859_1_spanish.c | 808 ++++---
libstemmer_c/src_c/stem_ISO_8859_1_swedish.c | 242 +--
libstemmer_c/src_c/stem_ISO_8859_2_romanian.c | 998 +++++++++
libstemmer_c/src_c/stem_ISO_8859_2_romanian.h | 16 +
libstemmer_c/src_c/stem_KOI8_R_russian.c | 489 +++--
libstemmer_c/src_c/stem_UTF_8_danish.c | 257 ++-
libstemmer_c/src_c/stem_UTF_8_dutch.c | 403 ++--
libstemmer_c/src_c/stem_UTF_8_english.c | 937 ++++-----
libstemmer_c/src_c/stem_UTF_8_finnish.c | 608 +++---
libstemmer_c/src_c/stem_UTF_8_french.c | 1358 ++++++------
libstemmer_c/src_c/stem_UTF_8_german.c | 357 ++--
libstemmer_c/src_c/stem_UTF_8_hungarian.c | 1234 +++++++++++
libstemmer_c/src_c/stem_UTF_8_hungarian.h | 16 +
libstemmer_c/src_c/stem_UTF_8_italian.c | 842 ++++----
libstemmer_c/src_c/stem_UTF_8_norwegian.c | 233 +--
libstemmer_c/src_c/stem_UTF_8_porter.c | 581 +++---
libstemmer_c/src_c/stem_UTF_8_portuguese.c | 774 ++++---
libstemmer_c/src_c/stem_UTF_8_romanian.c | 1004 +++++++++
libstemmer_c/src_c/stem_UTF_8_romanian.h | 16 +
libstemmer_c/src_c/stem_UTF_8_russian.c | 491 +++--
libstemmer_c/src_c/stem_UTF_8_spanish.c | 834 ++++----
libstemmer_c/src_c/stem_UTF_8_swedish.c | 250 ++-
libstemmer_c/src_c/stem_UTF_8_turkish.c | 2205 ++++++++++++++++++++
libstemmer_c/src_c/stem_UTF_8_turkish.h | 16 +
ppport.h | 1221 ++++++++---
t/2-full.t | 65 +-
t/99-TestPodCoverage.t | 4 +-
t/test_voc/hu.default_enc | 100 +
t/test_voc/hu.utf8 | 100 +
t/test_voc/ro.default_enc | 100 +
t/test_voc/ro.utf8 | 100 +
t/test_voc/tr.utf8 | 100 +
typemap | 23 +
72 files changed, 16731 insertions(+), 8788 deletions(-)
diff --git a/Build.PL b/Build.PL
index f8707e8..5a9922a 100644
--- a/Build.PL
+++ b/Build.PL
@@ -7,12 +7,15 @@ my $builder = Module::Build->new(
license => 'perl',
dist_author => 'Marvin Humphrey <marvin at rectangular dot com>',
dist_version_from => 'lib/Lingua/Stem/Snowball.pm',
- requires => { 'Test::More' => 0, },
+ requires => {
+ 'Test::More' => 0,
+ 'perl' => '5.6.2',
+ },
build_requires => {
'ExtUtils::CBuilder' => 0,
'ExtUtils::ParseXS' => 0,
- },
- add_to_cleanup =>
+ },
+ add_to_cleanup =>
[ 'Lingua-Stem-Snowball-*', 'MANIFEST.bak', 'Makefile' ],
create_makefile_pl => 'passthrough',
c_source => 'libstemmer_c',
diff --git a/Changes b/Changes
index 1d9282b..7c8a51c 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,14 @@
+v0.952 2008-08-28
+ * Export C symbols via PL_modglobal.
+
+v0.951 2008-08-21
+ * Fix Perl 5.6.2 compatibility.
+ * Specify Perl 5.6.2 as a minimum version.
+
+v0.95 2008-08-17
+ * Add Hungarian, Romanian, and Turkish.
+ * Export Snowball C symbols via DynaLoader.
+
v0.941 2006-08-18
* Add ExtUtils::CBuilder and ExtUtils::ParseXS as dependencies now that
Module::Build doesn't do it's own C handling.
diff --git a/MANIFEST b/MANIFEST
index c55788f..7b8047f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,15 +1,21 @@
-bin/benchmark_stemmers.plx
-bin/generate_tests.plx
Build.PL
Changes
+devel/benchmark_stemmers.plx
+devel/generate_tests.plx
lib/Lingua/Stem/Snowball.pm
lib/Lingua/Stem/Snowball.xs
libstemmer_c/examples/stemwords.c.disabled
libstemmer_c/include/libstemmer.h
libstemmer_c/libstemmer/libstemmer.c
+libstemmer_c/libstemmer/libstemmer_utf8.c.disabled
libstemmer_c/libstemmer/modules.h
+libstemmer_c/libstemmer/modules.txt
+libstemmer_c/libstemmer/modules_utf8.h
+libstemmer_c/libstemmer/modules_utf8.txt
libstemmer_c/Makefile
+libstemmer_c/MANIFEST
libstemmer_c/mkinc.mak
+libstemmer_c/mkinc_utf8.mak
libstemmer_c/README
libstemmer_c/runtime/api.c
libstemmer_c/runtime/api.h
@@ -27,6 +33,8 @@ libstemmer_c/src_c/stem_ISO_8859_1_french.c
libstemmer_c/src_c/stem_ISO_8859_1_french.h
libstemmer_c/src_c/stem_ISO_8859_1_german.c
libstemmer_c/src_c/stem_ISO_8859_1_german.h
+libstemmer_c/src_c/stem_ISO_8859_1_hungarian.c
+libstemmer_c/src_c/stem_ISO_8859_1_hungarian.h
libstemmer_c/src_c/stem_ISO_8859_1_italian.c
libstemmer_c/src_c/stem_ISO_8859_1_italian.h
libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c
@@ -39,6 +47,8 @@ libstemmer_c/src_c/stem_ISO_8859_1_spanish.c
libstemmer_c/src_c/stem_ISO_8859_1_spanish.h
libstemmer_c/src_c/stem_ISO_8859_1_swedish.c
libstemmer_c/src_c/stem_ISO_8859_1_swedish.h
+libstemmer_c/src_c/stem_ISO_8859_2_romanian.c
+libstemmer_c/src_c/stem_ISO_8859_2_romanian.h
libstemmer_c/src_c/stem_KOI8_R_russian.c
libstemmer_c/src_c/stem_KOI8_R_russian.h
libstemmer_c/src_c/stem_UTF_8_danish.c
@@ -53,6 +63,8 @@ libstemmer_c/src_c/stem_UTF_8_french.c
libstemmer_c/src_c/stem_UTF_8_french.h
libstemmer_c/src_c/stem_UTF_8_german.c
libstemmer_c/src_c/stem_UTF_8_german.h
+libstemmer_c/src_c/stem_UTF_8_hungarian.c
+libstemmer_c/src_c/stem_UTF_8_hungarian.h
libstemmer_c/src_c/stem_UTF_8_italian.c
libstemmer_c/src_c/stem_UTF_8_italian.h
libstemmer_c/src_c/stem_UTF_8_norwegian.c
@@ -61,12 +73,16 @@ libstemmer_c/src_c/stem_UTF_8_porter.c
libstemmer_c/src_c/stem_UTF_8_porter.h
libstemmer_c/src_c/stem_UTF_8_portuguese.c
libstemmer_c/src_c/stem_UTF_8_portuguese.h
+libstemmer_c/src_c/stem_UTF_8_romanian.c
+libstemmer_c/src_c/stem_UTF_8_romanian.h
libstemmer_c/src_c/stem_UTF_8_russian.c
libstemmer_c/src_c/stem_UTF_8_russian.h
libstemmer_c/src_c/stem_UTF_8_spanish.c
libstemmer_c/src_c/stem_UTF_8_spanish.h
libstemmer_c/src_c/stem_UTF_8_swedish.c
libstemmer_c/src_c/stem_UTF_8_swedish.h
+libstemmer_c/src_c/stem_UTF_8_turkish.c
+libstemmer_c/src_c/stem_UTF_8_turkish.h
Makefile.PL
MANIFEST
META.yml Module meta-data (added by MakeMaker)
@@ -90,6 +106,8 @@ t/test_voc/fi.default_enc
t/test_voc/fi.utf8
t/test_voc/fr.default_enc
t/test_voc/fr.utf8
+t/test_voc/hu.default_enc
+t/test_voc/hu.utf8
t/test_voc/it.default_enc
t/test_voc/it.utf8
t/test_voc/nl.default_enc
@@ -98,7 +116,11 @@ t/test_voc/no.default_enc
t/test_voc/no.utf8
t/test_voc/pt.default_enc
t/test_voc/pt.utf8
+t/test_voc/ro.default_enc
+t/test_voc/ro.utf8
t/test_voc/ru.default_enc
t/test_voc/ru.utf8
t/test_voc/sv.default_enc
t/test_voc/sv.utf8
+t/test_voc/tr.utf8
+typemap
diff --git a/META.yml b/META.yml
index cfcb152..c253f88 100644
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
---
name: Lingua-Stem-Snowball
-version: 0.941
+version: 0.952
author:
- 'Marvin Humphrey <marvin at rectangular dot com>'
abstract: Perl interface to Snowball stemmers.
@@ -9,14 +9,15 @@ resources:
license: http://dev.perl.org/licenses/
requires:
Test::More: 0
+ perl: 5.6.2
build_requires:
ExtUtils::CBuilder: 0
ExtUtils::ParseXS: 0
provides:
Lingua::Stem::Snowball:
file: lib/Lingua/Stem/Snowball.pm
- version: 0.941
-generated_by: Module::Build version 0.2805
+ version: 0.952
+generated_by: Module::Build version 0.2808
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.2.html
version: 1.2
diff --git a/README b/README
index ebb877a..83858ac 100644
--- a/README
+++ b/README
@@ -12,11 +12,16 @@ To install this module type the following:
COPYRIGHT AND LICENCE
-Currently maintained by Fabien Potencier, fabpot at cpan.org
+Perl bindings copyright 2004-2008 by Marvin Humphrey, Fabien Potencier, Oleg
+Bartunov and Teodor Sigaev.
+
+Currently maintained by Marvin Humphrey, marvin at rectangular dot com
Original authors Oleg Bartunov, oleg at sai.msu.su, Teodor Sigaev, teodor at stack.net
+Previously maintained by Fabien Potencier, fabpot at cpan.org
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.3 or,
at your option, any later version of Perl 5 you may have available.
Snowball files and stemmers are covered by the BSD license.
+
diff --git a/bin/generate_tests.plx b/bin/generate_tests.plx
deleted file mode 100755
index 62b9a4b..0000000
--- a/bin/generate_tests.plx
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-
-# generate_tests.plx
-#
-# Grab a sampling of vocab diffs from Snowball project and generate test pairs
-# in both the default encoding and UTF-8.
-
-use Encode;
-use Getopt::Long qw( GetOptions );
-use File::Spec::Functions qw( catfile catdir );
-
-# --snowdir must be the "snowball_all" directory
-my $snowdir;
-GetOptions( 'snowdir=s' => \$snowdir );
-die "Usage: ./bin/generate_tests.plx --snowdir=SNOWDIR"
- unless defined $snowdir;
-
-my %languages = (
- en => 'english',
- da => 'danish',
- de => 'german',
- es => 'spanish',
- fi => 'finnish',
- fr => 'french',
- it => 'italian',
- nl => 'dutch',
- no => 'norwegian',
- pt => 'portuguese',
- ru => 'russian',
- sv => 'swedish',
-);
-
-# create t/testvoc if it doesn't exist already
-my $test_voc_dir = catdir( 't', 'test_voc' );
-if ( !-d $test_voc_dir ) {
- mkdir $test_voc_dir or die $!;
-}
-
-while ( my ( $iso, $language ) = each %languages ) {
- # suck in all the lines of the relevant diffs.txt.
- my $in_filepath
- = catfile( $snowdir, 'algorithms', $language, 'diffs.txt' );
- open( my $in_fh, '<', $in_filepath ) or die $!;
- my @diffs = <$in_fh>;
-
- # these files are in the default encoding, so we'll have to decode UTF-8
- my $source_enc = $iso eq 'ru' ? 'koi8-r' : 'iso-8859-1';
- open( my $utf8_fh, '>:utf8', catfile( $test_voc_dir, "$iso.utf8" ) )
- or die $!;
- open( my $default_fh, ">", catfile( $test_voc_dir, "$iso.default_enc" ) )
- or die $!;
-
- # grab 100 random pairs
- for ( 1 .. 100 ) {
- my $pair = $diffs[ rand @diffs ];
- print $default_fh $pair or die $!;
- $pair = decode( $source_enc, $pair );
- print $utf8_fh $pair or die $!;
- }
-}
-
diff --git a/debian/changelog b/debian/changelog
index 4a6b61f..3c8ab27 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+liblingua-stem-snowball-perl (0.952-1) UNRELEASED; urgency=low
+
+ * New upstream release
+
+ -- Dominic Hargreaves <dom at earth.li> Mon, 23 Feb 2009 16:16:27 +0000
+
liblingua-stem-snowball-perl (0.941-2) unstable; urgency=low
* Clarify copyright file further
diff --git a/debian/rules b/debian/rules
index b9f1af3..544c80a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -48,7 +48,7 @@ install-stamp: build-stamp
# Add commands to install the package into $(TMP) here
$(PERL) Build install destdir=$(TMP) create_packlist=0
# Install these as examples instead
- rm -f $(TMP)/usr/bin/benchmark_stemmers.plx $(TMP)/usr/bin/generate_tests.plx
+ rm -f $(TMP)/usr/devel/benchmark_stemmers.plx $(TMP)/usr/devel/generate_tests.plx
rmdir --ignore-fail-on-non-empty $(TMP)/usr/bin
touch $@
@@ -62,7 +62,7 @@ binary-arch: build install
dh_testdir
dh_testroot
dh_installdocs
- dh_installexamples bin/benchmark_stemmers.plx bin/generate_tests.plx
+ dh_installexamples devel/benchmark_stemmers.plx devel/generate_tests.plx
dh_installchangelogs Changes
dh_shlibdeps
dh_strip
diff --git a/bin/benchmark_stemmers.plx b/devel/benchmark_stemmers.plx
similarity index 89%
rename from bin/benchmark_stemmers.plx
rename to devel/benchmark_stemmers.plx
index b4d3b10..77b834e 100755
--- a/bin/benchmark_stemmers.plx
+++ b/devel/benchmark_stemmers.plx
@@ -15,10 +15,10 @@ my $timer = Benchmark::Timer->new;
die "Usage: ./bin/benchmark_stemmers.plx TEXTFILES"
unless @ARGV;
-# retrieve, pre-process and tokenize text
+# Retrieve, pre-process and tokenize text.
sub retrieve_text {
my $filepath = shift;
- my $text = do {
+ my $text = do {
open( my $fh, '<', $filepath )
or die "Couldn't open file '$filepath' for reading: $!";
local $/;
@@ -33,7 +33,7 @@ sub retrieve_text {
}
my @token_arrays = map { retrieve_text($_) } @ARGV;
-# prepare vars used in the report
+# Prepare vars used in the report.
my %unique;
my $num_tokens = 0;
for my $tokens (@token_arrays) {
@@ -48,7 +48,7 @@ for my $iter ( 1 .. ITERS ) {
my $snowball = Lingua::Stem::Snowball->new( lang => 'en' );
my $lingua_stem = Lingua::Stem->new( -locale => 'EN' );
- # LS without cache
+ # LS without cache.
for my $tokens (@token_arrays) {
$timer->start('LS');
$out = $lingua_stem->stem(@$tokens);
@@ -56,23 +56,23 @@ for my $iter ( 1 .. ITERS ) {
undef $out;
}
- # turn stem_caching on for LS
+ # Turn stem_caching on for LS.
$lingua_stem->stem_caching( { -level => 2 } );
for my $tokens (@token_arrays) {
- # LS, with stem caching
+ # LS, with stem caching.
$timer->start('LS2');
$out = $lingua_stem->stem(@$tokens);
$timer->stop('LS2');
undef $out;
- # LSS
+ # LSS.
$timer->start('LSS');
@out = $snowball->stem($tokens);
$timer->stop('LSS');
undef @out;
- # stem_in_place, if this version of LSS is recent enough
+ # stem_in_place, if this version of LSS is recent enough.
if ( $snowball->can('stem_in_place') ) {
my @copy = @$tokens;
$timer->start('LSS2');
@@ -81,7 +81,7 @@ for my $iter ( 1 .. ITERS ) {
}
}
- # LS's stem_cache is global per locale, so clear it each iter
+ # LS's stem_cache is global per -locale, so clear it each iter.
$lingua_stem->clear_stem_cache;
}
@@ -89,10 +89,10 @@ my $ls_ver = $Lingua::Stem::VERSION;
my $lss_ver = $Lingua::Stem::Snowball::VERSION;
$lss_ver =~ s/_.*//;
my %results = $timer->results;
-# make each result the average time per iter to stem all docs
+# Make each result the average time per iter to stem all docs.
$_ *= scalar @ARGV for values %results;
-# print the report
+# Print the report.
printf( '
|--------------------------------------------------------------------|
| total words: %-6d | unique words: %-6d |
diff --git a/devel/generate_tests.plx b/devel/generate_tests.plx
new file mode 100755
index 0000000..1c1e304
--- /dev/null
+++ b/devel/generate_tests.plx
@@ -0,0 +1,93 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+# generate_tests.plx
+#
+# Grab a sampling of vocab diffs from Snowball project and generate test pairs
+# in both the default encoding and UTF-8.
+
+use Encode;
+use Getopt::Long qw( GetOptions );
+use File::Spec::Functions qw( catfile catdir );
+
+# --snowdir must be the "snowball_all" directory
+my $snowdir;
+GetOptions( 'snowdir=s' => \$snowdir );
+die "Usage: perl devel/generate_tests.plx --snowdir=SNOWDIR"
+ unless defined $snowdir;
+
+my %languages = (
+ en => 'english',
+ da => 'danish',
+ de => 'german',
+ es => 'spanish',
+ fi => 'finnish',
+ fr => 'french',
+ it => 'italian',
+ nl => 'dutch',
+ hu => 'hungarian',
+ no => 'norwegian',
+ pt => 'portuguese',
+ ro => 'romanian',
+ ru => 'russian',
+ sv => 'swedish',
+ tr => 'turkish',
+);
+
+# Create t/test_voc if it doesn't exist already.
+my $test_voc_dir = catdir( 't', 'test_voc' );
+if ( !-d $test_voc_dir ) {
+ mkdir $test_voc_dir or die $!;
+}
+
+while ( my ( $iso, $language ) = each %languages ) {
+ # Only create new files, don't mod existing ones.
+ my $utf8_filepath = catfile( $test_voc_dir, "$iso.utf8" );
+ my $default_filepath = catfile( $test_voc_dir, "$iso.default_enc" );
+ next if ( -e $utf8_filepath and -e $default_filepath );
+ my ( $utf8_fh, $default_fh );
+ if ( 1 or !-e $utf8_filepath ) {
+ open( $utf8_fh, '>:utf8', $utf8_filepath ) or die $!;
+ }
+ if ( 1 or !-e $default_filepath ) {
+ if ( $iso ne 'tr' ) { # Turkish is UTF-8 only.
+ open( $default_fh, '>', $default_filepath ) or die $!;
+ }
+ }
+
+ # Suck in all the lines of the relevant vocabulary example files.
+ my $voc_filepath
+ = catfile( $snowdir, 'algorithms', $language, 'voc.txt' );
+ my $answers_filepath
+ = catfile( $snowdir, 'algorithms', $language, 'output.txt' );
+
+ open( my $voc_fh, '<:utf8', $voc_filepath ) or die $!;
+ open( my $answers_fh, '<:utf8', $answers_filepath ) or die $!;
+ my @voc = <$voc_fh>;
+ my @answers = <$answers_fh>;
+
+ # These files are in UTF-8, so we'll have to encode tests for the default
+ # encoding.
+ my $default_enc
+ = $iso eq 'ru' ? 'koi8-r'
+ : $iso eq 'ro' ? 'iso-8859-2'
+ : $iso eq 'tr' ? undef
+ : 'iso-8859-1';
+
+ # Grab 100 random pairs.
+ for ( 1 .. 100 ) {
+ my $tick = int( rand @voc );
+ my $voc = $voc[$tick];
+ chomp $voc;
+ my $pair = "$voc $answers[$tick]";
+ if ($default_fh) {
+ my $encoded = encode( $default_enc, $pair );
+ print $default_fh $encoded or die $!;
+ }
+ if ($utf8_fh) {
+ print $utf8_fh $pair or die $!;
+ }
+ }
+}
+
diff --git a/lib/Lingua/Stem/Snowball.pm b/lib/Lingua/Stem/Snowball.pm
index 261b860..a50a1da 100644
--- a/lib/Lingua/Stem/Snowball.pm
+++ b/lib/Lingua/Stem/Snowball.pm
@@ -1,5 +1,7 @@
package Lingua::Stem::Snowball;
use strict;
+use warnings;
+use 5.006002;
use Carp;
use Exporter;
@@ -13,16 +15,20 @@ use vars qw(
%instance_vars
);
-$VERSION = '0.941';
+$VERSION = '0.952';
- at ISA = qw( Exporter );
+ at ISA = qw( Exporter DynaLoader );
%EXPORT_TAGS = ( 'all' => [qw( stemmers stem )] );
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-require XSLoader;
-XSLoader::load( 'Lingua::Stem::Snowball', $VERSION );
+require DynaLoader;
+__PACKAGE__->bootstrap($VERSION);
-# a shared home for the actual struct sb_stemmer C modules.
+# Ensure that C symbols are exported so that other shared libaries (e.g.
+# KinoSearch) can use them. See Dynaloader docs.
+sub dl_load_flags {0x01}
+
+# A shared home for the actual struct sb_stemmer C modules.
$stemmifier = Lingua::Stem::Snowball::Stemmifier->new;
%instance_vars = (
@@ -35,12 +41,16 @@ $stemmifier = Lingua::Stem::Snowball::Stemmifier->new;
sub new {
my $class = shift;
- my $self = bless { %instance_vars, @_ }, ref($class) || $class;
+ my $self = bless { %instance_vars, @_ }, ref($class) || $class;
- # validate lang, validate/guess encoding, and get an sb_stemmer
+ # Validate lang, validate/guess encoding, and get an sb_stemmer.
$self->lang( $self->{lang} );
if ( !defined $self->{encoding} ) {
- $self->{encoding} = $self->{lang} eq 'ru' ? 'KOI8-R' : 'ISO-8859-1';
+ $self->{encoding}
+ = $self->{lang} eq 'ru' ? 'KOI8-R'
+ : $self->{lang} eq 'ro' ? 'ISO-8859-2'
+ : $self->{lang} eq 'tr' ? 'UTF-8'
+ : 'ISO-8859-1';
}
$self->_derive_stemmer;
@@ -50,7 +60,7 @@ sub new {
sub stem {
my ( $self, $lang, $words, $locale, $is_stemmed );
- # support lots of DWIMmery
+ # Support lots of DWIMmery.
if ( UNIVERSAL::isa( $_[0], 'HASH' ) ) {
( $self, $words, $is_stemmed ) = @_;
}
@@ -59,18 +69,18 @@ sub stem {
$self = __PACKAGE__->new( lang => $lang );
}
- # bail if we don't have a valid lang
+ # Bail if we don't have a valid lang.
return undef unless $self->{lang};
- # bail if there's no input
+ # Bail if there's no input.
return undef unless ( ref($words) or length($words) );
- # duplicate the input array and transform it into an array of stems
+ # Duplicate the input array and transform it into an array of stems.
$words = ref($words) ? $words : [$words];
my @stems = map {lc} @$words;
$self->stem_in_place( \@stems );
- # determine whether any stemming took place, if requested
+ # Determine whether any stemming took place, if requested.
if ( ref($is_stemmed) ) {
$$is_stemmed = 0;
if ( $self->{stemmer_id} == -1 ) {
@@ -95,7 +105,7 @@ sub lang {
$lang = $lang eq 'dk' ? 'nl' : $lang; # backwards compat
if ( _validate_language($lang) ) {
$self->{lang} = $lang;
- # force stemmer_id regen at next call to stem_in_place
+ # Force stemmer_id regen at next call to stem_in_place().
$self->{stemmer_id} = -1;
}
else {
@@ -109,15 +119,15 @@ sub encoding {
my ( $self, $encoding ) = @_;
if ( defined $encoding ) {
croak("Invalid value for encoding: '$encoding'")
- unless $encoding =~ /^(?:UTF-8|KOI8-R|ISO-8859-1)$/;
+ unless $encoding =~ /^(?:UTF-8|KOI8-R|ISO-8859-[12])$/;
$self->{encoding} = $encoding;
- # force stemmer_id regen at next call to stem_in_place
+ # Force stemmer_id regen at next call to stem_in_place().
$self->{stemmer_id} = -1;
}
return $self->{encoding};
}
-# deprecated, has no effect on stemming behavior
+# Deprecated, has no effect on stemming behavior.
sub strip_apostrophes {
my ( $self, $boolean ) = @_;
if ( defined $boolean ) {
@@ -126,7 +136,7 @@ sub strip_apostrophes {
return $self->{strip_apostrophes};
}
-# deprecated, has no effect on stemming behavior
+# Deprecated, has no effect on stemming behavior.
sub locale {
my ( $self, $locale ) = @_;
if ($locale) {
@@ -151,24 +161,24 @@ Lingua::Stem::Snowball - Perl interface to Snowball stemmers.
my $stemmer = Lingua::Stem::Snowball->new( lang => 'en' );
$stemmer->stem_in_place( \@words ); # qw( hors hoov )
- # plain interface:
+ # Functional interface:
my @stems = stem( 'en', \@words );
=head1 DESCRIPTION
-Stemming reduces related words to a common root form. For instance, "horse",
+Stemming reduces related words to a common root form -- for instance, "horse",
"horses", and "horsing" all become "hors". Most commonly, stemming is
deployed as part of a search application, allowing searches for a given term
to match documents which contain other forms of that term.
-This module is very similar to L<Lingua::Stem|Lingua::Stem> -- however,
-Lingua::Stem is pure Perl, while Lingua::Stem::Snowball is an XS module which
-provides a Perl interface to the C version of the Snowball stemmers.
+This module is very similar to L<Lingua::Stem> -- however, Lingua::Stem is
+pure Perl, while Lingua::Stem::Snowball is an XS module which provides a Perl
+interface to the C version of the Snowball stemmers.
(L<http://snowball.tartarus.org>).
=head2 Supported Languages
-The following stemmers are available (as of Lingua::Stem::Snowball 0.94):
+The following stemmers are available (as of Lingua::Stem::Snowball 0.95):
|-----------------------------------------------------------|
| Language | ISO code | default encoding | also available |
@@ -179,12 +189,15 @@ The following stemmers are available (as of Lingua::Stem::Snowball 0.94):
| Finnish | fi | ISO-8859-1 | UTF-8 |
| French | fr | ISO-8859-1 | UTF-8 |
| German | de | ISO-8859-1 | UTF-8 |
+ | Hungarian | hu | ISO-8859-1 | UTF-8 |
| Italian | it | ISO-8859-1 | UTF-8 |
| Norwegian | no | ISO-8859-1 | UTF-8 |
| Portuguese | pt | ISO-8859-1 | UTF-8 |
+ | Romanian | ro | ISO-8859-2 | UTF-8 |
+ | Russian | ru | KOI8-R | UTF-8 |
| Spanish | es | ISO-8859-1 | UTF-8 |
| Swedish | sv | ISO-8859-1 | UTF-8 |
- | Russian | ru | KOI8-R | UTF-8 |
+ | Turkish | tr | UTF-8 | |
|-----------------------------------------------------------|
=head2 Benchmarks
@@ -193,7 +206,7 @@ Here is a comparison of Lingua::Stem::Snowball and Lingua::Stem, using The
Works of Edgar Allen Poe, volumes 1-5 (via Project Gutenberg) as source
material. It was produced on a 3.2GHz Pentium 4 running FreeBSD 5.3 and Perl
5.8.7. (The benchmarking script is included in this distribution:
-bin/benchmark_stemmers.plx.)
+devel/benchmark_stemmers.plx.)
|--------------------------------------------------------------------|
| total words: 454285 | unique words: 22748 |
@@ -240,7 +253,7 @@ change: stem() will always return undef, and stem_in_place() will be a no-op.
=head2 stem
@stemmed = $stemmer->stem( WORDS, [IS_STEMMED] );
- @stemmed = stem( ISO_CODE, WORDS, [LOCALE, IS_STEMMED] );
+ @stemmed = stem( ISO_CODE, WORDS, [LOCALE], [IS_STEMMED] );
Return lowercased and stemmed output. WORDS may be either an array of words
or a single scalar word.
@@ -312,9 +325,10 @@ Currently maintained by Marvin Humphrey E<lt>marvin at rectangular dot
comE<gt>. Previously maintained by Fabien Potencier E<lt>fabpot at cpan dot
orgE<gt>.
-=head1 COPYRIGHT
+=head1 COPYRIGHT AND LICENSE
-Copyright 2004-2006
+Perl bindings copyright 2004-2008 by Marvin Humphrey, Fabien Potencier, Oleg
+Bartunov and Teodor Sigaev.
This software may be freely copied and distributed under the same
terms and conditions as Perl.
@@ -326,5 +340,3 @@ Snowball files and stemmers are covered by the BSD license.
L<http://snowball.tartarus.org>, L<Lingua::Stem|Lingua::Stem>.
=cut
-
-
diff --git a/lib/Lingua/Stem/Snowball.xs b/lib/Lingua/Stem/Snowball.xs
index 20ea13f..a6acc1a 100644
--- a/lib/Lingua/Stem/Snowball.xs
+++ b/lib/Lingua/Stem/Snowball.xs
@@ -2,21 +2,30 @@
#include "perl.h"
#include "XSUB.h"
+#define NEED_sv_2pv_flags
#define NEED_sv_2pv_nolen
#include "../ppport.h"
-#define NUMLANG 12
-#define NUMSTEM 24
+#define NUMLANG 15
+#define NUMSTEM 29
#include "include/libstemmer.h"
-typedef struct sb_stemmer SnowStemmer;
+/* All Lingua::Stem::Snowball objects and all calls to stem(),
+ * stem_in_place(), etc, reference the same set of Snowball struct
+ * sb_stemmers, all held in the singleton object
+ * $Lingua::Stem::Snowball::stemmifier, of class
+ * Lingua::Stem::Snowball::Stemmifier. Each sb_stemmer is created lazily, as
+ * soon as there is a need for its unique combination of language and
+ * encoding. They are destroyed during global cleanup, when
+ * $Lingua::Stem::Snowball::stemmifier is reclaimed.
+ */
-typedef struct stemmifier {
- SnowStemmer **stemmers;
+typedef struct Stemmifier {
+ struct sb_stemmer **stemmers;
} Stemmifier;
-typedef struct langenc {
+typedef struct LangEnc {
char *lang;
char *encoding; /* the real name of the encoding */
char *snowenc; /* the variant that libstemmer_c needs */
@@ -30,11 +39,14 @@ LangEnc lang_encs[] = {
{ "es", "ISO-8859-1", "ISO_8859_1" },
{ "fi", "ISO-8859-1", "ISO_8859_1" },
{ "fr", "ISO-8859-1", "ISO_8859_1" },
+ { "hu", "ISO-8859-1", "ISO_8859_1" },
{ "it", "ISO-8859-1", "ISO_8859_1" },
{ "no", "ISO-8859-1", "ISO_8859_1" },
{ "pt", "ISO-8859-1", "ISO_8859_1" },
+ { "ro", "ISO-8859-2", "ISO_8859_2" },
{ "ru", "KOI8-R", "KOI8_R", },
{ "sv", "ISO-8859-1", "ISO_8859_1" },
+ { "tr", "UTF-8", "UTF_8" },
{ "da", "UTF-8", "UTF_8" },
{ "de", "UTF-8", "UTF_8" },
{ "nl", "UTF-8", "UTF_8" },
@@ -42,9 +54,11 @@ LangEnc lang_encs[] = {
{ "es", "UTF-8", "UTF_8" },
{ "fi", "UTF-8", "UTF_8" },
{ "fr", "UTF-8", "UTF_8" },
+ { "hu", "UTF-8", "UTF_8" },
{ "it", "UTF-8", "UTF_8" },
{ "no", "UTF-8", "UTF_8" },
{ "pt", "UTF-8", "UTF_8" },
+ { "ro", "UTF-8", "UTF_8" },
{ "ru", "UTF-8", "UTF_8" },
{ "sv", "UTF-8", "UTF_8" },
};
@@ -53,54 +67,77 @@ MODULE = Lingua::Stem::Snowball PACKAGE = Lingua::Stem::Snowball
PROTOTYPES: disable
+BOOT:
+{
+ SV *sb_stemmer_list_sv = newSViv(PTR2IV(sb_stemmer_list));
+ SV *sb_stemmer_new_sv = newSViv(PTR2IV(sb_stemmer_new));
+ SV *sb_stemmer_delete_sv = newSViv(PTR2IV(sb_stemmer_delete));
+ SV *sb_stemmer_stem_sv = newSViv(PTR2IV(sb_stemmer_stem));
+ SV *sb_stemmer_length_sv = newSViv(PTR2IV(sb_stemmer_length));
+ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_list", 39,
+ sb_stemmer_list_sv, 0);
+ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_new", 38,
+ sb_stemmer_new_sv, 0);
+ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_delete", 41,
+ sb_stemmer_delete_sv, 0);
+ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_stem", 39,
+ sb_stemmer_stem_sv, 0);
+ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_length", 41,
+ sb_stemmer_length_sv, 0);
+}
+
void
-_derive_stemmer(obj_hash)
- HV *obj_hash;
-PREINIT:
+_derive_stemmer(self_hash)
+ HV *self_hash;
+PPCODE:
+{
+ SV **sv_ptr;
char *lang;
char *encoding;
- SV **sv_ptr;
- int i;
- int stemmer_id;
-PPCODE:
- /* extract lang and encoding member variables */
- sv_ptr = hv_fetch(obj_hash, "lang", 4, 0);
+ int i;
+ int stemmer_id = -1;
+
+ /* Extract lang and encoding member variables. */
+ sv_ptr = hv_fetch(self_hash, "lang", 4, 0);
if (!sv_ptr)
croak("Couldn't find member variable 'lang'");
lang = SvPV_nolen(*sv_ptr);
- sv_ptr = hv_fetch(obj_hash, "encoding", 8, 0);
+ sv_ptr = hv_fetch(self_hash, "encoding", 8, 0);
if (!sv_ptr)
croak("Couldn't find member variable 'encoding'");
encoding = SvPV_nolen(*sv_ptr);
- /* see if the combo of lang and encoding is supported */
- stemmer_id = -1;
+ /* See if the combo of lang and encoding is supported. */
for(i = 0; i < NUMSTEM; i++) {
if ( strcmp(lang, lang_encs[i].lang) == 0
&& strcmp(encoding, lang_encs[i].encoding) == 0
) {
- IV temp;
Stemmifier *stemmifier;
SV *stemmifier_sv;
- /* we have a match, so we know the stemmer id now */
+ /* We have a match, so we know the stemmer id now. */
stemmer_id = i;
- /* retrieve communal Stemmifier */
- stemmifier_sv
- = get_sv("Lingua::Stem::Snowball::stemmifier", TRUE);
- if (!SvROK(stemmifier_sv)) {
- croak("Internal error: can't access stemmifier");
+ /* Retrieve communal Stemmifier. */
+ stemmifier_sv = get_sv("Lingua::Stem::Snowball::stemmifier", TRUE);
+ if ( sv_isobject(stemmifier_sv)
+ && sv_derived_from(stemmifier_sv,
+ "Lingua::Stem::Snowball::Stemmifier")
+ ) {
+ IV tmp = SvIV(SvRV(stemmifier_sv));
+ stemmifier = INT2PTR(Stemmifier*, tmp);
+ }
+ else {
+ croak("$L::S::S::stemmifier isn't a Stemmifier");
}
- temp = SvIV(SvRV(stemmifier_sv));
- stemmifier = INT2PTR(Stemmifier*, temp);
- /* construct a stemmer for lang/enc if there isn't one yet */
+ /* Construct a stemmer for lang/enc if there isn't one yet. */
if ( ! stemmifier->stemmers[stemmer_id] ) {
stemmifier->stemmers[stemmer_id]
= sb_stemmer_new(lang, lang_encs[stemmer_id].snowenc);
if ( ! stemmifier->stemmers[stemmer_id] ) {
- croak("Failed to allocate an sb_stemmer - out of mem");
+ croak("Failed to allocate an sb_stemmer for %s %s", lang,
+ encoding);
}
}
@@ -108,73 +145,64 @@ PPCODE:
}
}
- /* set the value of $self->{stemmer_id} */
- sv_ptr = hv_fetch(obj_hash, "stemmer_id", 10, 0);
+ /* Set the value of $self->{stemmer_id}. */
+ sv_ptr = hv_fetch(self_hash, "stemmer_id", 10, 0);
if (!sv_ptr)
croak("Couldn't access $self->{stemmer_id}");
sv_setiv(*sv_ptr, stemmer_id);
+}
bool
-_validate_language(lang_sv)
- SV *lang_sv;
-PREINIT:
- char *lang;
- STRLEN len;
- int i;
+_validate_language(language)
+ char *language;
CODE:
- lang = SvPV(lang_sv, len);
-
+{
+ int i;
RETVAL = FALSE;
for (i = 0; i < NUMLANG; i++) {
- if ( strcmp(lang, lang_encs[i].lang) == 0 )
- RETVAL = TRUE;
+ if ( strcmp(language, lang_encs[i].lang) == 0 ) RETVAL = TRUE;
}
+}
OUTPUT: RETVAL
-
void
stemmers(...)
-PREINIT:
- int i;
PPCODE:
+{
+ int i;
for (i = 0; i < NUMLANG; i++) {
XPUSHs( sv_2mortal(
newSVpvn( lang_encs[i].lang, strlen(lang_encs[i].lang) )
));
}
XSRETURN(NUMLANG);
+}
void
-stem_in_place(obj, words_av)
- SV *obj;
+stem_in_place(self_hash, words_av)
+ HV *self_hash;
AV *words_av;
-PREINIT:
- HV *obj_hash;
- SV **sv_ptr;
- IV stemmer_id;
- SV *stemmifier_sv;
- Stemmifier *stemmifier;
- STRLEN len;
- SnowStemmer *stemmer;
- const sb_symbol *input_text;
- const sb_symbol *stemmed_output;
- IV i, max;
PPCODE:
- /* extract hash from object */
- if (SvROK(obj) && SvTYPE(SvRV(obj))==SVt_PVHV)
- obj_hash = (HV*)SvRV(obj);
- else
- croak("not a hash reference");
-
- /* retrieve the stemmifier */
+{
+ IV stemmer_id;
+ SV **sv_ptr;
+ Stemmifier *stemmifier;
+ SV *stemmifier_sv;
+
+ /* Retrieve the stemmifier. */
stemmifier_sv = get_sv("Lingua::Stem::Snowball::stemmifier", TRUE);
- if(!SvROK(stemmifier_sv))
+ if ( sv_isobject(stemmifier_sv)
+ && sv_derived_from(stemmifier_sv, "Lingua::Stem::Snowball::Stemmifier")
+ ) {
+ IV tmp = SvIV(SvRV(stemmifier_sv));
+ stemmifier = INT2PTR(Stemmifier*, tmp);
+ }
+ else {
croak("$Lingua::Stem::Snowball::stemmifier isn't a Stemmifier");
- i = SvIV(SvRV(stemmifier_sv));
- stemmifier = INT2PTR(Stemmifier*, i);
+ }
- /* figure out which sb_stemmer to use */
- sv_ptr = hv_fetch(obj_hash, "stemmer_id", 10, 0);
+ /* Figure out which sb_stemmer to use. */
+ sv_ptr = hv_fetch(self_hash, "stemmer_id", 10, 0);
if (!sv_ptr)
croak("Couldn't access stemmer_id");
stemmer_id = SvIV(*sv_ptr);
@@ -186,66 +214,61 @@ PPCODE:
ENTER;
SAVETMPS;
PUSHMARK(SP);
- XPUSHs(obj);
+ XPUSHs(ST(0));
PUTBACK;
call_method("_derive_stemmer", G_DISCARD);
FREETMPS;
LEAVE;
- /* extract what should now be a valid stemmer_id */
- sv_ptr = hv_fetch(obj_hash, "stemmer_id", 10, 0);
+ /* Extract what should now be a valid stemmer_id. */
+ sv_ptr = hv_fetch(self_hash, "stemmer_id", 10, 0);
stemmer_id = SvIV(*sv_ptr);
}
if (stemmer_id != -1) {
- stemmer = stemmifier->stemmers[stemmer_id];
+ struct sb_stemmer *stemmer = stemmifier->stemmers[stemmer_id];
+ IV i, max;
- max = av_len(words_av);
- for (i = 0; i <= max; i++) {
+ for (i = 0, max = av_len(words_av); i <= max; i++) {
sv_ptr = av_fetch(words_av, i, 0);
- if (!SvOK(*sv_ptr))
- continue;
- input_text = (const sb_symbol*)SvPV(*sv_ptr, len);
- stemmed_output = sb_stemmer_stem(stemmer, input_text, (int)len);
- len = sb_stemmer_length(stemmer);
- sv_setpvn(*sv_ptr, (char*)stemmed_output, len);
+ if (SvOK(*sv_ptr)) {
+ STRLEN len;
+ sb_symbol *input_text = (sb_symbol*)SvPV(*sv_ptr, len);
+ const sb_symbol *stemmed_output
+ = sb_stemmer_stem(stemmer, input_text, (int)len);
+ len = sb_stemmer_length(stemmer);
+ sv_setpvn(*sv_ptr, (char*)stemmed_output, len);
+ }
}
}
+}
MODULE = Lingua::Stem::Snowball PACKAGE = Lingua::Stem::Snowball::Stemmifier
-=for comment
-
-Create a new Stemmifier object.
-
-=cut
-
-void
-new(class)
- char* class;
-PREINIT:
+SV*
+new(class_name)
+ char* class_name;
+CODE:
+{
Stemmifier *stemmifier;
-PPCODE:
New(0, stemmifier, 1, Stemmifier);
- Newz(0, stemmifier->stemmers, NUMSTEM, SnowStemmer*);
- ST(0) = sv_newmortal();
- sv_setref_pv(ST(0), class, (void*)stemmifier);
- XSRETURN(1);
+ Newz(0, stemmifier->stemmers, NUMSTEM, struct sb_stemmer*);
+ RETVAL = newSV(0);
+ sv_setref_pv(RETVAL, class_name, (void*)stemmifier);
+}
+OUTPUT: RETVAL
void
-DESTROY(obj_ref)
- SV *obj_ref;
-PREINIT:
- Stemmifier *stemmifier;
- IV temp;
- int i;
+DESTROY(self_sv)
+ SV *self_sv;
PPCODE:
- temp = SvIV( SvRV(obj_ref) );
- stemmifier = INT2PTR(Stemmifier*, temp);
+{
+ int i;
+ IV temp = SvIV( SvRV(self_sv) );
+ Stemmifier *stemmifier = INT2PTR(Stemmifier*, temp);
for (i = 0; i < NUMSTEM; i++) {
if (stemmifier->stemmers[i] != NULL)
sb_stemmer_delete(stemmifier->stemmers[i]);
}
Safefree(stemmifier);
-
-
-
+}
+
diff --git a/libstemmer_c/MANIFEST b/libstemmer_c/MANIFEST
new file mode 100644
index 0000000..93a313d
--- /dev/null
+++ b/libstemmer_c/MANIFEST
@@ -0,0 +1,72 @@
+README
+src_c/stem_ISO_8859_1_danish.c
+src_c/stem_ISO_8859_1_danish.h
+src_c/stem_ISO_8859_1_dutch.c
+src_c/stem_ISO_8859_1_dutch.h
+src_c/stem_ISO_8859_1_english.c
+src_c/stem_ISO_8859_1_english.h
+src_c/stem_ISO_8859_1_finnish.c
+src_c/stem_ISO_8859_1_finnish.h
+src_c/stem_ISO_8859_1_french.c
+src_c/stem_ISO_8859_1_french.h
+src_c/stem_ISO_8859_1_german.c
+src_c/stem_ISO_8859_1_german.h
+src_c/stem_ISO_8859_1_hungarian.c
+src_c/stem_ISO_8859_1_hungarian.h
+src_c/stem_ISO_8859_1_italian.c
+src_c/stem_ISO_8859_1_italian.h
+src_c/stem_ISO_8859_1_norwegian.c
+src_c/stem_ISO_8859_1_norwegian.h
+src_c/stem_ISO_8859_1_porter.c
+src_c/stem_ISO_8859_1_porter.h
+src_c/stem_ISO_8859_1_portuguese.c
+src_c/stem_ISO_8859_1_portuguese.h
+src_c/stem_ISO_8859_1_spanish.c
+src_c/stem_ISO_8859_1_spanish.h
+src_c/stem_ISO_8859_1_swedish.c
+src_c/stem_ISO_8859_1_swedish.h
+src_c/stem_ISO_8859_2_romanian.c
+src_c/stem_ISO_8859_2_romanian.h
+src_c/stem_KOI8_R_russian.c
+src_c/stem_KOI8_R_russian.h
+src_c/stem_UTF_8_danish.c
+src_c/stem_UTF_8_danish.h
+src_c/stem_UTF_8_dutch.c
+src_c/stem_UTF_8_dutch.h
+src_c/stem_UTF_8_english.c
+src_c/stem_UTF_8_english.h
+src_c/stem_UTF_8_finnish.c
+src_c/stem_UTF_8_finnish.h
+src_c/stem_UTF_8_french.c
+src_c/stem_UTF_8_french.h
+src_c/stem_UTF_8_german.c
+src_c/stem_UTF_8_german.h
+src_c/stem_UTF_8_hungarian.c
+src_c/stem_UTF_8_hungarian.h
+src_c/stem_UTF_8_italian.c
+src_c/stem_UTF_8_italian.h
+src_c/stem_UTF_8_norwegian.c
+src_c/stem_UTF_8_norwegian.h
+src_c/stem_UTF_8_porter.c
+src_c/stem_UTF_8_porter.h
+src_c/stem_UTF_8_portuguese.c
+src_c/stem_UTF_8_portuguese.h
+src_c/stem_UTF_8_romanian.c
+src_c/stem_UTF_8_romanian.h
+src_c/stem_UTF_8_russian.c
+src_c/stem_UTF_8_russian.h
+src_c/stem_UTF_8_spanish.c
+src_c/stem_UTF_8_spanish.h
+src_c/stem_UTF_8_swedish.c
+src_c/stem_UTF_8_swedish.h
+src_c/stem_UTF_8_turkish.c
+src_c/stem_UTF_8_turkish.h
+runtime/api.c
+runtime/api.h
+runtime/header.h
+runtime/utilities.c
+libstemmer/libstemmer.c
+libstemmer/libstemmer_utf8.c
+libstemmer/modules.h
+libstemmer/modules_utf8.h
+include/libstemmer.h
diff --git a/libstemmer_c/README b/libstemmer_c/README
index 3ff66e4..9d3af8b 100644
--- a/libstemmer_c/README
+++ b/libstemmer_c/README
@@ -19,6 +19,15 @@ system (or call the compiler directly). The files to compile are
all contained in the "libstemmer", "runtime" and "src_c" directories,
and the public header file is contained in the "include" directory.
+The library comes in two flavours; UTF-8 only, and UTF-8 plus other character
+sets. To use the utf-8 only flavour, compile "libstemmer_utf8.c" instead of
+"libstemmer.c".
+
+For convenience "mkinc.mak" is a makefile fragment listing the source files and
+header files used to compile the standard version of the library.
+"mkinc_utf8.mak" is a comparable makefile fragment listing just the source
+files for the UTF-8 only version of the library.
+
Using the library
=================
@@ -80,3 +89,37 @@ format for inclusion by a Makefile. By including this file in your build
system, you can link the snowball system into your program with a few
extra rules.
+Using the library in a system using GNU autotools
+=================================================
+
+The libstemmer_c library can be integrated into a larger system which uses the
+GNU autotool framework (and in particular, automake and autoconf) as follows:
+
+1) Unpack libstemmer_c.tgz in the top level project directory so that there is
+ a libstemmer_c subdirectory of the top level directory of the project.
+
+2) Add a file "Makefile.am" to the unpacked libstemmer_c folder, containing:
+
+noinst_LTLIBRARIES = libstemmer.la
+include $(srcdir)/mkinc.mak
+noinst_HEADERS = $(snowball_headers)
+libstemmer_la_SOURCES = $(snowball_sources)
+
+(You may also need to add other lines to this, for example, if you are using
+compiler options which are not compatible with compiling the libstemmer
+library.)
+
+3) Add libstemmer_c to the AC_CONFIG_FILES declaration in the project's
+ configure.ac file.
+
+4) Add to the top level makefile the following lines (or modify existing
+ assignments to these variables appropriately):
+
+AUTOMAKE_OPTIONS = subdir-objects
+AM_CPPFLAGS = -I$(top_srcdir)/libstemmer_c/include
+SUBDIRS=libstemmer_c
+<name>_LIBADD = libstemmer_c/libstemmer.la
+
+(Where <name> is the name of the library or executable which links against
+libstemmer.)
+
diff --git a/libstemmer_c/examples/stemwords.c.disabled b/libstemmer_c/examples/stemwords.c.disabled
index a951ba4..128ea7a 100644
--- a/libstemmer_c/examples/stemwords.c.disabled
+++ b/libstemmer_c/examples/stemwords.c.disabled
@@ -26,6 +26,7 @@ stem_file(struct sb_stemmer * stemmer, FILE * f_in, FILE * f_out)
}
{
int i = 0;
+ int inlen = 0;
while(1) {
if (ch == '\n' || ch == EOF) break;
if (i == lim) {
@@ -36,6 +37,8 @@ stem_file(struct sb_stemmer * stemmer, FILE * f_in, FILE * f_out)
b = newb;
lim = lim + INC;
}
+ /* Update count of utf-8 characters. */
+ if (ch < 0x80 || ch > 0xBF) inlen += 1;
/* force lower case: */
if (isupper(ch)) ch = tolower(ch);
@@ -44,11 +47,6 @@ stem_file(struct sb_stemmer * stemmer, FILE * f_in, FILE * f_out)
ch = getc(f_in);
}
- if (pretty) {
- int j;
- for (j = 0; j < i; j++) fprintf(f_out, "%c", b[j]);
- fprintf(f_out, "%s", " -> ");
- }
{
const sb_symbol * stemmed = sb_stemmer_stem(stemmer, b, i);
if (stemmed == NULL)
@@ -57,13 +55,28 @@ stem_file(struct sb_stemmer * stemmer, FILE * f_in, FILE * f_out)
exit(1);
}
else
- {
- int j;
- /*for (j = 0; j < z->l; j++) */
- for (j = 0; stemmed[j] != 0; j++)
- fprintf(f_out, "%c", stemmed[j]);
- fprintf(f_out, "\n");
- }
+ {
+ if (pretty == 1) {
+ fwrite(b, i, 1, f_out);
+ fputs(" -> ", f_out);
+ } else if (pretty == 2) {
+ fwrite(b, i, 1, f_out);
+ if (sb_stemmer_length(stemmer) > 0) {
+ int j;
+ if (inlen < 30) {
+ for (j = 30 - inlen; j > 0; j--)
+ fputs(" ", f_out);
+ } else {
+ fputs("\n", f_out);
+ for (j = 30; j > 0; j--)
+ fputs(" ", f_out);
+ }
+ }
+ }
+
+ fputs((char *)stemmed, f_out);
+ putc('\n', f_out);
+ }
}
}
}
@@ -78,7 +91,7 @@ error:
static void
usage(int n)
{
- printf("usage: %s [-l <language>] [-i <input file>] [-o <output file>] [-c <character encoding>] [-p] [-h]\n"
+ printf("usage: %s [-l <language>] [-i <input file>] [-o <output file>] [-c <character encoding>] [-p[2]] [-h]\n"
"\n"
"The input file consists of a list of words to be stemmed, one per\n"
"line. Words should be in lower case, but (for English) A-Z letters\n"
@@ -90,6 +103,9 @@ usage(int n)
"\n"
"If -p is given the output file consists of each word of the input\n"
"file followed by \"->\" followed by its stemmed equivalent.\n"
+ "If -p2 is given the output file is a two column layout containing\n"
+ "the input words in the first column and the stemmed eqivalents in\n"
+ "the second column.\n"
"Otherwise, the output file consists of the stemmed words, one per\n"
"line.\n"
"\n"
@@ -143,6 +159,8 @@ main(int argc, char * argv[])
exit(1);
}
charenc = argv[i++];
+ } else if (strcmp(s, "-p2") == 0) {
+ pretty = 2;
} else if (strcmp(s, "-p") == 0) {
pretty = 1;
} else if (strcmp(s, "-h") == 0) {
diff --git a/libstemmer_c/libstemmer/libstemmer.c b/libstemmer_c/libstemmer/libstemmer.c
index 1e51026..5c3852a 100644
--- a/libstemmer_c/libstemmer/libstemmer.c
+++ b/libstemmer_c/libstemmer/libstemmer.c
@@ -19,7 +19,8 @@ sb_stemmer_list(void)
return algorithm_names;
}
-static stemmer_encoding sb_getenc(const char * charenc)
+static stemmer_encoding_t
+sb_getenc(const char * charenc)
{
struct stemmer_encoding * encoding;
if (charenc == NULL) return ENC_UTF_8;
@@ -33,7 +34,7 @@ static stemmer_encoding sb_getenc(const char * charenc)
extern struct sb_stemmer *
sb_stemmer_new(const char * algorithm, const char * charenc)
{
- stemmer_encoding enc;
+ stemmer_encoding_t enc;
struct stemmer_modules * module;
struct sb_stemmer * stemmer =
(struct sb_stemmer *) malloc(sizeof(struct sb_stemmer));
diff --git a/libstemmer_c/libstemmer/libstemmer.c b/libstemmer_c/libstemmer/libstemmer_utf8.c.disabled
similarity index 94%
copy from libstemmer_c/libstemmer/libstemmer.c
copy to libstemmer_c/libstemmer/libstemmer_utf8.c.disabled
index 1e51026..793a081 100644
--- a/libstemmer_c/libstemmer/libstemmer.c
+++ b/libstemmer_c/libstemmer/libstemmer_utf8.c.disabled
@@ -3,7 +3,7 @@
#include <string.h>
#include "../include/libstemmer.h"
#include "../runtime/api.h"
-#include "modules.h"
+#include "modules_utf8.h"
struct sb_stemmer {
struct SN_env * (*create)(void);
@@ -19,7 +19,8 @@ sb_stemmer_list(void)
return algorithm_names;
}
-static stemmer_encoding sb_getenc(const char * charenc)
+static stemmer_encoding_t
+sb_getenc(const char * charenc)
{
struct stemmer_encoding * encoding;
if (charenc == NULL) return ENC_UTF_8;
@@ -33,7 +34,7 @@ static stemmer_encoding sb_getenc(const char * charenc)
extern struct sb_stemmer *
sb_stemmer_new(const char * algorithm, const char * charenc)
{
- stemmer_encoding enc;
+ stemmer_encoding_t enc;
struct stemmer_modules * module;
struct sb_stemmer * stemmer =
(struct sb_stemmer *) malloc(sizeof(struct sb_stemmer));
diff --git a/libstemmer_c/libstemmer/modules.h b/libstemmer_c/libstemmer/modules.h
index f4a5118..7a1f685 100644
--- a/libstemmer_c/libstemmer/modules.h
+++ b/libstemmer_c/libstemmer/modules.h
@@ -4,7 +4,8 @@
* Do not edit manually.
*
* Modules included by this file are: danish, dutch, english, finnish, french,
- * german, italian, norwegian, porter, portuguese, russian, spanish, swedish
+ * german, hungarian, italian, norwegian, porter, portuguese, romanian,
+ * russian, spanish, swedish, turkish
*/
#include "../src_c/stem_ISO_8859_1_danish.h"
@@ -19,6 +20,8 @@
#include "../src_c/stem_UTF_8_french.h"
#include "../src_c/stem_ISO_8859_1_german.h"
#include "../src_c/stem_UTF_8_german.h"
+#include "../src_c/stem_ISO_8859_1_hungarian.h"
+#include "../src_c/stem_UTF_8_hungarian.h"
#include "../src_c/stem_ISO_8859_1_italian.h"
#include "../src_c/stem_UTF_8_italian.h"
#include "../src_c/stem_ISO_8859_1_norwegian.h"
@@ -27,34 +30,39 @@
#include "../src_c/stem_UTF_8_porter.h"
#include "../src_c/stem_ISO_8859_1_portuguese.h"
#include "../src_c/stem_UTF_8_portuguese.h"
+#include "../src_c/stem_ISO_8859_2_romanian.h"
+#include "../src_c/stem_UTF_8_romanian.h"
#include "../src_c/stem_KOI8_R_russian.h"
#include "../src_c/stem_UTF_8_russian.h"
#include "../src_c/stem_ISO_8859_1_spanish.h"
#include "../src_c/stem_UTF_8_spanish.h"
#include "../src_c/stem_ISO_8859_1_swedish.h"
#include "../src_c/stem_UTF_8_swedish.h"
+#include "../src_c/stem_UTF_8_turkish.h"
typedef enum {
- ENC_UNKNOWN,
+ ENC_UNKNOWN=0,
ENC_ISO_8859_1,
+ ENC_ISO_8859_2,
ENC_KOI8_R,
ENC_UTF_8
-} stemmer_encoding;
+} stemmer_encoding_t;
struct stemmer_encoding {
const char * name;
- stemmer_encoding enc;
+ stemmer_encoding_t enc;
};
static struct stemmer_encoding encodings[] = {
{"ISO_8859_1", ENC_ISO_8859_1},
+ {"ISO_8859_2", ENC_ISO_8859_2},
{"KOI8_R", ENC_KOI8_R},
{"UTF_8", ENC_UTF_8},
- {0,0}
+ {0,ENC_UNKNOWN}
};
struct stemmer_modules {
const char * name;
- stemmer_encoding enc;
+ stemmer_encoding_t enc;
struct SN_env * (*create)(void);
void (*close)(struct SN_env *);
int (*stem)(struct SN_env *);
@@ -102,6 +110,12 @@ static struct stemmer_modules modules[] = {
{"ger", ENC_UTF_8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
{"german", ENC_ISO_8859_1, german_ISO_8859_1_create_env, german_ISO_8859_1_close_env, german_ISO_8859_1_stem},
{"german", ENC_UTF_8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
+ {"hu", ENC_ISO_8859_1, hungarian_ISO_8859_1_create_env, hungarian_ISO_8859_1_close_env, hungarian_ISO_8859_1_stem},
+ {"hu", ENC_UTF_8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
+ {"hun", ENC_ISO_8859_1, hungarian_ISO_8859_1_create_env, hungarian_ISO_8859_1_close_env, hungarian_ISO_8859_1_stem},
+ {"hun", ENC_UTF_8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
+ {"hungarian", ENC_ISO_8859_1, hungarian_ISO_8859_1_create_env, hungarian_ISO_8859_1_close_env, hungarian_ISO_8859_1_stem},
+ {"hungarian", ENC_UTF_8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
{"it", ENC_ISO_8859_1, italian_ISO_8859_1_create_env, italian_ISO_8859_1_close_env, italian_ISO_8859_1_stem},
{"it", ENC_UTF_8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem},
{"ita", ENC_ISO_8859_1, italian_ISO_8859_1_create_env, italian_ISO_8859_1_close_env, italian_ISO_8859_1_stem},
@@ -126,8 +140,16 @@ static struct stemmer_modules modules[] = {
{"portuguese", ENC_UTF_8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
{"pt", ENC_ISO_8859_1, portuguese_ISO_8859_1_create_env, portuguese_ISO_8859_1_close_env, portuguese_ISO_8859_1_stem},
{"pt", ENC_UTF_8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
+ {"ro", ENC_ISO_8859_2, romanian_ISO_8859_2_create_env, romanian_ISO_8859_2_close_env, romanian_ISO_8859_2_stem},
+ {"ro", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
+ {"romanian", ENC_ISO_8859_2, romanian_ISO_8859_2_create_env, romanian_ISO_8859_2_close_env, romanian_ISO_8859_2_stem},
+ {"romanian", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
+ {"ron", ENC_ISO_8859_2, romanian_ISO_8859_2_create_env, romanian_ISO_8859_2_close_env, romanian_ISO_8859_2_stem},
+ {"ron", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
{"ru", ENC_KOI8_R, russian_KOI8_R_create_env, russian_KOI8_R_close_env, russian_KOI8_R_stem},
{"ru", ENC_UTF_8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
+ {"rum", ENC_ISO_8859_2, romanian_ISO_8859_2_create_env, romanian_ISO_8859_2_close_env, romanian_ISO_8859_2_stem},
+ {"rum", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
{"rus", ENC_KOI8_R, russian_KOI8_R_create_env, russian_KOI8_R_close_env, russian_KOI8_R_stem},
{"rus", ENC_UTF_8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
{"russian", ENC_KOI8_R, russian_KOI8_R_create_env, russian_KOI8_R_close_env, russian_KOI8_R_stem},
@@ -142,7 +164,10 @@ static struct stemmer_modules modules[] = {
{"swe", ENC_UTF_8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
{"swedish", ENC_ISO_8859_1, swedish_ISO_8859_1_create_env, swedish_ISO_8859_1_close_env, swedish_ISO_8859_1_stem},
{"swedish", ENC_UTF_8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
- {0,0,0,0,0}
+ {"tr", ENC_UTF_8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ {"tur", ENC_UTF_8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ {"turkish", ENC_UTF_8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ {0,ENC_UNKNOWN,0,0,0}
};
static const char * algorithm_names[] = {
"danish",
@@ -151,12 +176,15 @@ static const char * algorithm_names[] = {
"finnish",
"french",
"german",
+ "hungarian",
"italian",
"norwegian",
"porter",
"portuguese",
+ "romanian",
"russian",
"spanish",
"swedish",
+ "turkish",
0
};
diff --git a/libstemmer_c/libstemmer/modules.txt b/libstemmer_c/libstemmer/modules.txt
new file mode 100644
index 0000000..ddde920
--- /dev/null
+++ b/libstemmer_c/libstemmer/modules.txt
@@ -0,0 +1,50 @@
+# This file contains a list of stemmers to include in the distribution.
+# The format is a set of space separated lines - on each line:
+# First item is name of stemmer.
+# Second item is comma separated list of character sets.
+# Third item is comma separated list of names to refer to the stemmer by.
+#
+# Lines starting with a #, or blank lines, are ignored.
+
+# List all the main algorithms for each language, in UTF-8, and also with
+# the most commonly used encoding.
+
+danish UTF_8,ISO_8859_1 danish,da,dan
+dutch UTF_8,ISO_8859_1 dutch,nl,dut,nld
+english UTF_8,ISO_8859_1 english,en,eng
+finnish UTF_8,ISO_8859_1 finnish,fi,fin
+french UTF_8,ISO_8859_1 french,fr,fre,fra
+german UTF_8,ISO_8859_1 german,de,ger,deu
+hungarian UTF_8,ISO_8859_1 hungarian,hu,hun
+italian UTF_8,ISO_8859_1 italian,it,ita
+norwegian UTF_8,ISO_8859_1 norwegian,no,nor
+portuguese UTF_8,ISO_8859_1 portuguese,pt,por
+romanian UTF_8,ISO_8859_2 romanian,ro,rum,ron
+russian UTF_8,KOI8_R russian,ru,rus
+spanish UTF_8,ISO_8859_1 spanish,es,esl,spa
+swedish UTF_8,ISO_8859_1 swedish,sv,swe
+turkish UTF_8 turkish,tr,tur
+
+# Also include the traditional porter algorithm for english.
+# The porter algorithm is included in the libstemmer distribution to assist
+# with backwards compatibility, but for new systems the english algorithm
+# should be used in preference.
+porter UTF_8,ISO_8859_1 porter
+
+# Some other stemmers in the snowball project are not included in the standard
+# distribution. To compile a libstemmer with them in, add them to this list,
+# and regenerate the distribution. (You will need a full source checkout for
+# this.) They are included in the snowball website as curiosities, but are not
+# intended for general use, and use of them is is not fully supported. These
+# algorithms are:
+#
+# german2 - This is a slight modification of the german stemmer.
+#german2 UTF_8,ISO_8859_1 german2
+#
+# kraaij_pohlmann - This is a different dutch stemmer.
+#kraaij_pohlmann UTF_8,ISO_8859_1 kraaij_pohlmann
+#
+# lovins - This is an english stemmer, but fairly outdated, and
+# only really applicable to a restricted type of input text
+# (keywords in academic publications).
+#lovins UTF_8,ISO_8859_1 lovins
diff --git a/libstemmer_c/libstemmer/modules_utf8.h b/libstemmer_c/libstemmer/modules_utf8.h
new file mode 100644
index 0000000..6a7cc92
--- /dev/null
+++ b/libstemmer_c/libstemmer/modules_utf8.h
@@ -0,0 +1,121 @@
+/* libstemmer/modules_utf8.h: List of stemming modules.
+ *
+ * This file is generated by mkmodules.pl from a list of module names.
+ * Do not edit manually.
+ *
+ * Modules included by this file are: danish, dutch, english, finnish, french,
+ * german, hungarian, italian, norwegian, porter, portuguese, romanian,
+ * russian, spanish, swedish, turkish
+ */
+
+#include "../src_c/stem_UTF_8_danish.h"
+#include "../src_c/stem_UTF_8_dutch.h"
+#include "../src_c/stem_UTF_8_english.h"
+#include "../src_c/stem_UTF_8_finnish.h"
+#include "../src_c/stem_UTF_8_french.h"
+#include "../src_c/stem_UTF_8_german.h"
+#include "../src_c/stem_UTF_8_hungarian.h"
+#include "../src_c/stem_UTF_8_italian.h"
+#include "../src_c/stem_UTF_8_norwegian.h"
+#include "../src_c/stem_UTF_8_porter.h"
+#include "../src_c/stem_UTF_8_portuguese.h"
+#include "../src_c/stem_UTF_8_romanian.h"
+#include "../src_c/stem_UTF_8_russian.h"
+#include "../src_c/stem_UTF_8_spanish.h"
+#include "../src_c/stem_UTF_8_swedish.h"
+#include "../src_c/stem_UTF_8_turkish.h"
+
+typedef enum {
+ ENC_UNKNOWN=0,
+ ENC_UTF_8
+} stemmer_encoding_t;
+
+struct stemmer_encoding {
+ const char * name;
+ stemmer_encoding_t enc;
+};
+static struct stemmer_encoding encodings[] = {
+ {"UTF_8", ENC_UTF_8},
+ {0,ENC_UNKNOWN}
+};
+
+struct stemmer_modules {
+ const char * name;
+ stemmer_encoding_t enc;
+ struct SN_env * (*create)(void);
+ void (*close)(struct SN_env *);
+ int (*stem)(struct SN_env *);
+};
+static struct stemmer_modules modules[] = {
+ {"da", ENC_UTF_8, danish_UTF_8_create_env, danish_UTF_8_close_env, danish_UTF_8_stem},
+ {"dan", ENC_UTF_8, danish_UTF_8_create_env, danish_UTF_8_close_env, danish_UTF_8_stem},
+ {"danish", ENC_UTF_8, danish_UTF_8_create_env, danish_UTF_8_close_env, danish_UTF_8_stem},
+ {"de", ENC_UTF_8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
+ {"deu", ENC_UTF_8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
+ {"dut", ENC_UTF_8, dutch_UTF_8_create_env, dutch_UTF_8_close_env, dutch_UTF_8_stem},
+ {"dutch", ENC_UTF_8, dutch_UTF_8_create_env, dutch_UTF_8_close_env, dutch_UTF_8_stem},
+ {"en", ENC_UTF_8, english_UTF_8_create_env, english_UTF_8_close_env, english_UTF_8_stem},
+ {"eng", ENC_UTF_8, english_UTF_8_create_env, english_UTF_8_close_env, english_UTF_8_stem},
+ {"english", ENC_UTF_8, english_UTF_8_create_env, english_UTF_8_close_env, english_UTF_8_stem},
+ {"es", ENC_UTF_8, spanish_UTF_8_create_env, spanish_UTF_8_close_env, spanish_UTF_8_stem},
+ {"esl", ENC_UTF_8, spanish_UTF_8_create_env, spanish_UTF_8_close_env, spanish_UTF_8_stem},
+ {"fi", ENC_UTF_8, finnish_UTF_8_create_env, finnish_UTF_8_close_env, finnish_UTF_8_stem},
+ {"fin", ENC_UTF_8, finnish_UTF_8_create_env, finnish_UTF_8_close_env, finnish_UTF_8_stem},
+ {"finnish", ENC_UTF_8, finnish_UTF_8_create_env, finnish_UTF_8_close_env, finnish_UTF_8_stem},
+ {"fr", ENC_UTF_8, french_UTF_8_create_env, french_UTF_8_close_env, french_UTF_8_stem},
+ {"fra", ENC_UTF_8, french_UTF_8_create_env, french_UTF_8_close_env, french_UTF_8_stem},
+ {"fre", ENC_UTF_8, french_UTF_8_create_env, french_UTF_8_close_env, french_UTF_8_stem},
+ {"french", ENC_UTF_8, french_UTF_8_create_env, french_UTF_8_close_env, french_UTF_8_stem},
+ {"ger", ENC_UTF_8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
+ {"german", ENC_UTF_8, german_UTF_8_create_env, german_UTF_8_close_env, german_UTF_8_stem},
+ {"hu", ENC_UTF_8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
+ {"hun", ENC_UTF_8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
+ {"hungarian", ENC_UTF_8, hungarian_UTF_8_create_env, hungarian_UTF_8_close_env, hungarian_UTF_8_stem},
+ {"it", ENC_UTF_8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem},
+ {"ita", ENC_UTF_8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem},
+ {"italian", ENC_UTF_8, italian_UTF_8_create_env, italian_UTF_8_close_env, italian_UTF_8_stem},
+ {"nl", ENC_UTF_8, dutch_UTF_8_create_env, dutch_UTF_8_close_env, dutch_UTF_8_stem},
+ {"nld", ENC_UTF_8, dutch_UTF_8_create_env, dutch_UTF_8_close_env, dutch_UTF_8_stem},
+ {"no", ENC_UTF_8, norwegian_UTF_8_create_env, norwegian_UTF_8_close_env, norwegian_UTF_8_stem},
+ {"nor", ENC_UTF_8, norwegian_UTF_8_create_env, norwegian_UTF_8_close_env, norwegian_UTF_8_stem},
+ {"norwegian", ENC_UTF_8, norwegian_UTF_8_create_env, norwegian_UTF_8_close_env, norwegian_UTF_8_stem},
+ {"por", ENC_UTF_8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
+ {"porter", ENC_UTF_8, porter_UTF_8_create_env, porter_UTF_8_close_env, porter_UTF_8_stem},
+ {"portuguese", ENC_UTF_8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
+ {"pt", ENC_UTF_8, portuguese_UTF_8_create_env, portuguese_UTF_8_close_env, portuguese_UTF_8_stem},
+ {"ro", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
+ {"romanian", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
+ {"ron", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
+ {"ru", ENC_UTF_8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
+ {"rum", ENC_UTF_8, romanian_UTF_8_create_env, romanian_UTF_8_close_env, romanian_UTF_8_stem},
+ {"rus", ENC_UTF_8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
+ {"russian", ENC_UTF_8, russian_UTF_8_create_env, russian_UTF_8_close_env, russian_UTF_8_stem},
+ {"spa", ENC_UTF_8, spanish_UTF_8_create_env, spanish_UTF_8_close_env, spanish_UTF_8_stem},
+ {"spanish", ENC_UTF_8, spanish_UTF_8_create_env, spanish_UTF_8_close_env, spanish_UTF_8_stem},
+ {"sv", ENC_UTF_8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
+ {"swe", ENC_UTF_8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
+ {"swedish", ENC_UTF_8, swedish_UTF_8_create_env, swedish_UTF_8_close_env, swedish_UTF_8_stem},
+ {"tr", ENC_UTF_8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ {"tur", ENC_UTF_8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ {"turkish", ENC_UTF_8, turkish_UTF_8_create_env, turkish_UTF_8_close_env, turkish_UTF_8_stem},
+ {0,ENC_UNKNOWN,0,0,0}
+};
+static const char * algorithm_names[] = {
+ "danish",
+ "dutch",
+ "english",
+ "finnish",
+ "french",
+ "german",
+ "hungarian",
+ "italian",
+ "norwegian",
+ "porter",
+ "portuguese",
+ "romanian",
+ "russian",
+ "spanish",
+ "swedish",
+ "turkish",
+ 0
+};
diff --git a/libstemmer_c/libstemmer/modules_utf8.txt b/libstemmer_c/libstemmer/modules_utf8.txt
new file mode 100644
index 0000000..60a0e1d
--- /dev/null
+++ b/libstemmer_c/libstemmer/modules_utf8.txt
@@ -0,0 +1,49 @@
+# This file contains a list of stemmers to include in the distribution.
+# The format is a set of space separated lines - on each line:
+# First item is name of stemmer.
+# Second item is comma separated list of character sets.
+# Third item is comma separated list of names to refer to the stemmer by.
+#
+# Lines starting with a #, or blank lines, are ignored.
+
+# List all the main algorithms for each language, in UTF-8.
+
+danish UTF_8 danish,da,dan
+dutch UTF_8 dutch,nl,dut,nld
+english UTF_8 english,en,eng
+finnish UTF_8 finnish,fi,fin
+french UTF_8 french,fr,fre,fra
+german UTF_8 german,de,ger,deu
+hungarian UTF_8 hungarian,hu,hun
+italian UTF_8 italian,it,ita
+norwegian UTF_8 norwegian,no,nor
+portuguese UTF_8 portuguese,pt,por
+romanian UTF_8 romanian,ro,rum,ron
+russian UTF_8 russian,ru,rus
+spanish UTF_8 spanish,es,esl,spa
+swedish UTF_8 swedish,sv,swe
+turkish UTF_8 turkish,tr,tur
+
+# Also include the traditional porter algorithm for english.
+# The porter algorithm is included in the libstemmer distribution to assist
+# with backwards compatibility, but for new systems the english algorithm
+# should be used in preference.
+porter UTF_8 porter
+
+# Some other stemmers in the snowball project are not included in the standard
+# distribution. To compile a libstemmer with them in, add them to this list,
+# and regenerate the distribution. (You will need a full source checkout for
+# this.) They are included in the snowball website as curiosities, but are not
+# intended for general use, and use of them is is not fully supported. These
+# algorithms are:
+#
+# german2 - This is a slight modification of the german stemmer.
+#german2 UTF_8 german2
+#
+# kraaij_pohlmann - This is a different dutch stemmer.
+#kraaij_pohlmann UTF_8 kraaij_pohlmann
+#
+# lovins - This is an english stemmer, but fairly outdated, and
+# only really applicable to a restricted type of input text
+# (keywords in academic publications).
+#lovins UTF_8 lovins
diff --git a/libstemmer_c/mkinc.mak b/libstemmer_c/mkinc.mak
index fdf2fa2..0c07199 100644
--- a/libstemmer_c/mkinc.mak
+++ b/libstemmer_c/mkinc.mak
@@ -1,63 +1,82 @@
+# libstemmer/mkinc.mak: List of stemming module source files
+#
+# This file is generated by mkmodules.pl from a list of module names.
+# Do not edit manually.
+#
+# Modules included by this file are: danish, dutch, english, finnish, french,
+# german, hungarian, italian, norwegian, porter, portuguese, romanian,
+# russian, spanish, swedish, turkish
+
snowball_sources= \
-libstemmer/libstemmer.c \
-runtime/api.c \
-runtime/utilities.c \
-src_c/stem_ISO_8859_1_danish.c \
-src_c/stem_ISO_8859_1_dutch.c \
-src_c/stem_ISO_8859_1_english.c \
-src_c/stem_ISO_8859_1_finnish.c \
-src_c/stem_ISO_8859_1_french.c \
-src_c/stem_ISO_8859_1_german.c \
-src_c/stem_ISO_8859_1_italian.c \
-src_c/stem_ISO_8859_1_norwegian.c \
-src_c/stem_ISO_8859_1_porter.c \
-src_c/stem_ISO_8859_1_portuguese.c \
-src_c/stem_ISO_8859_1_spanish.c \
-src_c/stem_ISO_8859_1_swedish.c \
-src_c/stem_KOI8_R_russian.c \
-src_c/stem_UTF_8_danish.c \
-src_c/stem_UTF_8_dutch.c \
-src_c/stem_UTF_8_english.c \
-src_c/stem_UTF_8_finnish.c \
-src_c/stem_UTF_8_french.c \
-src_c/stem_UTF_8_german.c \
-src_c/stem_UTF_8_italian.c \
-src_c/stem_UTF_8_norwegian.c \
-src_c/stem_UTF_8_porter.c \
-src_c/stem_UTF_8_portuguese.c \
-src_c/stem_UTF_8_russian.c \
-src_c/stem_UTF_8_spanish.c \
-src_c/stem_UTF_8_swedish.c
+ src_c/stem_ISO_8859_1_danish.c \
+ src_c/stem_UTF_8_danish.c \
+ src_c/stem_ISO_8859_1_dutch.c \
+ src_c/stem_UTF_8_dutch.c \
+ src_c/stem_ISO_8859_1_english.c \
+ src_c/stem_UTF_8_english.c \
+ src_c/stem_ISO_8859_1_finnish.c \
+ src_c/stem_UTF_8_finnish.c \
+ src_c/stem_ISO_8859_1_french.c \
+ src_c/stem_UTF_8_french.c \
+ src_c/stem_ISO_8859_1_german.c \
+ src_c/stem_UTF_8_german.c \
+ src_c/stem_ISO_8859_1_hungarian.c \
+ src_c/stem_UTF_8_hungarian.c \
+ src_c/stem_ISO_8859_1_italian.c \
+ src_c/stem_UTF_8_italian.c \
+ src_c/stem_ISO_8859_1_norwegian.c \
+ src_c/stem_UTF_8_norwegian.c \
+ src_c/stem_ISO_8859_1_porter.c \
+ src_c/stem_UTF_8_porter.c \
+ src_c/stem_ISO_8859_1_portuguese.c \
+ src_c/stem_UTF_8_portuguese.c \
+ src_c/stem_ISO_8859_2_romanian.c \
+ src_c/stem_UTF_8_romanian.c \
+ src_c/stem_KOI8_R_russian.c \
+ src_c/stem_UTF_8_russian.c \
+ src_c/stem_ISO_8859_1_spanish.c \
+ src_c/stem_UTF_8_spanish.c \
+ src_c/stem_ISO_8859_1_swedish.c \
+ src_c/stem_UTF_8_swedish.c \
+ src_c/stem_UTF_8_turkish.c \
+ runtime/api.c \
+ runtime/utilities.c \
+ libstemmer/libstemmer.c
snowball_headers= \
-include/libstemmer.h \
-libstemmer/modules.h \
-runtime/api.h \
-runtime/header.h \
-src_c/stem_ISO_8859_1_danish.h \
-src_c/stem_ISO_8859_1_dutch.h \
-src_c/stem_ISO_8859_1_english.h \
-src_c/stem_ISO_8859_1_finnish.h \
-src_c/stem_ISO_8859_1_french.h \
-src_c/stem_ISO_8859_1_german.h \
-src_c/stem_ISO_8859_1_italian.h \
-src_c/stem_ISO_8859_1_norwegian.h \
-src_c/stem_ISO_8859_1_porter.h \
-src_c/stem_ISO_8859_1_portuguese.h \
-src_c/stem_ISO_8859_1_spanish.h \
-src_c/stem_ISO_8859_1_swedish.h \
-src_c/stem_KOI8_R_russian.h \
-src_c/stem_UTF_8_danish.h \
-src_c/stem_UTF_8_dutch.h \
-src_c/stem_UTF_8_english.h \
-src_c/stem_UTF_8_finnish.h \
-src_c/stem_UTF_8_french.h \
-src_c/stem_UTF_8_german.h \
-src_c/stem_UTF_8_italian.h \
-src_c/stem_UTF_8_norwegian.h \
-src_c/stem_UTF_8_porter.h \
-src_c/stem_UTF_8_portuguese.h \
-src_c/stem_UTF_8_russian.h \
-src_c/stem_UTF_8_spanish.h \
-src_c/stem_UTF_8_swedish.h
+ src_c/stem_ISO_8859_1_danish.h \
+ src_c/stem_UTF_8_danish.h \
+ src_c/stem_ISO_8859_1_dutch.h \
+ src_c/stem_UTF_8_dutch.h \
+ src_c/stem_ISO_8859_1_english.h \
+ src_c/stem_UTF_8_english.h \
+ src_c/stem_ISO_8859_1_finnish.h \
+ src_c/stem_UTF_8_finnish.h \
+ src_c/stem_ISO_8859_1_french.h \
+ src_c/stem_UTF_8_french.h \
+ src_c/stem_ISO_8859_1_german.h \
+ src_c/stem_UTF_8_german.h \
+ src_c/stem_ISO_8859_1_hungarian.h \
+ src_c/stem_UTF_8_hungarian.h \
+ src_c/stem_ISO_8859_1_italian.h \
+ src_c/stem_UTF_8_italian.h \
+ src_c/stem_ISO_8859_1_norwegian.h \
+ src_c/stem_UTF_8_norwegian.h \
+ src_c/stem_ISO_8859_1_porter.h \
+ src_c/stem_UTF_8_porter.h \
+ src_c/stem_ISO_8859_1_portuguese.h \
+ src_c/stem_UTF_8_portuguese.h \
+ src_c/stem_ISO_8859_2_romanian.h \
+ src_c/stem_UTF_8_romanian.h \
+ src_c/stem_KOI8_R_russian.h \
+ src_c/stem_UTF_8_russian.h \
+ src_c/stem_ISO_8859_1_spanish.h \
+ src_c/stem_UTF_8_spanish.h \
+ src_c/stem_ISO_8859_1_swedish.h \
+ src_c/stem_UTF_8_swedish.h \
+ src_c/stem_UTF_8_turkish.h \
+ include/libstemmer.h \
+ libstemmer/modules.h \
+ runtime/api.h \
+ runtime/header.h
diff --git a/libstemmer_c/mkinc_utf8.mak b/libstemmer_c/mkinc_utf8.mak
new file mode 100644
index 0000000..a8b260a
--- /dev/null
+++ b/libstemmer_c/mkinc_utf8.mak
@@ -0,0 +1,52 @@
+# libstemmer/mkinc_utf8.mak: List of stemming module source files
+#
+# This file is generated by mkmodules.pl from a list of module names.
+# Do not edit manually.
+#
+# Modules included by this file are: danish, dutch, english, finnish, french,
+# german, hungarian, italian, norwegian, porter, portuguese, romanian,
+# russian, spanish, swedish, turkish
+
+snowball_sources= \
+ src_c/stem_UTF_8_danish.c \
+ src_c/stem_UTF_8_dutch.c \
+ src_c/stem_UTF_8_english.c \
+ src_c/stem_UTF_8_finnish.c \
+ src_c/stem_UTF_8_french.c \
+ src_c/stem_UTF_8_german.c \
+ src_c/stem_UTF_8_hungarian.c \
+ src_c/stem_UTF_8_italian.c \
+ src_c/stem_UTF_8_norwegian.c \
+ src_c/stem_UTF_8_porter.c \
+ src_c/stem_UTF_8_portuguese.c \
+ src_c/stem_UTF_8_romanian.c \
+ src_c/stem_UTF_8_russian.c \
+ src_c/stem_UTF_8_spanish.c \
+ src_c/stem_UTF_8_swedish.c \
+ src_c/stem_UTF_8_turkish.c \
+ runtime/api.c \
+ runtime/utilities.c \
+ libstemmer/libstemmer_utf8.c
+
+snowball_headers= \
+ src_c/stem_UTF_8_danish.h \
+ src_c/stem_UTF_8_dutch.h \
+ src_c/stem_UTF_8_english.h \
+ src_c/stem_UTF_8_finnish.h \
+ src_c/stem_UTF_8_french.h \
+ src_c/stem_UTF_8_german.h \
+ src_c/stem_UTF_8_hungarian.h \
+ src_c/stem_UTF_8_italian.h \
+ src_c/stem_UTF_8_norwegian.h \
+ src_c/stem_UTF_8_porter.h \
+ src_c/stem_UTF_8_portuguese.h \
+ src_c/stem_UTF_8_romanian.h \
+ src_c/stem_UTF_8_russian.h \
+ src_c/stem_UTF_8_spanish.h \
+ src_c/stem_UTF_8_swedish.h \
+ src_c/stem_UTF_8_turkish.h \
+ include/libstemmer.h \
+ libstemmer/modules_utf8.h \
+ runtime/api.h \
+ runtime/header.h
+
diff --git a/libstemmer_c/runtime/api.c b/libstemmer_c/runtime/api.c
index 9dd5a3b..40039ef 100644
--- a/libstemmer_c/runtime/api.c
+++ b/libstemmer_c/runtime/api.c
@@ -19,43 +19,40 @@ extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size)
z->S[i] = create_s();
if (z->S[i] == NULL) goto error;
}
- z->S_size = S_size;
}
if (I_size)
{
z->I = (int *) calloc(I_size, sizeof(int));
if (z->I == NULL) goto error;
- z->I_size = I_size;
}
if (B_size)
{
- z->B = (symbol *) calloc(B_size, sizeof(symbol));
+ z->B = (unsigned char *) calloc(B_size, sizeof(unsigned char));
if (z->B == NULL) goto error;
- z->B_size = B_size;
}
return z;
error:
- SN_close_env(z);
+ SN_close_env(z, S_size);
return NULL;
}
-extern void SN_close_env(struct SN_env * z)
+extern void SN_close_env(struct SN_env * z, int S_size)
{
if (z == NULL) return;
- if (z->S_size)
+ if (S_size)
{
int i;
- for (i = 0; i < z->S_size; i++)
+ for (i = 0; i < S_size; i++)
{
lose_s(z->S[i]);
}
free(z->S);
}
- if (z->I_size) free(z->I);
- if (z->B_size) free(z->B);
+ free(z->I);
+ free(z->B);
if (z->p) lose_s(z->p);
free(z);
}
diff --git a/libstemmer_c/runtime/api.h b/libstemmer_c/runtime/api.h
index adc2282..8b997f0 100644
--- a/libstemmer_c/runtime/api.h
+++ b/libstemmer_c/runtime/api.h
@@ -13,15 +13,14 @@ typedef unsigned char symbol;
struct SN_env {
symbol * p;
- int c; int a; int l; int lb; int bra; int ket;
- int S_size; int I_size; int B_size;
+ int c; int l; int lb; int bra; int ket;
symbol * * S;
int * I;
- symbol * B;
+ unsigned char * B;
};
extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size);
-extern void SN_close_env(struct SN_env * z);
+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/libstemmer_c/runtime/header.h b/libstemmer_c/runtime/header.h
index c0721d6..4d3078f 100644
--- a/libstemmer_c/runtime/header.h
+++ b/libstemmer_c/runtime/header.h
@@ -14,7 +14,7 @@
struct among
{ int s_size; /* number of chars in string */
- symbol * s; /* search string */
+ const symbol * s; /* search string */
int substring_i;/* index to longest matching substring */
int result; /* result of the lookup */
int (* function)(struct SN_env *);
@@ -25,31 +25,31 @@ extern void lose_s(symbol * p);
extern int skip_utf8(const symbol * p, int c, int lb, int l, int n);
-extern int in_grouping_U(struct SN_env * z, unsigned char * s, int min, int max);
-extern int in_grouping_b_U(struct SN_env * z, unsigned char * s, int min, int max);
-extern int out_grouping_U(struct SN_env * z, unsigned char * s, int min, int max);
-extern int out_grouping_b_U(struct SN_env * z, unsigned char * s, int min, int max);
+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);
+extern int out_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
+extern int out_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
-extern int in_grouping(struct SN_env * z, unsigned char * s, int min, int max);
-extern int in_grouping_b(struct SN_env * z, unsigned char * s, int min, int max);
-extern int out_grouping(struct SN_env * z, unsigned char * s, int min, int max);
-extern int out_grouping_b(struct SN_env * z, unsigned char * s, int min, int max);
+extern int in_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
+extern int in_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
+extern int out_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
+extern int out_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat);
-extern int eq_s(struct SN_env * z, int s_size, symbol * s);
-extern int eq_s_b(struct SN_env * z, int s_size, symbol * s);
-extern int eq_v(struct SN_env * z, symbol * p);
-extern int eq_v_b(struct SN_env * z, symbol * p);
+extern int eq_s(struct SN_env * z, int s_size, const symbol * s);
+extern int eq_s_b(struct SN_env * z, int s_size, const symbol * s);
+extern int eq_v(struct SN_env * z, const symbol * p);
+extern int eq_v_b(struct SN_env * z, const symbol * p);
-extern int find_among(struct SN_env * z, struct among * v, int v_size);
-extern int find_among_b(struct SN_env * z, struct among * v, int v_size);
+extern int find_among(struct SN_env * z, const struct among * v, int v_size);
+extern int find_among_b(struct SN_env * z, const struct among * v, int v_size);
extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjustment);
-extern int slice_from_s(struct SN_env * z, int s_size, symbol * s);
-extern int slice_from_v(struct SN_env * z, symbol * p);
+extern int slice_from_s(struct SN_env * z, int s_size, const symbol * s);
+extern int slice_from_v(struct SN_env * z, const symbol * p);
extern int slice_del(struct SN_env * z);
-extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, symbol * s);
-extern int insert_v(struct SN_env * z, int bra, int ket, symbol * p);
+extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbol * s);
+extern int insert_v(struct SN_env * z, int bra, int ket, const symbol * p);
extern symbol * slice_to(struct SN_env * z, symbol * p);
extern symbol * assign_to(struct SN_env * z, symbol * p);
diff --git a/libstemmer_c/runtime/utilities.c b/libstemmer_c/runtime/utilities.c
index a6bfa5c..1840f02 100644
--- a/libstemmer_c/runtime/utilities.c
+++ b/libstemmer_c/runtime/utilities.c
@@ -25,8 +25,8 @@ extern void lose_s(symbol * p) {
}
/*
- new_p = X_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
+ 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 0 on failure.
-- used to implement hop and next in the utf8 case.
@@ -76,7 +76,7 @@ static int get_utf8(const symbol * p, int c, int l, int * slot) {
if (b0 < 0xE0 || c == l) { /* 1110 0000 */
* slot = (b0 & 0x1F) << 6 | (b1 & 0x3F); return 2;
}
- * slot = (b0 & 0xF) << 12 | (b1 & 0x3F) << 6 | (*p & 0x3F); return 3;
+ * slot = (b0 & 0xF) << 12 | (b1 & 0x3F) << 6 | (p[c] & 0x3F); return 3;
}
static int get_b_utf8(const symbol * p, int c, int lb, int * slot) {
@@ -90,94 +90,126 @@ static int get_b_utf8(const symbol * p, int c, int lb, int * slot) {
if (b1 >= 0xC0 || c == lb) { /* 1100 0000 */
* slot = (b1 & 0x1F) << 6 | (b0 & 0x3F); return 2;
}
- * slot = (*p & 0xF) << 12 | (b1 & 0x3F) << 6 | (b0 & 0x3F); return 3;
+ * slot = (p[c] & 0xF) << 12 | (b1 & 0x3F) << 6 | (b0 & 0x3F); return 3;
}
-extern int in_grouping_U(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- int w = get_utf8(z->p, z->c, z->l, & ch);
- unless (w) return 0;
- if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c += w; return 1;
+extern int in_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_utf8(z->p, z->c, z->l, & ch);
+ unless (w) return -1;
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return w;
+ z->c += w;
+ } while (repeat);
+ return 0;
}
-extern int in_grouping_b_U(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- int w = get_b_utf8(z->p, z->c, z->lb, & ch);
- unless (w) return 0;
- if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c -= w; return 1;
+extern int in_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_b_utf8(z->p, z->c, z->lb, & ch);
+ unless (w) return -1;
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return w;
+ z->c -= w;
+ } while (repeat);
+ return 0;
}
-extern int out_grouping_U(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- int w = get_utf8(z->p, z->c, z->l, & ch);
- unless (w) return 0;
- unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c += w; return 1;
+extern int out_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_utf8(z->p, z->c, z->l, & ch);
+ unless (w) return -1;
+ unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return w;
+ z->c += w;
+ } while (repeat);
+ return 0;
}
-extern int out_grouping_b_U(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- int w = get_b_utf8(z->p, z->c, z->lb, & ch);
- unless (w) return 0;
- unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c -= w; return 1;
+extern int out_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_b_utf8(z->p, z->c, z->lb, & ch);
+ unless (w) return -1;
+ unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return w;
+ z->c -= w;
+ } while (repeat);
+ return 0;
}
/* Code for character groupings: non-utf8 cases */
-extern int in_grouping(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- if (z->c >= z->l) return 0;
- ch = z->p[z->c];
- if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c++; return 1;
+extern int in_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c >= z->l) return -1;
+ ch = z->p[z->c];
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return 1;
+ z->c++;
+ } while (repeat);
+ return 0;
}
-extern int in_grouping_b(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- if (z->c <= z->lb) return 0;
- ch = z->p[z->c - 1];
- if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c--; return 1;
+extern int in_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c <= z->lb) return -1;
+ ch = z->p[z->c - 1];
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return 1;
+ z->c--;
+ } while (repeat);
+ return 0;
}
-extern int out_grouping(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- if (z->c >= z->l) return 0;
- ch = z->p[z->c];
- unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c++; return 1;
+extern int out_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c >= z->l) return -1;
+ ch = z->p[z->c];
+ unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return 1;
+ z->c++;
+ } while (repeat);
+ return 0;
}
-extern int out_grouping_b(struct SN_env * z, unsigned char * s, int min, int max) {
- int ch;
- if (z->c <= z->lb) return 0;
- ch = z->p[z->c - 1];
- unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return 0;
- z->c--; return 1;
+extern int out_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c <= z->lb) return -1;
+ ch = z->p[z->c - 1];
+ unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return 1;
+ z->c--;
+ } while (repeat);
+ return 0;
}
-extern int eq_s(struct SN_env * z, int s_size, symbol * s) {
+extern int eq_s(struct SN_env * z, int s_size, const symbol * s) {
if (z->l - z->c < s_size || memcmp(z->p + z->c, s, s_size * sizeof(symbol)) != 0) return 0;
z->c += s_size; return 1;
}
-extern int eq_s_b(struct SN_env * z, int s_size, symbol * s) {
+extern int eq_s_b(struct SN_env * z, int s_size, const symbol * s) {
if (z->c - z->lb < s_size || memcmp(z->p + z->c - s_size, s, s_size * sizeof(symbol)) != 0) return 0;
z->c -= s_size; return 1;
}
-extern int eq_v(struct SN_env * z, symbol * p) {
+extern int eq_v(struct SN_env * z, const symbol * p) {
return eq_s(z, SIZE(p), p);
}
-extern int eq_v_b(struct SN_env * z, symbol * p) {
+extern int eq_v_b(struct SN_env * z, const symbol * p) {
return eq_s_b(z, SIZE(p), p);
}
-extern int find_among(struct SN_env * z, struct among * v, int v_size) {
+extern int find_among(struct SN_env * z, const struct among * v, int v_size) {
int i = 0;
int j = v_size;
@@ -185,7 +217,7 @@ extern int find_among(struct SN_env * z, struct among * v, int v_size) {
int c = z->c; int l = z->l;
symbol * q = z->p + c;
- struct among * w;
+ const struct among * w;
int common_i = 0;
int common_j = 0;
@@ -198,9 +230,9 @@ extern int find_among(struct SN_env * z, struct among * v, int v_size) {
int common = common_i < common_j ? common_i : common_j; /* smaller */
w = v + k;
{
- int i; for (i = common; i < w->s_size; i++) {
+ int i2; for (i2 = common; i2 < w->s_size; i2++) {
if (c + common == l) { diff = -1; break; }
- diff = q[common] - w->s[i];
+ diff = q[common] - w->s[i2];
if (diff != 0) break;
common++;
}
@@ -237,7 +269,7 @@ extern int find_among(struct SN_env * z, struct among * v, int v_size) {
/* find_among_b is for backwards processing. Same comments apply */
-extern int find_among_b(struct SN_env * z, struct among * v, int v_size) {
+extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) {
int i = 0;
int j = v_size;
@@ -245,7 +277,7 @@ extern int find_among_b(struct SN_env * z, struct among * v, int v_size) {
int c = z->c; int lb = z->lb;
symbol * q = z->p + c - 1;
- struct among * w;
+ const struct among * w;
int common_i = 0;
int common_j = 0;
@@ -258,9 +290,9 @@ extern int find_among_b(struct SN_env * z, struct among * v, int v_size) {
int common = common_i < common_j ? common_i : common_j;
w = v + k;
{
- int i; for (i = w->s_size - 1 - common; i >= 0; i--) {
+ int i2; for (i2 = w->s_size - 1 - common; i2 >= 0; i2--) {
if (c - common == lb) { diff = -1; break; }
- diff = q[- common] - w->s[i];
+ diff = q[- common] - w->s[i2];
if (diff != 0) break;
common++;
}
@@ -362,12 +394,12 @@ static int slice_check(struct SN_env * z) {
return 0;
}
-extern int slice_from_s(struct SN_env * z, int s_size, symbol * s) {
+extern int slice_from_s(struct SN_env * z, int s_size, const symbol * s) {
if (slice_check(z)) return -1;
return replace_s(z, z->bra, z->ket, s_size, s, NULL);
}
-extern int slice_from_v(struct SN_env * z, symbol * p) {
+extern int slice_from_v(struct SN_env * z, const symbol * p) {
return slice_from_s(z, SIZE(p), p);
}
@@ -375,7 +407,7 @@ extern int slice_del(struct SN_env * z) {
return slice_from_s(z, 0, 0);
}
-extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, symbol * s) {
+extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbol * s) {
int adjustment;
if (replace_s(z, bra, ket, s_size, s, &adjustment))
return -1;
@@ -384,7 +416,7 @@ extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, symbol * s)
return 0;
}
-extern int insert_v(struct SN_env * z, int bra, int ket, symbol * p) {
+extern int insert_v(struct SN_env * z, int bra, int ket, const symbol * p) {
int adjustment;
if (replace_s(z, bra, ket, SIZE(p), p, &adjustment))
return -1;
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_danish.c b/libstemmer_c/src_c/stem_ISO_8859_1_danish.c
index fe0fa76..a47bf8b 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_danish.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_danish.c
@@ -3,50 +3,64 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int danish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_undouble(struct SN_env * z);
static int r_other_suffix(struct SN_env * z);
static int r_consonant_pair(struct SN_env * z);
static int r_main_suffix(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * danish_ISO_8859_1_create_env(void);
extern void danish_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_0[3] = { 'h', 'e', 'd' };
-static symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' };
-static symbol s_0_2[4] = { 'e', 'r', 'e', 'd' };
-static symbol s_0_3[1] = { 'e' };
-static symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' };
-static symbol s_0_5[4] = { 'e', 'n', 'd', 'e' };
-static symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' };
-static symbol s_0_7[3] = { 'e', 'n', 'e' };
-static symbol s_0_8[4] = { 'e', 'r', 'n', 'e' };
-static symbol s_0_9[3] = { 'e', 'r', 'e' };
-static symbol s_0_10[2] = { 'e', 'n' };
-static symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' };
-static symbol s_0_12[4] = { 'e', 'r', 'e', 'n' };
-static symbol s_0_13[2] = { 'e', 'r' };
-static symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' };
-static symbol s_0_15[4] = { 'e', 'r', 'e', 'r' };
-static symbol s_0_16[1] = { 's' };
-static symbol s_0_17[4] = { 'h', 'e', 'd', 's' };
-static symbol s_0_18[2] = { 'e', 's' };
-static symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' };
-static symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' };
-static symbol s_0_21[4] = { 'e', 'n', 'e', 's' };
-static symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' };
-static symbol s_0_23[4] = { 'e', 'r', 'e', 's' };
-static symbol s_0_24[3] = { 'e', 'n', 's' };
-static symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' };
-static symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' };
-static symbol s_0_27[3] = { 'e', 'r', 's' };
-static symbol s_0_28[3] = { 'e', 't', 's' };
-static symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' };
-static symbol s_0_30[2] = { 'e', 't' };
-static symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
-static struct among a_0[32] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'h', 'e', 'd' };
+static const symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' };
+static const symbol s_0_2[4] = { 'e', 'r', 'e', 'd' };
+static const symbol s_0_3[1] = { 'e' };
+static const symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' };
+static const symbol s_0_5[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' };
+static const symbol s_0_7[3] = { 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 'n', 'e' };
+static const symbol s_0_9[3] = { 'e', 'r', 'e' };
+static const symbol s_0_10[2] = { 'e', 'n' };
+static const symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_0_12[4] = { 'e', 'r', 'e', 'n' };
+static const symbol s_0_13[2] = { 'e', 'r' };
+static const symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' };
+static const symbol s_0_15[4] = { 'e', 'r', 'e', 'r' };
+static const symbol s_0_16[1] = { 's' };
+static const symbol s_0_17[4] = { 'h', 'e', 'd', 's' };
+static const symbol s_0_18[2] = { 'e', 's' };
+static const symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_21[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' };
+static const symbol s_0_23[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_0_24[3] = { 'e', 'n', 's' };
+static const symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' };
+static const symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' };
+static const symbol s_0_27[3] = { 'e', 'r', 's' };
+static const symbol s_0_28[3] = { 'e', 't', 's' };
+static const symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' };
+static const symbol s_0_30[2] = { 'e', 't' };
+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},
@@ -82,12 +96,12 @@ static struct among a_0[32] =
/* 31 */ { 4, s_0_31, 30, 1, 0}
};
-static symbol s_1_0[2] = { 'g', 'd' };
-static symbol s_1_1[2] = { 'd', 't' };
-static symbol s_1_2[2] = { 'g', 't' };
-static symbol s_1_3[2] = { 'k', 't' };
+static const symbol s_1_0[2] = { 'g', 'd' };
+static const symbol s_1_1[2] = { 'd', 't' };
+static const symbol s_1_2[2] = { 'g', 't' };
+static const symbol s_1_3[2] = { 'k', 't' };
-static struct among a_1[4] =
+static const struct among a_1[4] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
@@ -95,13 +109,13 @@ static struct among a_1[4] =
/* 3 */ { 2, s_1_3, -1, -1, 0}
};
-static symbol s_2_0[2] = { 'i', 'g' };
-static symbol s_2_1[3] = { 'l', 'i', 'g' };
-static symbol s_2_2[4] = { 'e', 'l', 'i', 'g' };
-static symbol s_2_3[3] = { 'e', 'l', 's' };
-static symbol s_2_4[4] = { 'l', 0xF8, 's', 't' };
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'l', 's' };
+static const symbol s_2_4[4] = { 'l', 0xF8, 's', 't' };
-static struct among a_2[5] =
+static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
@@ -110,75 +124,63 @@ static struct among a_2[5] =
/* 4 */ { 4, s_2_4, -1, 2, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
+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 };
-static unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
+static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
-static symbol s_0[] = { 's', 't' };
-static symbol s_1[] = { 'i', 'g' };
-static symbol s_2[] = { 'l', 0xF8, 's' };
+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) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 33 */
- { int c = z->c + 3;
- if (0 > c || c > z->l) return 0;
- z->c = c; /* hop, line 33 */
+ { int ret = z->c + 3;
+ if (0 > ret || ret > z->l) return 0;
+ z->c = ret; /* hop, line 33 */
}
z->I[1] = z->c; /* setmark x, line 33 */
z->c = c_test;
}
- while(1) { /* goto, line 34 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 248))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- if (z->c >= z->l) return 0;
- z->c++; /* goto, line 34 */
- }
- while(1) { /* gopast, line 34 */
- if (!(out_grouping(z, g_v, 97, 248))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 34 */
+ if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
+ { /* gopast */ /* non v, line 34 */
+ 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 34 */
/* try, line 35 */
- if (!(z->I[0] < z->I[1])) goto lab2;
+ if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
-lab2:
+lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 41 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 41 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 41 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 41 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 32); /* substring, line 41 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 41 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 48 */
+ { int ret = slice_del(z); /* delete, line 48 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b(z, g_s_ending, 97, 229))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 50 */
+ if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0;
+ { int ret = slice_del(z); /* delete, line 50 */
if (ret < 0) return ret;
}
break;
@@ -188,24 +190,24 @@ static int r_main_suffix(struct SN_env * z) {
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 55 */
- { int m3; /* setlimit, line 56 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 56 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 56 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 56 */
- if (!(find_among_b(z, a_1, 4))) { z->lb = m3; return 0; } /* substring, line 56 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit; return 0; } /* substring, line 56 */
z->bra = z->c; /* ], line 56 */
- z->lb = m3;
+ z->lb = mlimit;
}
z->c = z->l - m_test;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 62 */
z->bra = z->c; /* ], line 62 */
- { int ret;
- ret = slice_del(z); /* delete, line 62 */
+ { int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
return 1;
@@ -213,49 +215,47 @@ static int r_consonant_pair(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* do, line 66 */
+ { int m1 = z->l - z->c; (void)m1; /* do, line 66 */
z->ket = z->c; /* [, line 66 */
if (!(eq_s_b(z, 2, s_0))) goto lab0;
z->bra = z->c; /* ], line 66 */
if (!(eq_s_b(z, 2, s_1))) goto lab0;
- { int ret;
- ret = slice_del(z); /* delete, line 66 */
+ { int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m1;
}
- { int m3; /* setlimit, line 67 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 67 */
+ int m2 = z->l - z->c; (void)m2;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 67 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m2;
z->ket = z->c; /* [, line 67 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 67 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 67 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 70 */
+ { int ret = slice_del(z); /* delete, line 70 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* do, line 70 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 70 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab1; /* call consonant_pair, line 70 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 3, s_2); /* <-, line 72 */
+ { int ret = slice_from_s(z, 3, s_2); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
@@ -264,69 +264,68 @@ static int r_other_suffix(struct SN_env * z) {
}
static int r_undouble(struct SN_env * z) {
- { int m3; /* setlimit, line 76 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 76 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 76 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 76 */
- if (!(out_grouping_b(z, g_v, 97, 248))) { z->lb = m3; return 0; }
+ if (out_grouping_b(z, g_v, 97, 248, 0)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 76 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
if (z->S[0] == 0) return -1; /* -> ch, line 76 */
- z->lb = m3;
+ z->lb = mlimit;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
- { int ret;
- ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 78 */
if (ret < 0) return ret;
}
return 1;
}
extern int danish_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 84 */
+ { int c1 = z->c; /* do, line 84 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 84 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 85 */
- { int m = z->l - z->c; (void) m; /* do, line 86 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 86 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 86 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 87 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 87 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 87 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 88 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 88 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 88 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 89 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 89 */
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 89 */
if (ret < 0) return ret;
}
lab4:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
z->c = z->lb;
return 1;
@@ -334,5 +333,5 @@ extern int danish_ISO_8859_1_stem(struct SN_env * z) {
extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 0); }
-extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_dutch.c b/libstemmer_c/src_c/stem_ISO_8859_1_dutch.c
index 36de3b5..31dad47 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_dutch.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_dutch.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int dutch_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_standard_suffix(struct SN_env * z);
static int r_undouble(struct SN_env * z);
static int r_R2(struct SN_env * z);
@@ -13,22 +19,30 @@ static int r_en_ending(struct SN_env * z);
static int r_e_ending(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * dutch_ISO_8859_1_create_env(void);
extern void dutch_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 0xE1 };
-static symbol s_0_2[1] = { 0xE4 };
-static symbol s_0_3[1] = { 0xE9 };
-static symbol s_0_4[1] = { 0xEB };
-static symbol s_0_5[1] = { 0xED };
-static symbol s_0_6[1] = { 0xEF };
-static symbol s_0_7[1] = { 0xF3 };
-static symbol s_0_8[1] = { 0xF6 };
-static symbol s_0_9[1] = { 0xFA };
-static symbol s_0_10[1] = { 0xFC };
-
-static struct among a_0[11] =
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xE1 };
+static const symbol s_0_2[1] = { 0xE4 };
+static const symbol s_0_3[1] = { 0xE9 };
+static const symbol s_0_4[1] = { 0xEB };
+static const symbol s_0_5[1] = { 0xED };
+static const symbol s_0_6[1] = { 0xEF };
+static const symbol s_0_7[1] = { 0xF3 };
+static const symbol s_0_8[1] = { 0xF6 };
+static const symbol s_0_9[1] = { 0xFA };
+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},
@@ -43,34 +57,34 @@ static struct among a_0[11] =
/* 10 */ { 1, s_0_10, 0, 5, 0}
};
-static symbol s_1_1[1] = { 'I' };
-static symbol s_1_2[1] = { 'Y' };
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'Y' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[2] = { 'd', 'd' };
-static symbol s_2_1[2] = { 'k', 'k' };
-static symbol s_2_2[2] = { 't', 't' };
+static const symbol s_2_0[2] = { 'd', 'd' };
+static const symbol s_2_1[2] = { 'k', 'k' };
+static const symbol s_2_2[2] = { 't', 't' };
-static struct among a_2[3] =
+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}
};
-static symbol s_3_0[3] = { 'e', 'n', 'e' };
-static symbol s_3_1[2] = { 's', 'e' };
-static symbol s_3_2[2] = { 'e', 'n' };
-static symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
-static symbol s_3_4[1] = { 's' };
+static const symbol s_3_0[3] = { 'e', 'n', 'e' };
+static const symbol s_3_1[2] = { 's', 'e' };
+static const symbol s_3_2[2] = { 'e', 'n' };
+static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_3_4[1] = { 's' };
-static struct among a_3[5] =
+static const struct among a_3[5] =
{
/* 0 */ { 3, s_3_0, -1, 2, 0},
/* 1 */ { 2, s_3_1, -1, 3, 0},
@@ -79,14 +93,14 @@ static struct among a_3[5] =
/* 4 */ { 1, s_3_4, -1, 3, 0}
};
-static symbol s_4_0[3] = { 'e', 'n', 'd' };
-static symbol s_4_1[2] = { 'i', 'g' };
-static symbol s_4_2[3] = { 'i', 'n', 'g' };
-static symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
-static symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
-static symbol s_4_5[3] = { 'b', 'a', 'r' };
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
+static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
+static const symbol s_4_5[3] = { 'b', 'a', 'r' };
-static struct among a_4[6] =
+static const struct among a_4[6] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
@@ -96,12 +110,12 @@ static struct among a_4[6] =
/* 5 */ { 3, s_4_5, -1, 5, 0}
};
-static symbol s_5_0[2] = { 'a', 'a' };
-static symbol s_5_1[2] = { 'e', 'e' };
-static symbol s_5_2[2] = { 'o', 'o' };
-static symbol s_5_3[2] = { 'u', 'u' };
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'o', 'o' };
+static const symbol s_5_3[2] = { 'u', 'u' };
-static struct among a_5[4] =
+static const struct among a_5[4] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
@@ -109,73 +123,69 @@ static struct among a_5[4] =
/* 3 */ { 2, s_5_3, -1, -1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-
-static unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-
-static unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-
-static symbol s_0[] = { 'a' };
-static symbol s_1[] = { 'e' };
-static symbol s_2[] = { 'i' };
-static symbol s_3[] = { 'o' };
-static symbol s_4[] = { 'u' };
-static symbol s_5[] = { 'y' };
-static symbol s_6[] = { 'Y' };
-static symbol s_7[] = { 'i' };
-static symbol s_8[] = { 'I' };
-static symbol s_9[] = { 'y' };
-static symbol s_10[] = { 'Y' };
-static symbol s_11[] = { 'y' };
-static symbol s_12[] = { 'i' };
-static symbol s_13[] = { 'e' };
-static symbol s_14[] = { 'g', 'e', 'm' };
-static symbol s_15[] = { 'h', 'e', 'i', 'd' };
-static symbol s_16[] = { 'h', 'e', 'i', 'd' };
-static symbol s_17[] = { 'c' };
-static symbol s_18[] = { 'e', 'n' };
-static symbol s_19[] = { 'i', 'g' };
-static symbol s_20[] = { 'e' };
-static symbol s_21[] = { 'e' };
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'y' };
+static const symbol s_6[] = { 'Y' };
+static const symbol s_7[] = { 'i' };
+static const symbol s_8[] = { 'I' };
+static const symbol s_9[] = { 'y' };
+static const symbol s_10[] = { 'Y' };
+static const symbol s_11[] = { 'y' };
+static const symbol s_12[] = { 'i' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'g', 'e', 'm' };
+static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_17[] = { 'c' };
+static const symbol s_18[] = { 'e', 'n' };
+static const symbol s_19[] = { 'i', 'g' };
+static const symbol s_20[] = { 'e' };
+static const symbol s_21[] = { 'e' };
static int r_prelude(struct SN_env * z) {
int among_var;
{ int c_test = z->c; /* test, line 42 */
while(1) { /* repeat, line 42 */
- int c = z->c;
+ int c1 = 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
among_var = find_among(z, a_0, 11); /* substring, line 43 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
if (ret < 0) return ret;
}
break;
@@ -186,57 +196,54 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
z->c = c_test;
}
- { int c = z->c; /* try, line 57 */
+ { int c_keep = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
- if (!(eq_s(z, 1, s_5))) { z->c = c; goto lab1; }
+ if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
z->ket = z->c; /* ], line 57 */
- { int ret;
- ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
if (ret < 0) return ret;
}
lab1:
;
}
while(1) { /* repeat, line 58 */
- int c = z->c;
+ int c2 = z->c;
while(1) { /* goto, line 58 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 232))) goto lab3;
+ int c3 = z->c;
+ if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
z->bra = z->c; /* [, line 59 */
- { int c = z->c; /* or, line 59 */
+ { int c4 = z->c; /* or, line 59 */
if (!(eq_s(z, 1, s_7))) goto lab5;
z->ket = z->c; /* ], line 59 */
- if (!(in_grouping(z, g_v, 97, 232))) goto lab5;
- { int ret;
- ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
+ if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_9))) goto lab3;
z->ket = z->c; /* ], line 60 */
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
if (ret < 0) return ret;
}
}
lab4:
- z->c = c;
+ z->c = c3;
break;
lab3:
- z->c = c;
+ z->c = c3;
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 58 */
}
continue;
lab2:
- z->c = c;
+ z->c = c2;
break;
}
return 1;
@@ -245,38 +252,30 @@ static int r_prelude(struct SN_env * z) {
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- while(1) { /* gopast, line 69 */
- if (!(in_grouping(z, g_v, 97, 232))) goto lab0;
- break;
- lab0:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 69 */
+ { /* gopast */ /* grouping v, line 69 */
+ int ret = out_grouping(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 69 */
- if (!(out_grouping(z, g_v, 97, 232))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 69 */
+ { /* 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 lab2;
+ if (!(z->I[0] < 3)) goto lab0;
z->I[0] = 3;
-lab2:
- while(1) { /* gopast, line 71 */
- if (!(in_grouping(z, g_v, 97, 232))) goto lab3;
- break;
- lab3:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 71 */
+lab0:
+ { /* gopast */ /* grouping v, line 71 */
+ int ret = out_grouping(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 71 */
- if (!(out_grouping(z, g_v, 97, 232))) goto lab4;
- break;
- lab4:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 71 */
+ { /* 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 */
return 1;
@@ -285,22 +284,21 @@ lab2:
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 75 */
- int c = z->c;
+ 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
among_var = find_among(z, a_1, 3); /* substring, line 77 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
@@ -311,7 +309,7 @@ static int r_postlude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -329,6 +327,7 @@ static int r_R2(struct SN_env * z) {
static int r_undouble(struct SN_env * z) {
{ int m_test = 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;
if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
z->c = z->l - m_test;
}
@@ -336,8 +335,7 @@ static int r_undouble(struct SN_env * z) {
if (z->c <= z->lb) return 0;
z->c--; /* next, line 91 */
z->bra = z->c; /* ], line 91 */
- { int ret;
- ret = slice_del(z); /* delete, line 91 */
+ { int ret = slice_del(z); /* delete, line 91 */
if (ret < 0) return ret;
}
return 1;
@@ -353,11 +351,10 @@ static int r_e_ending(struct SN_env * z) {
if (ret < 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 96 */
- if (!(out_grouping_b(z, g_v, 97, 232))) return 0;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 96 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
@@ -373,18 +370,17 @@ static int r_en_ending(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* and, line 102 */
- if (!(out_grouping_b(z, g_v, 97, 232))) return 0;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* not, line 102 */
+ { int m1 = z->l - z->c; (void)m1; /* and, line 102 */
+ 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_14))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
}
- { int ret;
- ret = slice_del(z); /* delete, line 102 */
+ { int ret = slice_del(z); /* delete, line 102 */
if (ret < 0) return ret;
}
{ int ret = r_undouble(z);
@@ -396,8 +392,9 @@ static int r_en_ending(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* do, line 107 */
+ { 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;
among_var = find_among_b(z, a_3, 5); /* substring, line 108 */
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
@@ -408,8 +405,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab0; /* call R1, line 110 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
+ { int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
@@ -424,25 +420,24 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab0; /* call R1, line 116 */
if (ret < 0) return ret;
}
- if (!(out_grouping_b(z, g_v_j, 97, 232))) goto lab0;
- { int ret;
- 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); /* delete, line 116 */
if (ret < 0) return ret;
}
break;
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m1;
}
- { int m = z->l - z->c; (void) m; /* do, line 120 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 120 */
{ int ret = r_e_ending(z);
if (ret == 0) goto lab1; /* call e_ending, line 120 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 122 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
if (!(eq_s_b(z, 4, s_16))) goto lab2;
z->bra = z->c; /* ], line 122 */
@@ -450,14 +445,13 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab2; /* call R2, line 122 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 122 */
+ { int m4 = z->l - z->c; (void)m4; /* not, line 122 */
if (!(eq_s_b(z, 1, s_17))) goto lab3;
goto lab2;
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int ret;
- ret = slice_del(z); /* delete, line 122 */
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
@@ -468,10 +462,11 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 126 */
+ { 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 lab4;
among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
if (!(among_var)) goto lab4;
z->bra = z->c; /* ], line 127 */
@@ -482,11 +477,10 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 129 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 129 */
+ { int ret = slice_del(z); /* delete, line 129 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* or, line 130 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
if (!(eq_s_b(z, 2, s_19))) goto lab6;
z->bra = z->c; /* ], line 130 */
@@ -494,19 +488,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab6; /* call R2, line 130 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 130 */
+ { int m7 = z->l - z->c; (void)m7; /* not, line 130 */
if (!(eq_s_b(z, 1, s_20))) goto lab7;
goto lab6;
lab7:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- { int ret;
- ret = slice_del(z); /* delete, line 130 */
+ { int ret = slice_del(z); /* delete, line 130 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 130 */
if (ret < 0) return ret;
@@ -519,14 +512,13 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 133 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 133 */
+ { int m8 = z->l - z->c; (void)m8; /* not, line 133 */
if (!(eq_s_b(z, 1, s_21))) goto lab8;
goto lab4;
lab8:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 133 */
if (ret < 0) return ret;
}
break;
@@ -535,8 +527,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 136 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 136 */
+ { int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
{ int ret = r_e_ending(z);
@@ -549,8 +540,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 139 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 139 */
+ { int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
break;
@@ -560,76 +550,75 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
- { int ret;
- ret = slice_del(z); /* delete, line 142 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
break;
}
lab4:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* do, line 146 */
- if (!(out_grouping_b(z, g_v_I, 73, 232))) goto lab9;
+ { int m9 = z->l - z->c; (void)m9; /* do, line 146 */
+ if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab9;
{ int m_test = 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 lab9;
if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
- if (!(out_grouping_b(z, g_v, 97, 232))) goto lab9;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab9;
z->c = z->l - m_test;
}
z->ket = z->c; /* [, line 152 */
if (z->c <= z->lb) goto lab9;
z->c--; /* next, line 152 */
z->bra = z->c; /* ], line 152 */
- { int ret;
- ret = slice_del(z); /* delete, line 152 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
return 1;
}
extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 159 */
+ { int c1 = z->c; /* do, line 159 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 159 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 160 */
+ { int c2 = z->c; /* do, line 160 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 160 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
- { int m = z->l - z->c; (void) m; /* do, line 162 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 162 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
z->c = z->lb;
- { int c = z->c; /* do, line 163 */
+ { int c4 = z->c; /* do, line 163 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 163 */
if (ret < 0) return ret;
}
lab3:
- z->c = c;
+ z->c = c4;
}
return 1;
}
extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
-extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_english.c b/libstemmer_c/src_c/stem_ISO_8859_1_english.c
index 3477b38..556b6ab 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_english.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_english.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int english_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_exception2(struct SN_env * z);
static int r_exception1(struct SN_env * z);
static int r_Step_5(struct SN_env * z);
@@ -19,38 +25,48 @@ static int r_shortv(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * english_ISO_8859_1_create_env(void);
extern void english_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_0[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
-static symbol s_0_1[5] = { 'g', 'e', 'n', 'e', 'r' };
-static struct among a_0[2] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' };
+static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
+static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' };
+
+static const struct among a_0[3] =
{
-/* 0 */ { 6, s_0_0, -1, -1, 0},
-/* 1 */ { 5, s_0_1, -1, -1, 0}
+/* 0 */ { 5, s_0_0, -1, -1, 0},
+/* 1 */ { 6, s_0_1, -1, -1, 0},
+/* 2 */ { 5, s_0_2, -1, -1, 0}
};
-static symbol s_1_0[1] = { '\'' };
-static symbol s_1_1[3] = { '\'', 's', '\'' };
-static symbol s_1_2[2] = { '\'', 's' };
+static const symbol s_1_0[1] = { '\'' };
+static const symbol s_1_1[3] = { '\'', 's', '\'' };
+static const symbol s_1_2[2] = { '\'', 's' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[3] = { 'i', 'e', 'd' };
-static symbol s_2_1[1] = { 's' };
-static symbol s_2_2[3] = { 'i', 'e', 's' };
-static symbol s_2_3[4] = { 's', 's', 'e', 's' };
-static symbol s_2_4[2] = { 's', 's' };
-static symbol s_2_5[2] = { 'u', 's' };
+static const symbol s_2_0[3] = { 'i', 'e', 'd' };
+static const symbol s_2_1[1] = { 's' };
+static const symbol s_2_2[3] = { 'i', 'e', 's' };
+static const symbol s_2_3[4] = { 's', 's', 'e', 's' };
+static const symbol s_2_4[2] = { 's', 's' };
+static const symbol s_2_5[2] = { 'u', 's' };
-static struct among a_2[6] =
+static const struct among a_2[6] =
{
/* 0 */ { 3, s_2_0, -1, 2, 0},
/* 1 */ { 1, s_2_1, -1, 3, 0},
@@ -60,20 +76,20 @@ static struct among a_2[6] =
/* 5 */ { 2, s_2_5, 1, -1, 0}
};
-static symbol s_3_1[2] = { 'b', 'b' };
-static symbol s_3_2[2] = { 'd', 'd' };
-static symbol s_3_3[2] = { 'f', 'f' };
-static symbol s_3_4[2] = { 'g', 'g' };
-static symbol s_3_5[2] = { 'b', 'l' };
-static symbol s_3_6[2] = { 'm', 'm' };
-static symbol s_3_7[2] = { 'n', 'n' };
-static symbol s_3_8[2] = { 'p', 'p' };
-static symbol s_3_9[2] = { 'r', 'r' };
-static symbol s_3_10[2] = { 'a', 't' };
-static symbol s_3_11[2] = { 't', 't' };
-static symbol s_3_12[2] = { 'i', 'z' };
+static const symbol s_3_1[2] = { 'b', 'b' };
+static const symbol s_3_2[2] = { 'd', 'd' };
+static const symbol s_3_3[2] = { 'f', 'f' };
+static const symbol s_3_4[2] = { 'g', 'g' };
+static const symbol s_3_5[2] = { 'b', 'l' };
+static const symbol s_3_6[2] = { 'm', 'm' };
+static const symbol s_3_7[2] = { 'n', 'n' };
+static const symbol s_3_8[2] = { 'p', 'p' };
+static const symbol s_3_9[2] = { 'r', 'r' };
+static const symbol s_3_10[2] = { 'a', 't' };
+static const symbol s_3_11[2] = { 't', 't' };
+static const symbol s_3_12[2] = { 'i', 'z' };
-static struct among a_3[13] =
+static const struct among a_3[13] =
{
/* 0 */ { 0, 0, -1, 3, 0},
/* 1 */ { 2, s_3_1, 0, 2, 0},
@@ -90,14 +106,14 @@ static struct among a_3[13] =
/* 12 */ { 2, s_3_12, 0, 1, 0}
};
-static symbol s_4_0[2] = { 'e', 'd' };
-static symbol s_4_1[3] = { 'e', 'e', 'd' };
-static symbol s_4_2[3] = { 'i', 'n', 'g' };
-static symbol s_4_3[4] = { 'e', 'd', 'l', 'y' };
-static symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' };
-static symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
+static const symbol s_4_0[2] = { 'e', 'd' };
+static const symbol s_4_1[3] = { 'e', 'e', 'd' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'e', 'd', 'l', 'y' };
+static const symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' };
+static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
-static struct among a_4[6] =
+static const struct among a_4[6] =
{
/* 0 */ { 2, s_4_0, -1, 2, 0},
/* 1 */ { 3, s_4_1, 0, 1, 0},
@@ -107,32 +123,32 @@ static struct among a_4[6] =
/* 5 */ { 5, s_4_5, -1, 2, 0}
};
-static symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
-static symbol s_5_1[4] = { 'e', 'n', 'c', 'i' };
-static symbol s_5_2[3] = { 'o', 'g', 'i' };
-static symbol s_5_3[2] = { 'l', 'i' };
-static symbol s_5_4[3] = { 'b', 'l', 'i' };
-static symbol s_5_5[4] = { 'a', 'b', 'l', 'i' };
-static symbol s_5_6[4] = { 'a', 'l', 'l', 'i' };
-static symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' };
-static symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
-static symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' };
-static symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' };
-static symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' };
-static symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
-static symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' };
-static symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' };
-static symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' };
-static symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
-static symbol s_5_19[4] = { 'i', 'z', 'e', 'r' };
-static symbol s_5_20[4] = { 'a', 't', 'o', 'r' };
-static symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
-static symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
-static symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
+static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_5_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_5_2[3] = { 'o', 'g', 'i' };
+static const symbol s_5_3[2] = { 'l', 'i' };
+static const symbol s_5_4[3] = { 'b', 'l', 'i' };
+static const symbol s_5_5[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_5_6[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' };
+static const symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
+static const symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_19[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_5_20[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
-static struct among a_5[24] =
+static const struct among a_5[24] =
{
/* 0 */ { 4, s_5_0, -1, 3, 0},
/* 1 */ { 4, s_5_1, -1, 2, 0},
@@ -160,17 +176,17 @@ static struct among a_5[24] =
/* 23 */ { 7, s_5_23, -1, 10, 0}
};
-static symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
-static symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' };
-static symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' };
-static symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' };
-static symbol s_6_4[4] = { 'i', 'c', 'a', 'l' };
-static symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_6_7[3] = { 'f', 'u', 'l' };
-static symbol s_6_8[4] = { 'n', 'e', 's', 's' };
+static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_6_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_7[3] = { 'f', 'u', 'l' };
+static const symbol s_6_8[4] = { 'n', 'e', 's', 's' };
-static struct among a_6[9] =
+static const struct among a_6[9] =
{
/* 0 */ { 5, s_6_0, -1, 4, 0},
/* 1 */ { 5, s_6_1, -1, 6, 0},
@@ -183,26 +199,26 @@ static struct among a_6[9] =
/* 8 */ { 4, s_6_8, -1, 5, 0}
};
-static symbol s_7_0[2] = { 'i', 'c' };
-static symbol s_7_1[4] = { 'a', 'n', 'c', 'e' };
-static symbol s_7_2[4] = { 'e', 'n', 'c', 'e' };
-static symbol s_7_3[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_7_4[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_7_5[3] = { 'a', 't', 'e' };
-static symbol s_7_6[3] = { 'i', 'v', 'e' };
-static symbol s_7_7[3] = { 'i', 'z', 'e' };
-static symbol s_7_8[3] = { 'i', 't', 'i' };
-static symbol s_7_9[2] = { 'a', 'l' };
-static symbol s_7_10[3] = { 'i', 's', 'm' };
-static symbol s_7_11[3] = { 'i', 'o', 'n' };
-static symbol s_7_12[2] = { 'e', 'r' };
-static symbol s_7_13[3] = { 'o', 'u', 's' };
-static symbol s_7_14[3] = { 'a', 'n', 't' };
-static symbol s_7_15[3] = { 'e', 'n', 't' };
-static symbol s_7_16[4] = { 'm', 'e', 'n', 't' };
-static symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_7_0[2] = { 'i', 'c' };
+static const symbol s_7_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_7_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_7_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_7_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_7_5[3] = { 'a', 't', 'e' };
+static const symbol s_7_6[3] = { 'i', 'v', 'e' };
+static const symbol s_7_7[3] = { 'i', 'z', 'e' };
+static const symbol s_7_8[3] = { 'i', 't', 'i' };
+static const symbol s_7_9[2] = { 'a', 'l' };
+static const symbol s_7_10[3] = { 'i', 's', 'm' };
+static const symbol s_7_11[3] = { 'i', 'o', 'n' };
+static const symbol s_7_12[2] = { 'e', 'r' };
+static const symbol s_7_13[3] = { 'o', 'u', 's' };
+static const symbol s_7_14[3] = { 'a', 'n', 't' };
+static const symbol s_7_15[3] = { 'e', 'n', 't' };
+static const symbol s_7_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
-static struct among a_7[18] =
+static const struct among a_7[18] =
{
/* 0 */ { 2, s_7_0, -1, 1, 0},
/* 1 */ { 4, s_7_1, -1, 1, 0},
@@ -224,25 +240,25 @@ static struct among a_7[18] =
/* 17 */ { 5, s_7_17, 16, 1, 0}
};
-static symbol s_8_0[1] = { 'e' };
-static symbol s_8_1[1] = { 'l' };
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[1] = { 'l' };
-static struct among a_8[2] =
+static const struct among a_8[2] =
{
/* 0 */ { 1, s_8_0, -1, 1, 0},
/* 1 */ { 1, s_8_1, -1, 2, 0}
};
-static symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
-static symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' };
-static symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' };
-static symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' };
-static symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' };
-static symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' };
-static symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' };
-static symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
+static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
+static const symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' };
+static const symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' };
+static const symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
-static struct among a_9[8] =
+static const struct among a_9[8] =
{
/* 0 */ { 7, s_9_0, -1, -1, 0},
/* 1 */ { 7, s_9_1, -1, -1, 0},
@@ -254,26 +270,26 @@ static struct among a_9[8] =
/* 7 */ { 6, s_9_7, -1, -1, 0}
};
-static symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
-static symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' };
-static symbol s_10_2[4] = { 'b', 'i', 'a', 's' };
-static symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
-static symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' };
-static symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' };
-static symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
-static symbol s_10_7[4] = { 'h', 'o', 'w', 'e' };
-static symbol s_10_8[4] = { 'i', 'd', 'l', 'y' };
-static symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' };
-static symbol s_10_10[4] = { 'n', 'e', 'w', 's' };
-static symbol s_10_11[4] = { 'o', 'n', 'l', 'y' };
-static symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
-static symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' };
-static symbol s_10_14[4] = { 's', 'k', 'i', 's' };
-static symbol s_10_15[3] = { 's', 'k', 'y' };
-static symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' };
-static symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
+static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' };
+static const symbol s_10_2[4] = { 'b', 'i', 'a', 's' };
+static const symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
+static const symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' };
+static const symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' };
+static const symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
+static const symbol s_10_7[4] = { 'h', 'o', 'w', 'e' };
+static const symbol s_10_8[4] = { 'i', 'd', 'l', 'y' };
+static const symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' };
+static const symbol s_10_10[4] = { 'n', 'e', 'w', 's' };
+static const symbol s_10_11[4] = { 'o', 'n', 'l', 'y' };
+static const symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
+static const symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' };
+static const symbol s_10_14[4] = { 's', 'k', 'i', 's' };
+static const symbol s_10_15[3] = { 's', 'k', 'y' };
+static const symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' };
+static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
-static struct among a_10[18] =
+static const struct among a_10[18] =
{
/* 0 */ { 5, s_10_0, -1, -1, 0},
/* 1 */ { 5, s_10_1, -1, -1, 0},
@@ -295,115 +311,112 @@ static struct among a_10[18] =
/* 17 */ { 4, s_10_17, -1, 8, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1 };
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
-static unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
-static unsigned char g_valid_LI[] = { 55, 141, 2 };
+static const unsigned char g_valid_LI[] = { 55, 141, 2 };
-static symbol s_0[] = { '\'' };
-static symbol s_1[] = { 'y' };
-static symbol s_2[] = { 'Y' };
-static symbol s_3[] = { 'y' };
-static symbol s_4[] = { 'Y' };
-static symbol s_5[] = { 's', 's' };
-static symbol s_6[] = { 'i' };
-static symbol s_7[] = { 'i', 'e' };
-static symbol s_8[] = { 'e', 'e' };
-static symbol s_9[] = { 'e' };
-static symbol s_10[] = { 'e' };
-static symbol s_11[] = { 'y' };
-static symbol s_12[] = { 'Y' };
-static symbol s_13[] = { 'i' };
-static symbol s_14[] = { 't', 'i', 'o', 'n' };
-static symbol s_15[] = { 'e', 'n', 'c', 'e' };
-static symbol s_16[] = { 'a', 'n', 'c', 'e' };
-static symbol s_17[] = { 'a', 'b', 'l', 'e' };
-static symbol s_18[] = { 'e', 'n', 't' };
-static symbol s_19[] = { 'i', 'z', 'e' };
-static symbol s_20[] = { 'a', 't', 'e' };
-static symbol s_21[] = { 'a', 'l' };
-static symbol s_22[] = { 'f', 'u', 'l' };
-static symbol s_23[] = { 'o', 'u', 's' };
-static symbol s_24[] = { 'i', 'v', 'e' };
-static symbol s_25[] = { 'b', 'l', 'e' };
-static symbol s_26[] = { 'l' };
-static symbol s_27[] = { 'o', 'g' };
-static symbol s_28[] = { 'f', 'u', 'l' };
-static symbol s_29[] = { 'l', 'e', 's', 's' };
-static symbol s_30[] = { 't', 'i', 'o', 'n' };
-static symbol s_31[] = { 'a', 't', 'e' };
-static symbol s_32[] = { 'a', 'l' };
-static symbol s_33[] = { 'i', 'c' };
-static symbol s_34[] = { 's' };
-static symbol s_35[] = { 't' };
-static symbol s_36[] = { 'l' };
-static symbol s_37[] = { 's', 'k', 'i' };
-static symbol s_38[] = { 's', 'k', 'y' };
-static symbol s_39[] = { 'd', 'i', 'e' };
-static symbol s_40[] = { 'l', 'i', 'e' };
-static symbol s_41[] = { 't', 'i', 'e' };
-static symbol s_42[] = { 'i', 'd', 'l' };
-static symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
-static symbol s_44[] = { 'u', 'g', 'l', 'i' };
-static symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
-static symbol s_46[] = { 'o', 'n', 'l', 'i' };
-static symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
-static symbol s_48[] = { 'Y' };
-static symbol s_49[] = { 'y' };
+static const symbol s_0[] = { '\'' };
+static const symbol s_1[] = { 'y' };
+static const symbol s_2[] = { 'Y' };
+static const symbol s_3[] = { 'y' };
+static const symbol s_4[] = { 'Y' };
+static const symbol s_5[] = { 's', 's' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'i', 'e' };
+static const symbol s_8[] = { 'e', 'e' };
+static const symbol s_9[] = { 'e' };
+static const symbol s_10[] = { 'e' };
+static const symbol s_11[] = { 'y' };
+static const symbol s_12[] = { 'Y' };
+static const symbol s_13[] = { 'i' };
+static const symbol s_14[] = { 't', 'i', 'o', 'n' };
+static const symbol s_15[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_16[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_17[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_18[] = { 'e', 'n', 't' };
+static const symbol s_19[] = { 'i', 'z', 'e' };
+static const symbol s_20[] = { 'a', 't', 'e' };
+static const symbol s_21[] = { 'a', 'l' };
+static const symbol s_22[] = { 'f', 'u', 'l' };
+static const symbol s_23[] = { 'o', 'u', 's' };
+static const symbol s_24[] = { 'i', 'v', 'e' };
+static const symbol s_25[] = { 'b', 'l', 'e' };
+static const symbol s_26[] = { 'l' };
+static const symbol s_27[] = { 'o', 'g' };
+static const symbol s_28[] = { 'f', 'u', 'l' };
+static const symbol s_29[] = { 'l', 'e', 's', 's' };
+static const symbol s_30[] = { 't', 'i', 'o', 'n' };
+static const symbol s_31[] = { 'a', 't', 'e' };
+static const symbol s_32[] = { 'a', 'l' };
+static const symbol s_33[] = { 'i', 'c' };
+static const symbol s_34[] = { 's' };
+static const symbol s_35[] = { 't' };
+static const symbol s_36[] = { 'l' };
+static const symbol s_37[] = { 's', 'k', 'i' };
+static const symbol s_38[] = { 's', 'k', 'y' };
+static const symbol s_39[] = { 'd', 'i', 'e' };
+static const symbol s_40[] = { 'l', 'i', 'e' };
+static const symbol s_41[] = { 't', 'i', 'e' };
+static const symbol s_42[] = { 'i', 'd', 'l' };
+static const symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
+static const symbol s_44[] = { 'u', 'g', 'l', 'i' };
+static const symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
+static const symbol s_46[] = { 'o', 'n', 'l', 'i' };
+static const symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
+static const symbol s_48[] = { 'Y' };
+static const symbol s_49[] = { 'y' };
static int r_prelude(struct SN_env * z) {
z->B[0] = 0; /* unset Y_found, line 26 */
- { int c = z->c; /* do, line 27 */
+ { int c1 = z->c; /* do, line 27 */
z->bra = z->c; /* [, line 27 */
if (!(eq_s(z, 1, s_0))) goto lab0;
z->ket = z->c; /* ], line 27 */
- { int ret;
- ret = slice_del(z); /* delete, line 27 */
+ { int ret = slice_del(z); /* delete, line 27 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 28 */
+ { int c2 = z->c; /* do, line 28 */
z->bra = z->c; /* [, line 28 */
if (!(eq_s(z, 1, s_1))) goto lab1;
z->ket = z->c; /* ], line 28 */
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 28 */
lab1:
- z->c = c;
+ z->c = c2;
}
- { int c = z->c; /* do, line 29 */
+ { int c3 = z->c; /* do, line 29 */
while(1) { /* repeat, line 29 */
- int c = z->c;
+ int c4 = z->c;
while(1) { /* goto, line 29 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 121))) goto lab4;
+ int c5 = z->c;
+ if (in_grouping(z, g_v, 97, 121, 0)) goto lab4;
z->bra = z->c; /* [, line 29 */
if (!(eq_s(z, 1, s_3))) goto lab4;
z->ket = z->c; /* ], line 29 */
- z->c = c;
+ z->c = c5;
break;
lab4:
- z->c = c;
+ z->c = c5;
if (z->c >= z->l) goto lab3;
z->c++; /* goto, line 29 */
}
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 29 */
continue;
lab3:
- z->c = c;
+ z->c = c4;
break;
}
- z->c = c;
+ z->c = c3;
}
return 1;
}
@@ -411,61 +424,54 @@ static int r_prelude(struct SN_env * z) {
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- { int c = z->c; /* do, line 35 */
- { int c = z->c; /* or, line 40 */
- if (!(find_among(z, a_0, 2))) goto lab2; /* among, line 36 */
+ { 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;
+ if (!(find_among(z, a_0, 3))) goto lab2; /* among, line 36 */
goto lab1;
lab2:
- z->c = c;
- while(1) { /* gopast, line 40 */
- if (!(in_grouping(z, g_v, 97, 121))) goto lab3;
- break;
- lab3:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 40 */
+ 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;
}
- while(1) { /* gopast, line 40 */
- if (!(out_grouping(z, g_v, 97, 121))) goto lab4;
- break;
- lab4:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 40 */
+ { /* 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 41 */
- while(1) { /* gopast, line 42 */
- if (!(in_grouping(z, g_v, 97, 121))) goto lab5;
- break;
- lab5:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 42 */
+ z->I[0] = z->c; /* setmark p1, line 42 */
+ { /* gopast */ /* grouping v, line 43 */
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
}
- while(1) { /* gopast, line 42 */
- if (!(out_grouping(z, g_v, 97, 121))) goto lab6;
- break;
- lab6:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 42 */
+ { /* 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 42 */
+ z->I[1] = z->c; /* setmark p2, line 43 */
lab0:
- z->c = c;
+ z->c = c1;
}
return 1;
}
static int r_shortv(struct SN_env * z) {
- { int m = z->l - z->c; (void) m; /* or, line 50 */
- if (!(out_grouping_b(z, g_v_WXY, 89, 121))) goto lab1;
- if (!(in_grouping_b(z, g_v, 97, 121))) goto lab1;
- if (!(out_grouping_b(z, g_v, 97, 121))) goto lab1;
+ { int m1 = z->l - z->c; (void)m1; /* or, line 51 */
+ 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 - m;
- if (!(out_grouping_b(z, g_v, 97, 121))) return 0;
- if (!(in_grouping_b(z, g_v, 97, 121))) return 0;
- if (z->c > z->lb) return 0; /* atlimit, line 51 */
+ z->c = z->l - m1;
+ 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; /* atlimit, line 52 */
}
lab0:
return 1;
@@ -483,16 +489,16 @@ static int r_R2(struct SN_env * z) {
static int r_Step_1a(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* try, line 58 */
- z->ket = z->c; /* [, line 59 */
- among_var = find_among_b(z, a_1, 3); /* substring, line 59 */
- if (!(among_var)) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 59 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab0; }
+ among_var = find_among_b(z, a_1, 3); /* substring, line 60 */
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 60 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab0; }
+ case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 61 */
+ { int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
break;
@@ -500,33 +506,31 @@ static int r_Step_1a(struct SN_env * z) {
lab0:
;
}
- z->ket = z->c; /* [, line 64 */
- among_var = find_among_b(z, a_2, 6); /* substring, line 64 */
+ 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;
+ among_var = find_among_b(z, a_2, 6); /* substring, line 65 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 64 */
+ z->bra = z->c; /* ], line 65 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_5); /* <-, line 65 */
+ { int ret = slice_from_s(z, 2, s_5); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 67 */
- { int c = z->c - 2;
- if (z->lb > c || c > z->l) goto lab2;
- z->c = c; /* hop, line 67 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 68 */
+ { int ret = z->c - 2;
+ if (z->lb > ret || ret > z->l) goto lab2;
+ z->c = ret; /* hop, line 68 */
}
- { int ret;
- ret = slice_from_s(z, 1, s_6); /* <-, line 67 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 68 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 2, s_7); /* <-, line 67 */
+ z->c = z->l - m1;
+ { int ret = slice_from_s(z, 2, s_7); /* <-, line 68 */
if (ret < 0) return ret;
}
}
@@ -534,16 +538,13 @@ static int r_Step_1a(struct SN_env * z) {
break;
case 3:
if (z->c <= z->lb) return 0;
- z->c--; /* next, line 68 */
- while(1) { /* gopast, line 68 */
- if (!(in_grouping_b(z, g_v, 97, 121))) goto lab3;
- break;
- lab3:
- if (z->c <= z->lb) return 0;
- z->c--; /* gopast, line 68 */
+ z->c--; /* next, line 69 */
+ { /* gopast */ /* grouping v, line 69 */
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 68 */
+ { int ret = slice_del(z); /* delete, line 69 */
if (ret < 0) return ret;
}
break;
@@ -553,77 +554,70 @@ static int r_Step_1a(struct SN_env * z) {
static int r_Step_1b(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 74 */
- among_var = find_among_b(z, a_4, 6); /* substring, line 74 */
+ 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;
+ among_var = find_among_b(z, a_4, 6); /* substring, line 75 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 74 */
+ z->bra = z->c; /* ], line 75 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 76 */
+ if (ret == 0) return 0; /* call R1, line 77 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
+ { int ret = slice_from_s(z, 2, s_8); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m_test = z->l - z->c; /* test, line 79 */
- while(1) { /* gopast, line 79 */
- if (!(in_grouping_b(z, g_v, 97, 121))) goto lab0;
- break;
- lab0:
- if (z->c <= z->lb) return 0;
- z->c--; /* gopast, line 79 */
+ { int m_test = z->l - z->c; /* test, line 80 */
+ { /* gopast */ /* grouping v, line 80 */
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
}
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 79 */
+ { int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
- { int m_test = z->l - z->c; /* test, line 80 */
- among_var = find_among_b(z, a_3, 13); /* substring, line 80 */
+ { int m_test = 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
+ among_var = find_among_b(z, a_3, 13); /* substring, line 81 */
if (!(among_var)) return 0;
z->c = z->l - m_test;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 82 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 83 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
case 2:
- z->ket = z->c; /* [, line 85 */
+ z->ket = z->c; /* [, line 86 */
if (z->c <= z->lb) return 0;
- z->c--; /* next, line 85 */
- z->bra = z->c; /* ], line 85 */
- { int ret;
- ret = slice_del(z); /* delete, line 85 */
+ z->c--; /* next, line 86 */
+ z->bra = z->c; /* ], line 86 */
+ { int ret = slice_del(z); /* delete, line 86 */
if (ret < 0) return ret;
}
break;
case 3:
- if (z->c != z->I[0]) return 0; /* atmark, line 86 */
- { int m_test = z->l - z->c; /* test, line 86 */
+ if (z->c != z->I[0]) return 0; /* atmark, line 87 */
+ { int m_test = z->l - z->c; /* test, line 87 */
{ int ret = r_shortv(z);
- if (ret == 0) return 0; /* call shortv, line 86 */
+ if (ret == 0) return 0; /* call shortv, line 87 */
if (ret < 0) return ret;
}
z->c = z->l - m_test;
}
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 86 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 87 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
@@ -634,25 +628,24 @@ static int r_Step_1b(struct SN_env * z) {
}
static int r_Step_1c(struct SN_env * z) {
- z->ket = z->c; /* [, line 93 */
- { int m = z->l - z->c; (void) m; /* or, line 93 */
+ z->ket = z->c; /* [, line 94 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 94 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_12))) return 0;
}
lab0:
- z->bra = z->c; /* ], line 93 */
- if (!(out_grouping_b(z, g_v, 97, 121))) return 0;
- { int m = z->l - z->c; (void) m; /* not, line 94 */
- if (z->c > z->lb) goto lab2; /* atlimit, line 94 */
+ z->bra = z->c; /* ], line 94 */
+ if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 95 */
+ if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
return 0;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 95 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 96 */
if (ret < 0) return ret;
}
return 1;
@@ -660,111 +653,96 @@ lab0:
static int r_Step_2(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 99 */
- among_var = find_among_b(z, a_5, 24); /* substring, line 99 */
+ 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;
+ among_var = find_among_b(z, a_5, 24); /* substring, line 100 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 99 */
+ z->bra = z->c; /* ], line 100 */
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 99 */
+ if (ret == 0) return 0; /* call R1, line 100 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 4, s_14); /* <-, line 100 */
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 4, s_15); /* <-, line 101 */
+ { int ret = slice_from_s(z, 4, s_15); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 4, s_16); /* <-, line 102 */
+ { int ret = slice_from_s(z, 4, s_16); /* <-, line 103 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 4, s_17); /* <-, line 103 */
+ { int ret = slice_from_s(z, 4, s_17); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 3, s_18); /* <-, line 104 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 105 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 3, s_19); /* <-, line 106 */
+ { int ret = slice_from_s(z, 3, s_19); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret;
- ret = slice_from_s(z, 3, s_20); /* <-, line 108 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret;
- ret = slice_from_s(z, 2, s_21); /* <-, line 110 */
+ { int ret = slice_from_s(z, 2, s_21); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 3, s_22); /* <-, line 111 */
+ { int ret = slice_from_s(z, 3, s_22); /* <-, line 112 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret;
- ret = slice_from_s(z, 3, s_23); /* <-, line 113 */
+ { int ret = slice_from_s(z, 3, s_23); /* <-, line 114 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret;
- ret = slice_from_s(z, 3, s_24); /* <-, line 115 */
+ { int ret = slice_from_s(z, 3, s_24); /* <-, line 116 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret;
- ret = slice_from_s(z, 3, s_25); /* <-, line 117 */
+ { int ret = slice_from_s(z, 3, s_25); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 13:
if (!(eq_s_b(z, 1, s_26))) return 0;
- { int ret;
- ret = slice_from_s(z, 2, s_27); /* <-, line 118 */
+ { int ret = slice_from_s(z, 2, s_27); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 14:
- { int ret;
- ret = slice_from_s(z, 3, s_28); /* <-, line 119 */
+ { int ret = slice_from_s(z, 3, s_28); /* <-, line 120 */
if (ret < 0) return ret;
}
break;
case 15:
- { int ret;
- ret = slice_from_s(z, 4, s_29); /* <-, line 120 */
+ { int ret = slice_from_s(z, 4, s_29); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 16:
- if (!(in_grouping_b(z, g_valid_LI, 99, 116))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 121 */
+ if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0;
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
break;
@@ -774,53 +752,48 @@ static int r_Step_2(struct SN_env * z) {
static int r_Step_3(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 126 */
- among_var = find_among_b(z, a_6, 9); /* substring, line 126 */
+ 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;
+ among_var = find_among_b(z, a_6, 9); /* substring, line 127 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 126 */
+ z->bra = z->c; /* ], line 127 */
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 126 */
+ if (ret == 0) return 0; /* call R1, line 127 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 4, s_30); /* <-, line 127 */
+ { int ret = slice_from_s(z, 4, s_30); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 3, s_31); /* <-, line 128 */
+ { int ret = slice_from_s(z, 3, s_31); /* <-, line 129 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 2, s_32); /* <-, line 129 */
+ { int ret = slice_from_s(z, 2, s_32); /* <-, line 130 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 2, s_33); /* <-, line 131 */
+ { int ret = slice_from_s(z, 2, s_33); /* <-, line 132 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 135 */
+ if (ret == 0) return 0; /* call R2, line 136 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 135 */
+ { int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
break;
@@ -830,33 +803,32 @@ static int r_Step_3(struct SN_env * z) {
static int r_Step_4(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 140 */
- among_var = find_among_b(z, a_7, 18); /* substring, line 140 */
+ 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;
+ among_var = find_among_b(z, a_7, 18); /* substring, line 141 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 140 */
+ z->bra = z->c; /* ], line 141 */
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 140 */
+ if (ret == 0) return 0; /* call R2, line 141 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 144 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 144 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 1, s_34))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_35))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 144 */
+ { int ret = slice_del(z); /* delete, line 145 */
if (ret < 0) return ret;
}
break;
@@ -866,49 +838,48 @@ static int r_Step_4(struct SN_env * z) {
static int r_Step_5(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 149 */
- among_var = find_among_b(z, a_8, 2); /* substring, line 149 */
+ 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;
+ among_var = find_among_b(z, a_8, 2); /* substring, line 150 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 149 */
+ z->bra = z->c; /* ], line 150 */
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 150 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 151 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab1; /* call R2, line 150 */
+ if (ret == 0) goto lab1; /* call R2, line 151 */
if (ret < 0) return ret;
}
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 150 */
+ if (ret == 0) return 0; /* call R1, line 151 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 150 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 151 */
{ int ret = r_shortv(z);
- if (ret == 0) goto lab2; /* call shortv, line 150 */
+ if (ret == 0) goto lab2; /* call shortv, line 151 */
if (ret < 0) return ret;
}
return 0;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 150 */
+ { int ret = slice_del(z); /* delete, line 151 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 151 */
+ if (ret == 0) return 0; /* call R2, line 152 */
if (ret < 0) return ret;
}
if (!(eq_s_b(z, 1, s_36))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
break;
@@ -917,85 +888,76 @@ static int r_Step_5(struct SN_env * z) {
}
static int r_exception2(struct SN_env * z) {
- z->ket = z->c; /* [, line 157 */
- if (!(find_among_b(z, a_9, 8))) return 0; /* substring, line 157 */
- z->bra = z->c; /* ], line 157 */
- if (z->c > z->lb) return 0; /* atlimit, line 157 */
+ 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;
+ if (!(find_among_b(z, a_9, 8))) return 0; /* substring, line 158 */
+ z->bra = z->c; /* ], line 158 */
+ if (z->c > z->lb) return 0; /* atlimit, line 158 */
return 1;
}
static int r_exception1(struct SN_env * z) {
int among_var;
- z->bra = z->c; /* [, line 169 */
- among_var = find_among(z, a_10, 18); /* substring, line 169 */
+ 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;
+ among_var = find_among(z, a_10, 18); /* substring, line 170 */
if (!(among_var)) return 0;
- z->ket = z->c; /* ], line 169 */
- if (z->c < z->l) return 0; /* atlimit, line 169 */
+ z->ket = z->c; /* ], line 170 */
+ if (z->c < z->l) return 0; /* atlimit, line 170 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 3, s_37); /* <-, line 173 */
+ { int ret = slice_from_s(z, 3, s_37); /* <-, line 174 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 3, s_38); /* <-, line 174 */
+ { int ret = slice_from_s(z, 3, s_38); /* <-, line 175 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 3, s_39); /* <-, line 175 */
+ { int ret = slice_from_s(z, 3, s_39); /* <-, line 176 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 3, s_40); /* <-, line 176 */
+ { int ret = slice_from_s(z, 3, s_40); /* <-, line 177 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 3, s_41); /* <-, line 177 */
+ { int ret = slice_from_s(z, 3, s_41); /* <-, line 178 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 3, s_42); /* <-, line 181 */
+ { int ret = slice_from_s(z, 3, s_42); /* <-, line 182 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret;
- ret = slice_from_s(z, 5, s_43); /* <-, line 182 */
+ { int ret = slice_from_s(z, 5, s_43); /* <-, line 183 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret;
- ret = slice_from_s(z, 4, s_44); /* <-, line 183 */
+ { int ret = slice_from_s(z, 4, s_44); /* <-, line 184 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 5, s_45); /* <-, line 184 */
+ { int ret = slice_from_s(z, 5, s_45); /* <-, line 185 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret;
- ret = slice_from_s(z, 4, s_46); /* <-, line 185 */
+ { int ret = slice_from_s(z, 4, s_46); /* <-, line 186 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret;
- ret = slice_from_s(z, 5, s_47); /* <-, line 186 */
+ { int ret = slice_from_s(z, 5, s_47); /* <-, line 187 */
if (ret < 0) return ret;
}
break;
@@ -1004,146 +966,145 @@ static int r_exception1(struct SN_env * z) {
}
static int r_postlude(struct SN_env * z) {
- if (!(z->B[0])) return 0; /* Boolean test Y_found, line 202 */
- while(1) { /* repeat, line 202 */
- int c = z->c;
- while(1) { /* goto, line 202 */
- int c = z->c;
- z->bra = z->c; /* [, line 202 */
+ if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
+ while(1) { /* repeat, line 203 */
+ int c1 = z->c;
+ while(1) { /* goto, line 203 */
+ int c2 = z->c;
+ z->bra = z->c; /* [, line 203 */
if (!(eq_s(z, 1, s_48))) goto lab1;
- z->ket = z->c; /* ], line 202 */
- z->c = c;
+ z->ket = z->c; /* ], line 203 */
+ z->c = c2;
break;
lab1:
- z->c = c;
+ z->c = c2;
if (z->c >= z->l) goto lab0;
- z->c++; /* goto, line 202 */
+ z->c++; /* goto, line 203 */
}
- { int ret;
- ret = slice_from_s(z, 1, s_49); /* <-, line 202 */
+ { int ret = slice_from_s(z, 1, s_49); /* <-, line 203 */
if (ret < 0) return ret;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
}
extern int english_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* or, line 206 */
+ { int c1 = z->c; /* or, line 207 */
{ int ret = r_exception1(z);
- if (ret == 0) goto lab1; /* call exception1, line 206 */
+ if (ret == 0) goto lab1; /* call exception1, line 207 */
if (ret < 0) return ret;
}
goto lab0;
lab1:
- z->c = c;
- { int c = z->c; /* not, line 207 */
- { int c = z->c + 3;
- if (0 > c || c > z->l) goto lab3;
- z->c = c; /* hop, line 207 */
+ z->c = c1;
+ { int c2 = z->c; /* not, line 208 */
+ { int ret = z->c + 3;
+ if (0 > ret || ret > z->l) goto lab3;
+ z->c = ret; /* hop, line 208 */
}
goto lab2;
lab3:
- z->c = c;
+ z->c = c2;
}
goto lab0;
lab2:
- z->c = c;
- { int c = z->c; /* do, line 208 */
+ z->c = c1;
+ { int c3 = z->c; /* do, line 209 */
{ int ret = r_prelude(z);
- if (ret == 0) goto lab4; /* call prelude, line 208 */
+ if (ret == 0) goto lab4; /* call prelude, line 209 */
if (ret < 0) return ret;
}
lab4:
- z->c = c;
+ z->c = c3;
}
- { int c = z->c; /* do, line 209 */
+ { int c4 = z->c; /* do, line 210 */
{ int ret = r_mark_regions(z);
- if (ret == 0) goto lab5; /* call mark_regions, line 209 */
+ if (ret == 0) goto lab5; /* call mark_regions, line 210 */
if (ret < 0) return ret;
}
lab5:
- z->c = c;
+ z->c = c4;
}
- z->lb = z->c; z->c = z->l; /* backwards, line 210 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 211 */
- { int m = z->l - z->c; (void) m; /* do, line 212 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 213 */
{ int ret = r_Step_1a(z);
- if (ret == 0) goto lab6; /* call Step_1a, line 212 */
+ if (ret == 0) goto lab6; /* call Step_1a, line 213 */
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* or, line 214 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 215 */
{ int ret = r_exception2(z);
- if (ret == 0) goto lab8; /* call exception2, line 214 */
+ if (ret == 0) goto lab8; /* call exception2, line 215 */
if (ret < 0) return ret;
}
goto lab7;
lab8:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 216 */
+ z->c = z->l - m6;
+ { int m7 = z->l - z->c; (void)m7; /* do, line 217 */
{ int ret = r_Step_1b(z);
- if (ret == 0) goto lab9; /* call Step_1b, line 216 */
+ if (ret == 0) goto lab9; /* call Step_1b, line 217 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- { int m = z->l - z->c; (void) m; /* do, line 217 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 218 */
{ int ret = r_Step_1c(z);
- if (ret == 0) goto lab10; /* call Step_1c, line 217 */
+ if (ret == 0) goto lab10; /* call Step_1c, line 218 */
if (ret < 0) return ret;
}
lab10:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
- { int m = z->l - z->c; (void) m; /* do, line 219 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 220 */
{ int ret = r_Step_2(z);
- if (ret == 0) goto lab11; /* call Step_2, line 219 */
+ if (ret == 0) goto lab11; /* call Step_2, line 220 */
if (ret < 0) return ret;
}
lab11:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
- { int m = z->l - z->c; (void) m; /* do, line 220 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 221 */
{ int ret = r_Step_3(z);
- if (ret == 0) goto lab12; /* call Step_3, line 220 */
+ if (ret == 0) goto lab12; /* call Step_3, line 221 */
if (ret < 0) return ret;
}
lab12:
- z->c = z->l - m;
+ z->c = z->l - m10;
}
- { int m = z->l - z->c; (void) m; /* do, line 221 */
+ { int m11 = z->l - z->c; (void)m11; /* do, line 222 */
{ int ret = r_Step_4(z);
- if (ret == 0) goto lab13; /* call Step_4, line 221 */
+ if (ret == 0) goto lab13; /* call Step_4, line 222 */
if (ret < 0) return ret;
}
lab13:
- z->c = z->l - m;
+ z->c = z->l - m11;
}
- { int m = z->l - z->c; (void) m; /* do, line 223 */
+ { int m12 = z->l - z->c; (void)m12; /* do, line 224 */
{ int ret = r_Step_5(z);
- if (ret == 0) goto lab14; /* call Step_5, line 223 */
+ if (ret == 0) goto lab14; /* call Step_5, line 224 */
if (ret < 0) return ret;
}
lab14:
- z->c = z->l - m;
+ z->c = z->l - m12;
}
}
lab7:
z->c = z->lb;
- { int c = z->c; /* do, line 226 */
+ { int c13 = z->c; /* do, line 227 */
{ int ret = r_postlude(z);
- if (ret == 0) goto lab15; /* call postlude, line 226 */
+ if (ret == 0) goto lab15; /* call postlude, line 227 */
if (ret < 0) return ret;
}
lab15:
- z->c = c;
+ z->c = c13;
}
}
lab0:
@@ -1152,5 +1113,5 @@ lab0:
extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
-extern void english_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void english_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_finnish.c b/libstemmer_c/src_c/stem_ISO_8859_1_finnish.c
index 0d851cd..cc6feb0 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_finnish.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_finnish.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int finnish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_tidy(struct SN_env * z);
static int r_other_endings(struct SN_env * z);
static int r_t_plural(struct SN_env * z);
@@ -15,22 +21,30 @@ static int r_possessive(struct SN_env * z);
static int r_particle_etc(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 * finnish_ISO_8859_1_create_env(void);
extern void finnish_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_0[2] = { 'p', 'a' };
-static symbol s_0_1[3] = { 's', 't', 'i' };
-static symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
-static symbol s_0_3[3] = { 'h', 'a', 'n' };
-static symbol s_0_4[3] = { 'k', 'i', 'n' };
-static symbol s_0_5[3] = { 'h', 0xE4, 'n' };
-static symbol s_0_6[4] = { 'k', 0xE4, 0xE4, 'n' };
-static symbol s_0_7[2] = { 'k', 'o' };
-static symbol s_0_8[2] = { 'p', 0xE4 };
-static symbol s_0_9[2] = { 'k', 0xF6 };
-
-static struct among a_0[10] =
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'p', 'a' };
+static const symbol s_0_1[3] = { 's', 't', 'i' };
+static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
+static const symbol s_0_3[3] = { 'h', 'a', 'n' };
+static const symbol s_0_4[3] = { 'k', 'i', 'n' };
+static const symbol s_0_5[3] = { 'h', 0xE4, 'n' };
+static const symbol s_0_6[4] = { 'k', 0xE4, 0xE4, 'n' };
+static const symbol s_0_7[2] = { 'k', 'o' };
+static const symbol s_0_8[2] = { 'p', 0xE4 };
+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},
@@ -44,14 +58,14 @@ static struct among a_0[10] =
/* 9 */ { 2, s_0_9, -1, 1, 0}
};
-static symbol s_1_0[3] = { 'l', 'l', 'a' };
-static symbol s_1_1[2] = { 'n', 'a' };
-static symbol s_1_2[3] = { 's', 's', 'a' };
-static symbol s_1_3[2] = { 't', 'a' };
-static symbol s_1_4[3] = { 'l', 't', 'a' };
-static symbol s_1_5[3] = { 's', 't', 'a' };
+static const symbol s_1_0[3] = { 'l', 'l', 'a' };
+static const symbol s_1_1[2] = { 'n', 'a' };
+static const symbol s_1_2[3] = { 's', 's', 'a' };
+static const symbol s_1_3[2] = { 't', 'a' };
+static const symbol s_1_4[3] = { 'l', 't', 'a' };
+static const symbol s_1_5[3] = { 's', 't', 'a' };
-static struct among a_1[6] =
+static const struct among a_1[6] =
{
/* 0 */ { 3, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
@@ -61,14 +75,14 @@ static struct among a_1[6] =
/* 5 */ { 3, s_1_5, 3, -1, 0}
};
-static symbol s_2_0[3] = { 'l', 'l', 0xE4 };
-static symbol s_2_1[2] = { 'n', 0xE4 };
-static symbol s_2_2[3] = { 's', 's', 0xE4 };
-static symbol s_2_3[2] = { 't', 0xE4 };
-static symbol s_2_4[3] = { 'l', 't', 0xE4 };
-static symbol s_2_5[3] = { 's', 't', 0xE4 };
+static const symbol s_2_0[3] = { 'l', 'l', 0xE4 };
+static const symbol s_2_1[2] = { 'n', 0xE4 };
+static const symbol s_2_2[3] = { 's', 's', 0xE4 };
+static const symbol s_2_3[2] = { 't', 0xE4 };
+static const symbol s_2_4[3] = { 'l', 't', 0xE4 };
+static const symbol s_2_5[3] = { 's', 't', 0xE4 };
-static struct among a_2[6] =
+static const struct among a_2[6] =
{
/* 0 */ { 3, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
@@ -78,26 +92,26 @@ static struct among a_2[6] =
/* 5 */ { 3, s_2_5, 3, -1, 0}
};
-static symbol s_3_0[3] = { 'l', 'l', 'e' };
-static symbol s_3_1[3] = { 'i', 'n', 'e' };
+static const symbol s_3_0[3] = { 'l', 'l', 'e' };
+static const symbol s_3_1[3] = { 'i', 'n', 'e' };
-static struct among a_3[2] =
+static const struct among a_3[2] =
{
/* 0 */ { 3, s_3_0, -1, -1, 0},
/* 1 */ { 3, s_3_1, -1, -1, 0}
};
-static symbol s_4_0[3] = { 'n', 's', 'a' };
-static symbol s_4_1[3] = { 'm', 'm', 'e' };
-static symbol s_4_2[3] = { 'n', 'n', 'e' };
-static symbol s_4_3[2] = { 'n', 'i' };
-static symbol s_4_4[2] = { 's', 'i' };
-static symbol s_4_5[2] = { 'a', 'n' };
-static symbol s_4_6[2] = { 'e', 'n' };
-static symbol s_4_7[2] = { 0xE4, 'n' };
-static symbol s_4_8[3] = { 'n', 's', 0xE4 };
-
-static struct among a_4[9] =
+static const symbol s_4_0[3] = { 'n', 's', 'a' };
+static const symbol s_4_1[3] = { 'm', 'm', 'e' };
+static const symbol s_4_2[3] = { 'n', 'n', 'e' };
+static const symbol s_4_3[2] = { 'n', 'i' };
+static const symbol s_4_4[2] = { 's', 'i' };
+static const symbol s_4_5[2] = { 'a', 'n' };
+static const symbol s_4_6[2] = { 'e', 'n' };
+static const symbol s_4_7[2] = { 0xE4, 'n' };
+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},
@@ -110,15 +124,15 @@ static struct among a_4[9] =
/* 8 */ { 3, s_4_8, -1, 3, 0}
};
-static symbol s_5_0[2] = { 'a', 'a' };
-static symbol s_5_1[2] = { 'e', 'e' };
-static symbol s_5_2[2] = { 'i', 'i' };
-static symbol s_5_3[2] = { 'o', 'o' };
-static symbol s_5_4[2] = { 'u', 'u' };
-static symbol s_5_5[2] = { 0xE4, 0xE4 };
-static symbol s_5_6[2] = { 0xF6, 0xF6 };
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'i', 'i' };
+static const symbol s_5_3[2] = { 'o', 'o' };
+static const symbol s_5_4[2] = { 'u', 'u' };
+static const symbol s_5_5[2] = { 0xE4, 0xE4 };
+static const symbol s_5_6[2] = { 0xF6, 0xF6 };
-static struct among a_5[7] =
+static const struct among a_5[7] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
@@ -129,38 +143,38 @@ static struct among a_5[7] =
/* 6 */ { 2, s_5_6, -1, -1, 0}
};
-static symbol s_6_0[1] = { 'a' };
-static symbol s_6_1[3] = { 'l', 'l', 'a' };
-static symbol s_6_2[2] = { 'n', 'a' };
-static symbol s_6_3[3] = { 's', 's', 'a' };
-static symbol s_6_4[2] = { 't', 'a' };
-static symbol s_6_5[3] = { 'l', 't', 'a' };
-static symbol s_6_6[3] = { 's', 't', 'a' };
-static symbol s_6_7[3] = { 't', 't', 'a' };
-static symbol s_6_8[3] = { 'l', 'l', 'e' };
-static symbol s_6_9[3] = { 'i', 'n', 'e' };
-static symbol s_6_10[3] = { 'k', 's', 'i' };
-static symbol s_6_11[1] = { 'n' };
-static symbol s_6_12[3] = { 'h', 'a', 'n' };
-static symbol s_6_13[3] = { 'd', 'e', 'n' };
-static symbol s_6_14[4] = { 's', 'e', 'e', 'n' };
-static symbol s_6_15[3] = { 'h', 'e', 'n' };
-static symbol s_6_16[4] = { 't', 't', 'e', 'n' };
-static symbol s_6_17[3] = { 'h', 'i', 'n' };
-static symbol s_6_18[4] = { 's', 'i', 'i', 'n' };
-static symbol s_6_19[3] = { 'h', 'o', 'n' };
-static symbol s_6_20[3] = { 'h', 0xE4, 'n' };
-static symbol s_6_21[3] = { 'h', 0xF6, 'n' };
-static symbol s_6_22[1] = { 0xE4 };
-static symbol s_6_23[3] = { 'l', 'l', 0xE4 };
-static symbol s_6_24[2] = { 'n', 0xE4 };
-static symbol s_6_25[3] = { 's', 's', 0xE4 };
-static symbol s_6_26[2] = { 't', 0xE4 };
-static symbol s_6_27[3] = { 'l', 't', 0xE4 };
-static symbol s_6_28[3] = { 's', 't', 0xE4 };
-static symbol s_6_29[3] = { 't', 't', 0xE4 };
-
-static struct among a_6[30] =
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'l', 'l', 'a' };
+static const symbol s_6_2[2] = { 'n', 'a' };
+static const symbol s_6_3[3] = { 's', 's', 'a' };
+static const symbol s_6_4[2] = { 't', 'a' };
+static const symbol s_6_5[3] = { 'l', 't', 'a' };
+static const symbol s_6_6[3] = { 's', 't', 'a' };
+static const symbol s_6_7[3] = { 't', 't', 'a' };
+static const symbol s_6_8[3] = { 'l', 'l', 'e' };
+static const symbol s_6_9[3] = { 'i', 'n', 'e' };
+static const symbol s_6_10[3] = { 'k', 's', 'i' };
+static const symbol s_6_11[1] = { 'n' };
+static const symbol s_6_12[3] = { 'h', 'a', 'n' };
+static const symbol s_6_13[3] = { 'd', 'e', 'n' };
+static const symbol s_6_14[4] = { 's', 'e', 'e', 'n' };
+static const symbol s_6_15[3] = { 'h', 'e', 'n' };
+static const symbol s_6_16[4] = { 't', 't', 'e', 'n' };
+static const symbol s_6_17[3] = { 'h', 'i', 'n' };
+static const symbol s_6_18[4] = { 's', 'i', 'i', 'n' };
+static const symbol s_6_19[3] = { 'h', 'o', 'n' };
+static const symbol s_6_20[3] = { 'h', 0xE4, 'n' };
+static const symbol s_6_21[3] = { 'h', 0xF6, 'n' };
+static const symbol s_6_22[1] = { 0xE4 };
+static const symbol s_6_23[3] = { 'l', 'l', 0xE4 };
+static const symbol s_6_24[2] = { 'n', 0xE4 };
+static const symbol s_6_25[3] = { 's', 's', 0xE4 };
+static const symbol s_6_26[2] = { 't', 0xE4 };
+static const symbol s_6_27[3] = { 'l', 't', 0xE4 };
+static const symbol s_6_28[3] = { 's', 't', 0xE4 };
+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},
@@ -194,22 +208,22 @@ static struct among a_6[30] =
/* 29 */ { 3, s_6_29, 26, 9, 0}
};
-static symbol s_7_0[3] = { 'e', 'j', 'a' };
-static symbol s_7_1[3] = { 'm', 'm', 'a' };
-static symbol s_7_2[4] = { 'i', 'm', 'm', 'a' };
-static symbol s_7_3[3] = { 'm', 'p', 'a' };
-static symbol s_7_4[4] = { 'i', 'm', 'p', 'a' };
-static symbol s_7_5[3] = { 'm', 'm', 'i' };
-static symbol s_7_6[4] = { 'i', 'm', 'm', 'i' };
-static symbol s_7_7[3] = { 'm', 'p', 'i' };
-static symbol s_7_8[4] = { 'i', 'm', 'p', 'i' };
-static symbol s_7_9[3] = { 'e', 'j', 0xE4 };
-static symbol s_7_10[3] = { 'm', 'm', 0xE4 };
-static symbol s_7_11[4] = { 'i', 'm', 'm', 0xE4 };
-static symbol s_7_12[3] = { 'm', 'p', 0xE4 };
-static symbol s_7_13[4] = { 'i', 'm', 'p', 0xE4 };
-
-static struct among a_7[14] =
+static const symbol s_7_0[3] = { 'e', 'j', 'a' };
+static const symbol s_7_1[3] = { 'm', 'm', 'a' };
+static const symbol s_7_2[4] = { 'i', 'm', 'm', 'a' };
+static const symbol s_7_3[3] = { 'm', 'p', 'a' };
+static const symbol s_7_4[4] = { 'i', 'm', 'p', 'a' };
+static const symbol s_7_5[3] = { 'm', 'm', 'i' };
+static const symbol s_7_6[4] = { 'i', 'm', 'm', 'i' };
+static const symbol s_7_7[3] = { 'm', 'p', 'i' };
+static const symbol s_7_8[4] = { 'i', 'm', 'p', 'i' };
+static const symbol s_7_9[3] = { 'e', 'j', 0xE4 };
+static const symbol s_7_10[3] = { 'm', 'm', 0xE4 };
+static const symbol s_7_11[4] = { 'i', 'm', 'm', 0xE4 };
+static const symbol s_7_12[3] = { 'm', 'p', 0xE4 };
+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},
@@ -227,90 +241,68 @@ static struct among a_7[14] =
/* 13 */ { 4, s_7_13, 12, -1, 0}
};
-static symbol s_8_0[1] = { 'i' };
-static symbol s_8_1[1] = { 'j' };
+static const symbol s_8_0[1] = { 'i' };
+static const symbol s_8_1[1] = { 'j' };
-static struct among a_8[2] =
+static const struct among a_8[2] =
{
/* 0 */ { 1, s_8_0, -1, -1, 0},
/* 1 */ { 1, s_8_1, -1, -1, 0}
};
-static symbol s_9_0[3] = { 'm', 'm', 'a' };
-static symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
+static const symbol s_9_0[3] = { 'm', 'm', 'a' };
+static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
-static struct among a_9[2] =
+static const struct among a_9[2] =
{
/* 0 */ { 3, s_9_0, -1, 1, 0},
/* 1 */ { 4, s_9_1, 0, -1, 0}
};
-static unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
-
-static unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-
-static unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-
-static unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-
-static symbol s_0[] = { 'k' };
-static symbol s_1[] = { 'k', 's', 'e' };
-static symbol s_2[] = { 'k', 's', 'i' };
-static symbol s_3[] = { 'i' };
-static symbol s_4[] = { 'a' };
-static symbol s_5[] = { 'e' };
-static symbol s_6[] = { 'i' };
-static symbol s_7[] = { 'o' };
-static symbol s_8[] = { 0xE4 };
-static symbol s_9[] = { 0xF6 };
-static symbol s_10[] = { 'i', 'e' };
-static symbol s_11[] = { 'e' };
-static symbol s_12[] = { 'p', 'o' };
-static symbol s_13[] = { 't' };
-static symbol s_14[] = { 'p', 'o' };
-static symbol s_15[] = { 'j' };
-static symbol s_16[] = { 'o' };
-static symbol s_17[] = { 'u' };
-static symbol s_18[] = { 'o' };
-static symbol s_19[] = { 'j' };
+static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
+
+static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const symbol s_0[] = { 'k' };
+static const symbol s_1[] = { 'k', 's', 'e' };
+static const symbol s_2[] = { 'k', 's', 'i' };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'o' };
+static const symbol s_8[] = { 0xE4 };
+static const symbol s_9[] = { 0xF6 };
+static const symbol s_10[] = { 'i', 'e' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'p', 'o' };
+static const symbol s_13[] = { 't' };
+static const symbol s_14[] = { 'p', 'o' };
+static const symbol s_15[] = { 'j' };
+static const symbol s_16[] = { 'o' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'o' };
+static const symbol s_19[] = { 'j' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- while(1) { /* goto, line 46 */
- int c = z->c;
- if (!(in_grouping(z, g_V1, 97, 246))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- if (z->c >= z->l) return 0;
- z->c++; /* goto, line 46 */
- }
- while(1) { /* gopast, line 46 */
- if (!(out_grouping(z, g_V1, 97, 246))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 46 */
+ if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
+ { /* gopast */ /* non V1, line 46 */
+ 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 46 */
- while(1) { /* goto, line 47 */
- int c = z->c;
- if (!(in_grouping(z, g_V1, 97, 246))) goto lab2;
- z->c = c;
- break;
- lab2:
- z->c = c;
- if (z->c >= z->l) return 0;
- z->c++; /* goto, line 47 */
- }
- while(1) { /* gopast, line 47 */
- if (!(out_grouping(z, g_V1, 97, 246))) goto lab3;
- break;
- lab3:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 47 */
+ if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
+ { /* gopast */ /* non V1, line 47 */
+ 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 47 */
return 1;
@@ -323,22 +315,22 @@ static int r_R2(struct SN_env * z) {
static int r_particle_etc(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 55 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 55 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 55 */
among_var = find_among_b(z, a_0, 10); /* substring, line 55 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 55 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- if (!(in_grouping_b(z, g_particle_end, 97, 246))) return 0;
+ if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0;
break;
case 2:
{ int ret = r_R2(z);
@@ -347,8 +339,7 @@ static int r_particle_etc(struct SN_env * z) {
}
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 66 */
+ { int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
return 1;
@@ -356,69 +347,65 @@ static int r_particle_etc(struct SN_env * z) {
static int r_possessive(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 69 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 69 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 69 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 69 */
among_var = find_among_b(z, a_4, 9); /* substring, line 69 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 69 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* not, line 72 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 72 */
if (!(eq_s_b(z, 1, s_0))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int ret;
- ret = slice_del(z); /* delete, line 72 */
+ { int ret = slice_del(z); /* delete, line 72 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 74 */
+ { int ret = slice_del(z); /* delete, line 74 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 74 */
if (!(eq_s_b(z, 3, s_1))) return 0;
z->bra = z->c; /* ], line 74 */
- { int ret;
- ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
+ { int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 78 */
if (ret < 0) return ret;
}
break;
case 4:
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
if (!(find_among_b(z, a_1, 6))) return 0; /* among, line 81 */
- { int ret;
- ret = slice_del(z); /* delete, line 81 */
+ { int ret = slice_del(z); /* delete, line 81 */
if (ret < 0) return ret;
}
break;
case 5:
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
if (!(find_among_b(z, a_2, 6))) return 0; /* among, line 83 */
- { int ret;
- ret = slice_del(z); /* delete, line 84 */
+ { int ret = slice_del(z); /* delete, line 84 */
if (ret < 0) return ret;
}
break;
case 6:
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
if (!(find_among_b(z, a_3, 2))) return 0; /* among, line 86 */
- { int ret;
- ret = slice_del(z); /* delete, line 86 */
+ { int ret = slice_del(z); /* delete, line 86 */
if (ret < 0) return ret;
}
break;
@@ -433,23 +420,23 @@ static int r_LONG(struct SN_env * z) {
static int r_VI(struct SN_env * z) {
if (!(eq_s_b(z, 1, s_3))) return 0;
- if (!(in_grouping_b(z, g_V2, 97, 246))) return 0;
+ if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0;
return 1;
}
static int r_case_ending(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 96 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 96 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 96 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 96 */
among_var = find_among_b(z, a_6, 30); /* substring, line 96 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 96 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
@@ -472,21 +459,21 @@ static int r_case_ending(struct SN_env * z) {
if (!(eq_s_b(z, 1, s_9))) return 0;
break;
case 7:
- { int m = z->l - z->c; (void) m; /* try, line 111 */
- { int m = z->l - z->c; (void) m; /* and, line 113 */
- { int m = z->l - z->c; (void) m; /* or, line 112 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
+ { int m2 = z->l - z->c; (void)m2; /* and, line 113 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 112 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab2; /* call LONG, line 111 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m;
- if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m; goto lab0; }
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m_keep; goto lab0; }
}
lab1:
- z->c = z->l - m;
- if (z->c <= z->lb) { z->c = z->l - m; goto lab0; }
+ z->c = z->l - m2;
+ if (z->c <= z->lb) { z->c = z->l - m_keep; goto lab0; }
z->c--; /* next, line 113 */
}
z->bra = z->c; /* ], line 113 */
@@ -495,15 +482,14 @@ static int r_case_ending(struct SN_env * z) {
}
break;
case 8:
- if (!(in_grouping_b(z, g_V1, 97, 246))) return 0;
- if (!(out_grouping_b(z, g_V1, 97, 246))) return 0;
+ if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0;
+ if (out_grouping_b(z, g_V1, 97, 246, 0)) return 0;
break;
case 9:
if (!(eq_s_b(z, 1, s_11))) return 0;
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 138 */
+ { int ret = slice_del(z); /* delete, line 138 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set ending_removed, line 139 */
@@ -512,50 +498,49 @@ static int r_case_ending(struct SN_env * z) {
static int r_other_endings(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 142 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 142 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 142 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 142 */
among_var = find_among_b(z, a_7, 14); /* substring, line 142 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 142 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* not, line 146 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 146 */
if (!(eq_s_b(z, 2, s_12))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 151 */
if (ret < 0) return ret;
}
return 1;
}
static int r_i_plural(struct SN_env * z) {
- { int m3; /* setlimit, line 154 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 154 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 154 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 154 */
- if (!(find_among_b(z, a_8, 2))) { z->lb = m3; return 0; } /* substring, line 154 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit; return 0; } /* substring, line 154 */
z->bra = z->c; /* ], line 154 */
- z->lb = m3;
+ z->lb = mlimit;
}
- { int ret;
- ret = slice_del(z); /* delete, line 158 */
+ { int ret = slice_del(z); /* delete, line 158 */
if (ret < 0) return ret;
}
return 1;
@@ -563,136 +548,122 @@ static int r_i_plural(struct SN_env * z) {
static int r_t_plural(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 161 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 161 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 161 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 162 */
- if (!(eq_s_b(z, 1, s_13))) { z->lb = m3; return 0; }
+ if (!(eq_s_b(z, 1, s_13))) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 162 */
{ int m_test = z->l - z->c; /* test, line 162 */
- if (!(in_grouping_b(z, g_V1, 97, 246))) { z->lb = m3; return 0; }
+ if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit; return 0; }
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
- z->lb = m3;
+ z->lb = mlimit;
}
- { int m3; /* setlimit, line 165 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 165 */
+ int m2 = z->l - z->c; (void)m2;
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 165 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m2;
z->ket = z->c; /* [, line 165 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_9, 2); /* substring, line 165 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 165 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* not, line 167 */
+ { int m3 = z->l - z->c; (void)m3; /* not, line 167 */
if (!(eq_s_b(z, 2, s_14))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 170 */
+ { int ret = slice_del(z); /* delete, line 170 */
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy(struct SN_env * z) {
- { int m3; /* setlimit, line 173 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 173 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 173 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 174 */
- { int m = z->l - z->c; (void) m; /* and, line 174 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2; /* do, line 174 */
+ { int m3 = z->l - z->c; (void)m3; /* and, line 174 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab0; /* call LONG, line 174 */
if (ret < 0) return ret;
}
- z->c = z->l - m;
+ z->c = z->l - m3;
z->ket = z->c; /* [, line 174 */
if (z->c <= z->lb) goto lab0;
z->c--; /* next, line 174 */
z->bra = z->c; /* ], line 174 */
- { int ret;
- ret = slice_del(z); /* delete, line 174 */
+ { int ret = slice_del(z); /* delete, line 174 */
if (ret < 0) return ret;
}
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 175 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 175 */
z->ket = z->c; /* [, line 175 */
- if (!(in_grouping_b(z, g_AEI, 97, 228))) goto lab1;
+ if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1;
z->bra = z->c; /* ], line 175 */
- if (!(out_grouping_b(z, g_V1, 97, 246))) goto lab1;
- { int ret;
- ret = slice_del(z); /* delete, line 175 */
+ if (out_grouping_b(z, g_V1, 97, 246, 0)) goto lab1;
+ { int ret = slice_del(z); /* delete, line 175 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 176 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (!(eq_s_b(z, 1, s_15))) goto lab2;
z->bra = z->c; /* ], line 176 */
- { int m = z->l - z->c; (void) m; /* or, line 176 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 176 */
if (!(eq_s_b(z, 1, s_16))) goto lab4;
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m6;
if (!(eq_s_b(z, 1, s_17))) goto lab2;
}
lab3:
- { int ret;
- ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* do, line 177 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (!(eq_s_b(z, 1, s_18))) goto lab5;
z->bra = z->c; /* ], line 177 */
if (!(eq_s_b(z, 1, s_19))) goto lab5;
- { int ret;
- ret = slice_del(z); /* delete, line 177 */
+ { int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
lab5:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- z->lb = m3;
- }
- while(1) { /* goto, line 179 */
- int m = z->l - z->c; (void) m;
- if (!(out_grouping_b(z, g_V1, 97, 246))) goto lab6;
- z->c = z->l - m;
- break;
- lab6:
- z->c = z->l - m;
- if (z->c <= z->lb) return 0;
- z->c--; /* goto, line 179 */
+ z->lb = mlimit;
}
+ if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
z->ket = z->c; /* [, line 179 */
if (z->c <= z->lb) return 0;
z->c--; /* next, line 179 */
@@ -700,87 +671,86 @@ static int r_tidy(struct SN_env * z) {
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 179 */
if (z->S[0] == 0) return -1; /* -> x, line 179 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 179 */
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
return 1;
}
extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 185 */
+ { int c1 = z->c; /* do, line 185 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 185 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->B[0] = 0; /* unset ending_removed, line 186 */
z->lb = z->c; z->c = z->l; /* backwards, line 187 */
- { int m = z->l - z->c; (void) m; /* do, line 188 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 188 */
{ int ret = r_particle_etc(z);
if (ret == 0) goto lab1; /* call particle_etc, line 188 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 189 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 189 */
{ int ret = r_possessive(z);
if (ret == 0) goto lab2; /* call possessive, line 189 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 190 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 190 */
{ int ret = r_case_ending(z);
if (ret == 0) goto lab3; /* call case_ending, line 190 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 191 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 191 */
{ int ret = r_other_endings(z);
if (ret == 0) goto lab4; /* call other_endings, line 191 */
if (ret < 0) return ret;
}
lab4:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* or, line 192 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 192 */
if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
- { int m = z->l - z->c; (void) m; /* do, line 192 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 192 */
{ int ret = r_i_plural(z);
if (ret == 0) goto lab7; /* call i_plural, line 192 */
if (ret < 0) return ret;
}
lab7:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
goto lab5;
lab6:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 192 */
+ z->c = z->l - m6;
+ { int m8 = z->l - z->c; (void)m8; /* do, line 192 */
{ int ret = r_t_plural(z);
if (ret == 0) goto lab8; /* call t_plural, line 192 */
if (ret < 0) return ret;
}
lab8:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
}
lab5:
- { int m = z->l - z->c; (void) m; /* do, line 193 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 193 */
{ int ret = r_tidy(z);
if (ret == 0) goto lab9; /* call tidy, line 193 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
z->c = z->lb;
return 1;
@@ -788,5 +758,5 @@ lab5:
extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 1); }
-extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_french.c b/libstemmer_c/src_c/stem_ISO_8859_1_french.c
index e4eb80d..7907400 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_french.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_french.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int french_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_un_accent(struct SN_env * z);
static int r_un_double(struct SN_env * z);
static int r_residual_suffix(struct SN_env * z);
@@ -16,452 +22,466 @@ static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * french_ISO_8859_1_create_env(void);
extern void french_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 'I' };
-static symbol s_0_2[1] = { 'U' };
-static symbol s_0_3[1] = { 'Y' };
-static struct among a_0[4] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'c', 'o', 'l' };
+static const symbol s_0_1[3] = { 'p', 'a', 'r' };
+static const symbol s_0_2[3] = { 't', 'a', 'p' };
+
+static const struct among a_0[3] =
{
-/* 0 */ { 0, 0, -1, 4, 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}
+/* 0 */ { 3, s_0_0, -1, -1, 0},
+/* 1 */ { 3, s_0_1, -1, -1, 0},
+/* 2 */ { 3, s_0_2, -1, -1, 0}
};
-static symbol s_1_0[3] = { 'i', 'q', 'U' };
-static symbol s_1_1[3] = { 'a', 'b', 'l' };
-static symbol s_1_2[3] = { 'I', 0xE8, 'r' };
-static symbol s_1_3[3] = { 'i', 0xE8, 'r' };
-static symbol s_1_4[3] = { 'e', 'u', 's' };
-static symbol s_1_5[2] = { 'i', 'v' };
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
+static const symbol s_1_3[1] = { 'Y' };
-static struct among a_1[6] =
+static const struct among a_1[4] =
{
-/* 0 */ { 3, s_1_0, -1, 3, 0},
-/* 1 */ { 3, s_1_1, -1, 3, 0},
-/* 2 */ { 3, s_1_2, -1, 4, 0},
-/* 3 */ { 3, s_1_3, -1, 4, 0},
-/* 4 */ { 3, s_1_4, -1, 2, 0},
-/* 5 */ { 2, s_1_5, -1, 1, 0}
+/* 0 */ { 0, 0, -1, 4, 0},
+/* 1 */ { 1, s_1_1, 0, 1, 0},
+/* 2 */ { 1, s_1_2, 0, 2, 0},
+/* 3 */ { 1, s_1_3, 0, 3, 0}
};
-static symbol s_2_0[2] = { 'i', 'c' };
-static symbol s_2_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_2_2[2] = { 'i', 'v' };
+static const symbol s_2_0[3] = { 'i', 'q', 'U' };
+static const symbol s_2_1[3] = { 'a', 'b', 'l' };
+static const symbol s_2_2[3] = { 'I', 0xE8, 'r' };
+static const symbol s_2_3[3] = { 'i', 0xE8, 'r' };
+static const symbol s_2_4[3] = { 'e', 'u', 's' };
+static const symbol s_2_5[2] = { 'i', 'v' };
-static struct among a_2[3] =
+static const struct among a_2[6] =
{
-/* 0 */ { 2, s_2_0, -1, 2, 0},
-/* 1 */ { 4, s_2_1, -1, 1, 0},
-/* 2 */ { 2, s_2_2, -1, 3, 0}
+/* 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}
};
-static symbol s_3_0[4] = { 'i', 'q', 'U', 'e' };
-static symbol s_3_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
-static symbol s_3_2[4] = { 'a', 'n', 'c', 'e' };
-static symbol s_3_3[4] = { 'e', 'n', 'c', 'e' };
-static symbol s_3_4[5] = { 'l', 'o', 'g', 'i', 'e' };
-static symbol s_3_5[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_3_6[4] = { 'i', 's', 'm', 'e' };
-static symbol s_3_7[4] = { 'e', 'u', 's', 'e' };
-static symbol s_3_8[4] = { 'i', 's', 't', 'e' };
-static symbol s_3_9[3] = { 'i', 'v', 'e' };
-static symbol s_3_10[2] = { 'i', 'f' };
-static symbol s_3_11[5] = { 'u', 's', 'i', 'o', 'n' };
-static symbol s_3_12[5] = { 'a', 't', 'i', 'o', 'n' };
-static symbol s_3_13[5] = { 'u', 't', 'i', 'o', 'n' };
-static symbol s_3_14[5] = { 'a', 't', 'e', 'u', 'r' };
-static symbol s_3_15[5] = { 'i', 'q', 'U', 'e', 's' };
-static symbol s_3_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
-static symbol s_3_17[5] = { 'a', 'n', 'c', 'e', 's' };
-static symbol s_3_18[5] = { 'e', 'n', 'c', 'e', 's' };
-static symbol s_3_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
-static symbol s_3_20[5] = { 'a', 'b', 'l', 'e', 's' };
-static symbol s_3_21[5] = { 'i', 's', 'm', 'e', 's' };
-static symbol s_3_22[5] = { 'e', 'u', 's', 'e', 's' };
-static symbol s_3_23[5] = { 'i', 's', 't', 'e', 's' };
-static symbol s_3_24[4] = { 'i', 'v', 'e', 's' };
-static symbol s_3_25[3] = { 'i', 'f', 's' };
-static symbol s_3_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
-static symbol s_3_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
-static symbol s_3_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
-static symbol s_3_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
-static symbol s_3_30[5] = { 'm', 'e', 'n', 't', 's' };
-static symbol s_3_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
-static symbol s_3_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
-static symbol s_3_33[4] = { 'i', 't', 0xE9, 's' };
-static symbol s_3_34[4] = { 'm', 'e', 'n', 't' };
-static symbol s_3_35[5] = { 'e', 'm', 'e', 'n', 't' };
-static symbol s_3_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
-static symbol s_3_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
-static symbol s_3_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
-static symbol s_3_39[3] = { 'a', 'u', 'x' };
-static symbol s_3_40[4] = { 'e', 'a', 'u', 'x' };
-static symbol s_3_41[3] = { 'e', 'u', 'x' };
-static symbol s_3_42[3] = { 'i', 't', 0xE9 };
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_2[2] = { 'i', 'v' };
-static struct among a_3[43] =
+static const struct among a_3[3] =
{
-/* 0 */ { 4, s_3_0, -1, 1, 0},
-/* 1 */ { 6, s_3_1, -1, 2, 0},
-/* 2 */ { 4, s_3_2, -1, 1, 0},
-/* 3 */ { 4, s_3_3, -1, 5, 0},
-/* 4 */ { 5, s_3_4, -1, 3, 0},
-/* 5 */ { 4, s_3_5, -1, 1, 0},
-/* 6 */ { 4, s_3_6, -1, 1, 0},
-/* 7 */ { 4, s_3_7, -1, 11, 0},
-/* 8 */ { 4, s_3_8, -1, 1, 0},
-/* 9 */ { 3, s_3_9, -1, 8, 0},
-/* 10 */ { 2, s_3_10, -1, 8, 0},
-/* 11 */ { 5, s_3_11, -1, 4, 0},
-/* 12 */ { 5, s_3_12, -1, 2, 0},
-/* 13 */ { 5, s_3_13, -1, 4, 0},
-/* 14 */ { 5, s_3_14, -1, 2, 0},
-/* 15 */ { 5, s_3_15, -1, 1, 0},
-/* 16 */ { 7, s_3_16, -1, 2, 0},
-/* 17 */ { 5, s_3_17, -1, 1, 0},
-/* 18 */ { 5, s_3_18, -1, 5, 0},
-/* 19 */ { 6, s_3_19, -1, 3, 0},
-/* 20 */ { 5, s_3_20, -1, 1, 0},
-/* 21 */ { 5, s_3_21, -1, 1, 0},
-/* 22 */ { 5, s_3_22, -1, 11, 0},
-/* 23 */ { 5, s_3_23, -1, 1, 0},
-/* 24 */ { 4, s_3_24, -1, 8, 0},
-/* 25 */ { 3, s_3_25, -1, 8, 0},
-/* 26 */ { 6, s_3_26, -1, 4, 0},
-/* 27 */ { 6, s_3_27, -1, 2, 0},
-/* 28 */ { 6, s_3_28, -1, 4, 0},
-/* 29 */ { 6, s_3_29, -1, 2, 0},
-/* 30 */ { 5, s_3_30, -1, 15, 0},
-/* 31 */ { 6, s_3_31, 30, 6, 0},
-/* 32 */ { 9, s_3_32, 31, 12, 0},
-/* 33 */ { 4, s_3_33, -1, 7, 0},
-/* 34 */ { 4, s_3_34, -1, 15, 0},
-/* 35 */ { 5, s_3_35, 34, 6, 0},
-/* 36 */ { 8, s_3_36, 35, 12, 0},
-/* 37 */ { 6, s_3_37, 34, 13, 0},
-/* 38 */ { 6, s_3_38, 34, 14, 0},
-/* 39 */ { 3, s_3_39, -1, 10, 0},
-/* 40 */ { 4, s_3_40, 39, 9, 0},
-/* 41 */ { 3, s_3_41, -1, 1, 0},
-/* 42 */ { 3, s_3_42, -1, 7, 0}
+/* 0 */ { 2, s_3_0, -1, 2, 0},
+/* 1 */ { 4, s_3_1, -1, 1, 0},
+/* 2 */ { 2, s_3_2, -1, 3, 0}
};
-static symbol s_4_0[3] = { 'i', 'r', 'a' };
-static symbol s_4_1[2] = { 'i', 'e' };
-static symbol s_4_2[4] = { 'i', 's', 's', 'e' };
-static symbol s_4_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
-static symbol s_4_4[1] = { 'i' };
-static symbol s_4_5[4] = { 'i', 'r', 'a', 'i' };
-static symbol s_4_6[2] = { 'i', 'r' };
-static symbol s_4_7[4] = { 'i', 'r', 'a', 's' };
-static symbol s_4_8[3] = { 'i', 'e', 's' };
-static symbol s_4_9[4] = { 0xEE, 'm', 'e', 's' };
-static symbol s_4_10[5] = { 'i', 's', 's', 'e', 's' };
-static symbol s_4_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
-static symbol s_4_12[4] = { 0xEE, 't', 'e', 's' };
-static symbol s_4_13[2] = { 'i', 's' };
-static symbol s_4_14[5] = { 'i', 'r', 'a', 'i', 's' };
-static symbol s_4_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
-static symbol s_4_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
-static symbol s_4_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
-static symbol s_4_18[5] = { 'i', 'r', 'o', 'n', 's' };
-static symbol s_4_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
-static symbol s_4_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
-static symbol s_4_21[2] = { 'i', 't' };
-static symbol s_4_22[5] = { 'i', 'r', 'a', 'i', 't' };
-static symbol s_4_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
-static symbol s_4_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
-static symbol s_4_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
-static symbol s_4_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
-static symbol s_4_27[5] = { 'i', 'r', 'e', 'n', 't' };
-static symbol s_4_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
-static symbol s_4_29[5] = { 'i', 'r', 'o', 'n', 't' };
-static symbol s_4_30[2] = { 0xEE, 't' };
-static symbol s_4_31[5] = { 'i', 'r', 'i', 'e', 'z' };
-static symbol s_4_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
-static symbol s_4_33[4] = { 'i', 'r', 'e', 'z' };
-static symbol s_4_34[5] = { 'i', 's', 's', 'e', 'z' };
+static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
+static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
+static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
+static const symbol s_4_9[3] = { 'i', 'v', 'e' };
+static const symbol s_4_10[2] = { 'i', 'f' };
+static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
+static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
+static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
+static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
+static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
+static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
+static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
+static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
+static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
+static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
+static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
+static const symbol s_4_25[3] = { 'i', 'f', 's' };
+static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
+static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
+static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_33[4] = { 'i', 't', 0xE9, 's' };
+static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_39[3] = { 'a', 'u', 'x' };
+static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
+static const symbol s_4_41[3] = { 'e', 'u', 'x' };
+static const symbol s_4_42[3] = { 'i', 't', 0xE9 };
-static struct among a_4[35] =
+static const struct among a_4[43] =
{
-/* 0 */ { 3, s_4_0, -1, 1, 0},
-/* 1 */ { 2, s_4_1, -1, 1, 0},
+/* 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 */ { 7, s_4_3, -1, 1, 0},
-/* 4 */ { 1, s_4_4, -1, 1, 0},
-/* 5 */ { 4, s_4_5, 4, 1, 0},
-/* 6 */ { 2, s_4_6, -1, 1, 0},
-/* 7 */ { 4, s_4_7, -1, 1, 0},
-/* 8 */ { 3, s_4_8, -1, 1, 0},
-/* 9 */ { 4, s_4_9, -1, 1, 0},
-/* 10 */ { 5, s_4_10, -1, 1, 0},
-/* 11 */ { 8, s_4_11, -1, 1, 0},
-/* 12 */ { 4, s_4_12, -1, 1, 0},
-/* 13 */ { 2, s_4_13, -1, 1, 0},
-/* 14 */ { 5, s_4_14, 13, 1, 0},
-/* 15 */ { 6, s_4_15, 13, 1, 0},
-/* 16 */ { 6, s_4_16, -1, 1, 0},
-/* 17 */ { 7, s_4_17, -1, 1, 0},
-/* 18 */ { 5, s_4_18, -1, 1, 0},
-/* 19 */ { 6, s_4_19, -1, 1, 0},
-/* 20 */ { 7, s_4_20, -1, 1, 0},
-/* 21 */ { 2, s_4_21, -1, 1, 0},
-/* 22 */ { 5, s_4_22, 21, 1, 0},
-/* 23 */ { 6, s_4_23, 21, 1, 0},
-/* 24 */ { 6, s_4_24, -1, 1, 0},
-/* 25 */ { 7, s_4_25, -1, 1, 0},
-/* 26 */ { 8, s_4_26, -1, 1, 0},
-/* 27 */ { 5, s_4_27, -1, 1, 0},
-/* 28 */ { 6, s_4_28, -1, 1, 0},
-/* 29 */ { 5, s_4_29, -1, 1, 0},
-/* 30 */ { 2, s_4_30, -1, 1, 0},
-/* 31 */ { 5, s_4_31, -1, 1, 0},
-/* 32 */ { 6, s_4_32, -1, 1, 0},
-/* 33 */ { 4, s_4_33, -1, 1, 0},
-/* 34 */ { 5, s_4_34, -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}
};
-static symbol s_5_0[1] = { 'a' };
-static symbol s_5_1[3] = { 'e', 'r', 'a' };
-static symbol s_5_2[4] = { 'a', 's', 's', 'e' };
-static symbol s_5_3[4] = { 'a', 'n', 't', 'e' };
-static symbol s_5_4[2] = { 0xE9, 'e' };
-static symbol s_5_5[2] = { 'a', 'i' };
-static symbol s_5_6[4] = { 'e', 'r', 'a', 'i' };
-static symbol s_5_7[2] = { 'e', 'r' };
-static symbol s_5_8[2] = { 'a', 's' };
-static symbol s_5_9[4] = { 'e', 'r', 'a', 's' };
-static symbol s_5_10[4] = { 0xE2, 'm', 'e', 's' };
-static symbol s_5_11[5] = { 'a', 's', 's', 'e', 's' };
-static symbol s_5_12[5] = { 'a', 'n', 't', 'e', 's' };
-static symbol s_5_13[4] = { 0xE2, 't', 'e', 's' };
-static symbol s_5_14[3] = { 0xE9, 'e', 's' };
-static symbol s_5_15[3] = { 'a', 'i', 's' };
-static symbol s_5_16[5] = { 'e', 'r', 'a', 'i', 's' };
-static symbol s_5_17[4] = { 'i', 'o', 'n', 's' };
-static symbol s_5_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
-static symbol s_5_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
-static symbol s_5_20[5] = { 'e', 'r', 'o', 'n', 's' };
-static symbol s_5_21[4] = { 'a', 'n', 't', 's' };
-static symbol s_5_22[2] = { 0xE9, 's' };
-static symbol s_5_23[3] = { 'a', 'i', 't' };
-static symbol s_5_24[5] = { 'e', 'r', 'a', 'i', 't' };
-static symbol s_5_25[3] = { 'a', 'n', 't' };
-static symbol s_5_26[5] = { 'a', 'I', 'e', 'n', 't' };
-static symbol s_5_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
-static symbol s_5_28[5] = { 0xE8, 'r', 'e', 'n', 't' };
-static symbol s_5_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
-static symbol s_5_30[5] = { 'e', 'r', 'o', 'n', 't' };
-static symbol s_5_31[2] = { 0xE2, 't' };
-static symbol s_5_32[2] = { 'e', 'z' };
-static symbol s_5_33[3] = { 'i', 'e', 'z' };
-static symbol s_5_34[5] = { 'e', 'r', 'i', 'e', 'z' };
-static symbol s_5_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
-static symbol s_5_36[4] = { 'e', 'r', 'e', 'z' };
-static symbol s_5_37[1] = { 0xE9 };
+static const symbol s_5_0[3] = { 'i', 'r', 'a' };
+static const symbol s_5_1[2] = { 'i', 'e' };
+static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
+static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
+static const symbol s_5_4[1] = { 'i' };
+static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_5_6[2] = { 'i', 'r' };
+static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_8[3] = { 'i', 'e', 's' };
+static const symbol s_5_9[4] = { 0xEE, 'm', 'e', 's' };
+static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_12[4] = { 0xEE, 't', 'e', 's' };
+static const symbol s_5_13[2] = { 'i', 's' };
+static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
+static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
+static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
+static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
+static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
+static const symbol s_5_21[2] = { 'i', 't' };
+static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
+static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
+static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
+static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
+static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
+static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
+static const symbol s_5_30[2] = { 0xEE, 't' };
+static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
+static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
+static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
+static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
-static struct among a_5[38] =
+static const struct among a_5[35] =
{
-/* 0 */ { 1, s_5_0, -1, 3, 0},
-/* 1 */ { 3, s_5_1, 0, 2, 0},
-/* 2 */ { 4, s_5_2, -1, 3, 0},
-/* 3 */ { 4, s_5_3, -1, 3, 0},
-/* 4 */ { 2, s_5_4, -1, 2, 0},
-/* 5 */ { 2, s_5_5, -1, 3, 0},
-/* 6 */ { 4, s_5_6, 5, 2, 0},
-/* 7 */ { 2, s_5_7, -1, 2, 0},
-/* 8 */ { 2, s_5_8, -1, 3, 0},
-/* 9 */ { 4, s_5_9, 8, 2, 0},
-/* 10 */ { 4, s_5_10, -1, 3, 0},
-/* 11 */ { 5, s_5_11, -1, 3, 0},
-/* 12 */ { 5, s_5_12, -1, 3, 0},
-/* 13 */ { 4, s_5_13, -1, 3, 0},
-/* 14 */ { 3, s_5_14, -1, 2, 0},
-/* 15 */ { 3, s_5_15, -1, 3, 0},
-/* 16 */ { 5, s_5_16, 15, 2, 0},
-/* 17 */ { 4, s_5_17, -1, 1, 0},
-/* 18 */ { 6, s_5_18, 17, 2, 0},
-/* 19 */ { 7, s_5_19, 17, 3, 0},
-/* 20 */ { 5, s_5_20, -1, 2, 0},
-/* 21 */ { 4, s_5_21, -1, 3, 0},
-/* 22 */ { 2, s_5_22, -1, 2, 0},
-/* 23 */ { 3, s_5_23, -1, 3, 0},
-/* 24 */ { 5, s_5_24, 23, 2, 0},
-/* 25 */ { 3, s_5_25, -1, 3, 0},
-/* 26 */ { 5, s_5_26, -1, 3, 0},
-/* 27 */ { 7, s_5_27, 26, 2, 0},
-/* 28 */ { 5, s_5_28, -1, 2, 0},
-/* 29 */ { 6, s_5_29, -1, 3, 0},
-/* 30 */ { 5, s_5_30, -1, 2, 0},
-/* 31 */ { 2, s_5_31, -1, 3, 0},
-/* 32 */ { 2, s_5_32, -1, 2, 0},
-/* 33 */ { 3, s_5_33, 32, 2, 0},
-/* 34 */ { 5, s_5_34, 33, 2, 0},
-/* 35 */ { 6, s_5_35, 33, 3, 0},
-/* 36 */ { 4, s_5_36, 32, 2, 0},
-/* 37 */ { 1, s_5_37, -1, 2, 0}
+/* 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}
};
-static symbol s_6_0[1] = { 'e' };
-static symbol s_6_1[4] = { 'I', 0xE8, 'r', 'e' };
-static symbol s_6_2[4] = { 'i', 0xE8, 'r', 'e' };
-static symbol s_6_3[3] = { 'i', 'o', 'n' };
-static symbol s_6_4[3] = { 'I', 'e', 'r' };
-static symbol s_6_5[3] = { 'i', 'e', 'r' };
-static symbol s_6_6[1] = { 0xEB };
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'e', 'r', 'a' };
+static const symbol s_6_2[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_4[2] = { 0xE9, 'e' };
+static const symbol s_6_5[2] = { 'a', 'i' };
+static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_6_7[2] = { 'e', 'r' };
+static const symbol s_6_8[2] = { 'a', 's' };
+static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_10[4] = { 0xE2, 'm', 'e', 's' };
+static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_13[4] = { 0xE2, 't', 'e', 's' };
+static const symbol s_6_14[3] = { 0xE9, 'e', 's' };
+static const symbol s_6_15[3] = { 'a', 'i', 's' };
+static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' };
+static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' };
+static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' };
+static const symbol s_6_21[4] = { 'a', 'n', 't', 's' };
+static const symbol s_6_22[2] = { 0xE9, 's' };
+static const symbol s_6_23[3] = { 'a', 'i', 't' };
+static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' };
+static const symbol s_6_25[3] = { 'a', 'n', 't' };
+static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_28[5] = { 0xE8, 'r', 'e', 'n', 't' };
+static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
+static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' };
+static const symbol s_6_31[2] = { 0xE2, 't' };
+static const symbol s_6_32[2] = { 'e', 'z' };
+static const symbol s_6_33[3] = { 'i', 'e', 'z' };
+static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' };
+static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
+static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' };
+static const symbol s_6_37[1] = { 0xE9 };
-static struct among a_6[7] =
+static const struct among a_6[38] =
{
/* 0 */ { 1, s_6_0, -1, 3, 0},
-/* 1 */ { 4, s_6_1, 0, 2, 0},
-/* 2 */ { 4, s_6_2, 0, 2, 0},
-/* 3 */ { 3, s_6_3, -1, 1, 0},
-/* 4 */ { 3, s_6_4, -1, 2, 0},
-/* 5 */ { 3, s_6_5, -1, 2, 0},
-/* 6 */ { 1, s_6_6, -1, 4, 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}
+};
+
+static const symbol s_7_0[1] = { 'e' };
+static const symbol s_7_1[4] = { 'I', 0xE8, 'r', 'e' };
+static const symbol s_7_2[4] = { 'i', 0xE8, 'r', 'e' };
+static const symbol s_7_3[3] = { 'i', 'o', 'n' };
+static const symbol s_7_4[3] = { 'I', 'e', 'r' };
+static const symbol s_7_5[3] = { 'i', 'e', 'r' };
+static const symbol s_7_6[1] = { 0xEB };
+
+static const struct among a_7[7] =
+{
+/* 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},
+/* 6 */ { 1, s_7_6, -1, 4, 0}
};
-static symbol s_7_0[3] = { 'e', 'l', 'l' };
-static symbol s_7_1[4] = { 'e', 'i', 'l', 'l' };
-static symbol s_7_2[3] = { 'e', 'n', 'n' };
-static symbol s_7_3[3] = { 'o', 'n', 'n' };
-static symbol s_7_4[3] = { 'e', 't', 't' };
+static const symbol s_8_0[3] = { 'e', 'l', 'l' };
+static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' };
+static const symbol s_8_2[3] = { 'e', 'n', 'n' };
+static const symbol s_8_3[3] = { 'o', 'n', 'n' };
+static const symbol s_8_4[3] = { 'e', 't', 't' };
-static struct among a_7[5] =
+static const struct among a_8[5] =
{
-/* 0 */ { 3, 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}
+/* 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}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
+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 };
-static unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-static symbol s_0[] = { 'u' };
-static symbol s_1[] = { 'U' };
-static symbol s_2[] = { 'i' };
-static symbol s_3[] = { 'I' };
-static symbol s_4[] = { 'y' };
-static symbol s_5[] = { 'Y' };
-static symbol s_6[] = { 'y' };
-static symbol s_7[] = { 'Y' };
-static symbol s_8[] = { 'q' };
-static symbol s_9[] = { 'u' };
-static symbol s_10[] = { 'U' };
-static symbol s_11[] = { 'i' };
-static symbol s_12[] = { 'u' };
-static symbol s_13[] = { 'y' };
-static symbol s_14[] = { 'i', 'c' };
-static symbol s_15[] = { 'i', 'q', 'U' };
-static symbol s_16[] = { 'l', 'o', 'g' };
-static symbol s_17[] = { 'u' };
-static symbol s_18[] = { 'e', 'n', 't' };
-static symbol s_19[] = { 'a', 't' };
-static symbol s_20[] = { 'e', 'u', 'x' };
-static symbol s_21[] = { 'i' };
-static symbol s_22[] = { 'a', 'b', 'l' };
-static symbol s_23[] = { 'i', 'q', 'U' };
-static symbol s_24[] = { 'a', 't' };
-static symbol s_25[] = { 'i', 'c' };
-static symbol s_26[] = { 'i', 'q', 'U' };
-static symbol s_27[] = { 'e', 'a', 'u' };
-static symbol s_28[] = { 'a', 'l' };
-static symbol s_29[] = { 'e', 'u', 'x' };
-static symbol s_30[] = { 'a', 'n', 't' };
-static symbol s_31[] = { 'e', 'n', 't' };
-static symbol s_32[] = { 'e' };
-static symbol s_33[] = { 's' };
-static symbol s_34[] = { 's' };
-static symbol s_35[] = { 't' };
-static symbol s_36[] = { 'i' };
-static symbol s_37[] = { 'g', 'u' };
-static symbol s_38[] = { 0xE9 };
-static symbol s_39[] = { 0xE8 };
-static symbol s_40[] = { 'e' };
-static symbol s_41[] = { 'Y' };
-static symbol s_42[] = { 'i' };
-static symbol s_43[] = { 0xE7 };
-static symbol s_44[] = { 'c' };
+static const symbol s_0[] = { 'u' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'I' };
+static const symbol s_4[] = { 'y' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'y' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'q' };
+static const symbol s_9[] = { 'u' };
+static const symbol s_10[] = { 'U' };
+static const symbol s_11[] = { 'i' };
+static const symbol s_12[] = { 'u' };
+static const symbol s_13[] = { 'y' };
+static const symbol s_14[] = { 'i', 'c' };
+static const symbol s_15[] = { 'i', 'q', 'U' };
+static const symbol s_16[] = { 'l', 'o', 'g' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'e', 'n', 't' };
+static const symbol s_19[] = { 'a', 't' };
+static const symbol s_20[] = { 'e', 'u', 'x' };
+static const symbol s_21[] = { 'i' };
+static const symbol s_22[] = { 'a', 'b', 'l' };
+static const symbol s_23[] = { 'i', 'q', 'U' };
+static const symbol s_24[] = { 'a', 't' };
+static const symbol s_25[] = { 'i', 'c' };
+static const symbol s_26[] = { 'i', 'q', 'U' };
+static const symbol s_27[] = { 'e', 'a', 'u' };
+static const symbol s_28[] = { 'a', 'l' };
+static const symbol s_29[] = { 'e', 'u', 'x' };
+static const symbol s_30[] = { 'a', 'n', 't' };
+static const symbol s_31[] = { 'e', 'n', 't' };
+static const symbol s_32[] = { 'e' };
+static const symbol s_33[] = { 's' };
+static const symbol s_34[] = { 's' };
+static const symbol s_35[] = { 't' };
+static const symbol s_36[] = { 'i' };
+static const symbol s_37[] = { 'g', 'u' };
+static const symbol s_38[] = { 0xE9 };
+static const symbol s_39[] = { 0xE8 };
+static const symbol s_40[] = { 'e' };
+static const symbol s_41[] = { 'Y' };
+static const symbol s_42[] = { 'i' };
+static const symbol s_43[] = { 0xE7 };
+static const symbol s_44[] = { 'c' };
static int r_prelude(struct SN_env * z) {
while(1) { /* repeat, line 38 */
- int c = z->c;
+ int c1 = z->c;
while(1) { /* goto, line 38 */
- int c = z->c;
- { int c = z->c; /* or, line 44 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab3;
+ int c2 = z->c;
+ { int c3 = z->c; /* or, line 44 */
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab3;
z->bra = z->c; /* [, line 40 */
- { int c = z->c; /* or, line 40 */
+ { int c4 = z->c; /* or, line 40 */
if (!(eq_s(z, 1, s_0))) goto lab5;
z->ket = z->c; /* ], line 40 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab5;
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_2))) goto lab6;
z->ket = z->c; /* ], line 41 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab6;
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
if (ret < 0) return ret;
}
goto lab4;
lab6:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_4))) goto lab3;
z->ket = z->c; /* ], line 42 */
- { int ret;
- ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
if (ret < 0) return ret;
}
}
lab4:
goto lab2;
lab3:
- z->c = c;
+ z->c = c3;
z->bra = z->c; /* [, line 45 */
if (!(eq_s(z, 1, s_6))) goto lab7;
z->ket = z->c; /* ], line 45 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab7;
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab7;
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
if (ret < 0) return ret;
}
goto lab2;
lab7:
- z->c = c;
+ z->c = c3;
if (!(eq_s(z, 1, s_8))) goto lab1;
z->bra = z->c; /* [, line 47 */
if (!(eq_s(z, 1, s_9))) goto lab1;
z->ket = z->c; /* ], line 47 */
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
if (ret < 0) return ret;
}
}
lab2:
- z->c = c;
+ z->c = c2;
break;
lab1:
- z->c = c;
+ z->c = c2;
if (z->c >= z->l) goto lab0;
z->c++; /* goto, line 38 */
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -471,103 +491,96 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 56 */
- { int c = z->c; /* or, line 57 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab2;
- if (!(in_grouping(z, g_v, 97, 251))) goto lab2;
+ { int c1 = z->c; /* do, line 56 */
+ { int c2 = z->c; /* or, line 58 */
+ 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 57 */
goto lab1;
lab2:
- z->c = c;
+ 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;
+ if (!(find_among(z, a_0, 3))) goto lab3; /* among, line 59 */
+ goto lab1;
+ lab3:
+ z->c = c2;
if (z->c >= z->l) goto lab0;
- z->c++; /* next, line 57 */
- while(1) { /* gopast, line 57 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab3;
- break;
- lab3:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 57 */
+ z->c++; /* next, line 66 */
+ { /* gopast */ /* grouping v, line 66 */
+ 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 58 */
+ z->I[0] = z->c; /* setmark pV, line 67 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 60 */
- while(1) { /* gopast, line 61 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab5;
- break;
- lab5:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 61 */
+ { int c3 = z->c; /* do, line 69 */
+ { /* gopast */ /* grouping v, line 70 */
+ int ret = out_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 61 */
- if (!(out_grouping(z, g_v, 97, 251))) goto lab6;
- break;
- lab6:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 61 */
+ { /* gopast */ /* non v, line 70 */
+ 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 61 */
- while(1) { /* gopast, line 62 */
- if (!(in_grouping(z, g_v, 97, 251))) goto lab7;
- break;
- lab7:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 62 */
+ z->I[1] = z->c; /* setmark p1, line 70 */
+ { /* gopast */ /* grouping v, line 71 */
+ int ret = out_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 62 */
- if (!(out_grouping(z, g_v, 97, 251))) goto lab8;
- break;
- lab8:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 62 */
+ { /* gopast */ /* non v, line 71 */
+ 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 62 */
+ z->I[2] = z->c; /* setmark p2, line 71 */
lab4:
- z->c = c;
+ z->c = c3;
}
return 1;
}
static int r_postlude(struct SN_env * z) {
int among_var;
- while(1) { /* repeat, line 66 */
- int c = z->c;
- z->bra = z->c; /* [, line 68 */
- among_var = find_among(z, a_0, 4); /* substring, line 68 */
+ while(1) { /* repeat, line 75 */
+ int c1 = z->c;
+ z->bra = z->c; /* [, line 77 */
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else
+ among_var = find_among(z, a_1, 4); /* substring, line 77 */
if (!(among_var)) goto lab0;
- z->ket = z->c; /* ], line 68 */
+ z->ket = z->c; /* ], line 77 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_11); /* <-, line 69 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_12); /* <-, line 70 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 71 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 80 */
if (ret < 0) return ret;
}
break;
case 4:
if (z->c >= z->l) goto lab0;
- z->c++; /* next, line 72 */
+ z->c++; /* next, line 81 */
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -590,49 +603,45 @@ static int r_R2(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 83 */
- among_var = find_among_b(z, a_3, 43); /* substring, line 83 */
+ z->ket = z->c; /* [, line 92 */
+ among_var = find_among_b(z, a_4, 43); /* substring, line 92 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 83 */
+ z->bra = z->c; /* ], line 92 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 87 */
+ if (ret == 0) return 0; /* call R2, line 96 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 87 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 90 */
+ if (ret == 0) return 0; /* call R2, line 99 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 90 */
+ { int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 91 */
- z->ket = z->c; /* [, line 91 */
- if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 91 */
- { int m = z->l - z->c; (void) m; /* or, line 91 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 100 */
+ z->ket = z->c; /* [, line 100 */
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 100 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 100 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab2; /* call R2, line 91 */
+ if (ret == 0) goto lab2; /* call R2, line 100 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 91 */
+ { int ret = slice_del(z); /* delete, line 100 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_15); /* <-, line 91 */
+ z->c = z->l - m1;
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 100 */
if (ret < 0) return ret;
}
}
@@ -643,90 +652,82 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 3:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 95 */
+ if (ret == 0) return 0; /* call R2, line 104 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_16); /* <-, line 95 */
+ { int ret = slice_from_s(z, 3, s_16); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 98 */
+ if (ret == 0) return 0; /* call R2, line 107 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_17); /* <-, line 98 */
+ { int ret = slice_from_s(z, 1, s_17); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 101 */
+ if (ret == 0) return 0; /* call R2, line 110 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_18); /* <-, line 101 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 105 */
+ if (ret == 0) return 0; /* call RV, line 114 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 105 */
+ { int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 106 */
- z->ket = z->c; /* [, line 107 */
- among_var = find_among_b(z, a_1, 6); /* substring, line 107 */
- if (!(among_var)) { z->c = z->l - m; goto lab3; }
- z->bra = z->c; /* ], line 107 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 115 */
+ z->ket = z->c; /* [, line 116 */
+ among_var = find_among_b(z, a_2, 6); /* substring, line 116 */
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
+ z->bra = z->c; /* ], line 116 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab3; }
+ case 0: { z->c = z->l - m_keep; goto lab3; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 108 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 108 */
+ { int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
- z->ket = z->c; /* [, line 108 */
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m; goto lab3; }
- z->bra = z->c; /* ], line 108 */
+ z->ket = z->c; /* [, line 117 */
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
+ z->bra = z->c; /* ], line 117 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 108 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 108 */
+ { int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 109 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 118 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab5; /* call R2, line 109 */
+ if (ret == 0) goto lab5; /* call R2, line 118 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 109 */
+ { int ret = slice_del(z); /* delete, line 118 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m2;
{ int ret = r_R1(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R1, line 109 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R1, line 118 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
if (ret < 0) return ret;
}
}
@@ -734,21 +735,19 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 3:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 111 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 120 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 111 */
+ { int ret = slice_del(z); /* delete, line 120 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call RV, line 113 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call RV, line 122 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_21); /* <-, line 113 */
+ { int ret = slice_from_s(z, 1, s_21); /* <-, line 122 */
if (ret < 0) return ret;
}
break;
@@ -759,55 +758,51 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 7:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 120 */
+ if (ret == 0) return 0; /* call R2, line 129 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 120 */
+ { int ret = slice_del(z); /* delete, line 129 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 121 */
- z->ket = z->c; /* [, line 122 */
- among_var = find_among_b(z, a_2, 3); /* substring, line 122 */
- if (!(among_var)) { z->c = z->l - m; goto lab6; }
- z->bra = z->c; /* ], line 122 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 130 */
+ z->ket = z->c; /* [, line 131 */
+ 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 - m_keep; goto lab6; }
+ among_var = find_among_b(z, a_3, 3); /* substring, line 131 */
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab6; }
+ z->bra = z->c; /* ], line 131 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab6; }
+ case 0: { z->c = z->l - m_keep; goto lab6; }
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 123 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 132 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab8; /* call R2, line 123 */
+ if (ret == 0) goto lab8; /* call R2, line 132 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 123 */
+ { int ret = slice_del(z); /* delete, line 132 */
if (ret < 0) return ret;
}
goto lab7;
lab8:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_22); /* <-, line 123 */
+ z->c = z->l - m3;
+ { int ret = slice_from_s(z, 3, s_22); /* <-, line 132 */
if (ret < 0) return ret;
}
}
lab7:
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 124 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 133 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab10; /* call R2, line 124 */
+ if (ret == 0) goto lab10; /* call R2, line 133 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 124 */
+ { int ret = slice_del(z); /* delete, line 133 */
if (ret < 0) return ret;
}
goto lab9;
lab10:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_23); /* <-, line 124 */
+ z->c = z->l - m4;
+ { int ret = slice_from_s(z, 3, s_23); /* <-, line 133 */
if (ret < 0) return ret;
}
}
@@ -815,11 +810,10 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 3:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab6; } /* call R2, line 125 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R2, line 134 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 125 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
break;
@@ -830,42 +824,38 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 8:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 132 */
+ if (ret == 0) return 0; /* call R2, line 141 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 132 */
+ { int ret = slice_del(z); /* delete, line 141 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 133 */
- z->ket = z->c; /* [, line 133 */
- if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m; goto lab11; }
- z->bra = z->c; /* ], line 133 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 142 */
+ z->ket = z->c; /* [, line 142 */
+ if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m_keep; goto lab11; }
+ z->bra = z->c; /* ], line 142 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab11; } /* call R2, line 133 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab11; } /* call R2, line 142 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
- z->ket = z->c; /* [, line 133 */
- if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m; goto lab11; }
- z->bra = z->c; /* ], line 133 */
- { int m = z->l - z->c; (void) m; /* or, line 133 */
+ z->ket = z->c; /* [, line 142 */
+ if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m_keep; goto lab11; }
+ z->bra = z->c; /* ], line 142 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 142 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab13; /* call R2, line 133 */
+ if (ret == 0) goto lab13; /* call R2, line 142 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
goto lab12;
lab13:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_26); /* <-, line 133 */
+ z->c = z->l - m5;
+ { int ret = slice_from_s(z, 3, s_26); /* <-, line 142 */
if (ret < 0) return ret;
}
}
@@ -875,40 +865,36 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 3, s_27); /* <-, line 135 */
+ { int ret = slice_from_s(z, 3, s_27); /* <-, line 144 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 136 */
+ if (ret == 0) return 0; /* call R1, line 145 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 2, s_28); /* <-, line 136 */
+ { int ret = slice_from_s(z, 2, s_28); /* <-, line 145 */
if (ret < 0) return ret;
}
break;
case 11:
- { int m = z->l - z->c; (void) m; /* or, line 138 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 147 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab15; /* call R2, line 138 */
+ if (ret == 0) goto lab15; /* call R2, line 147 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 138 */
+ { int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
goto lab14;
lab15:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 138 */
+ if (ret == 0) return 0; /* call R1, line 147 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_29); /* <-, line 138 */
+ { int ret = slice_from_s(z, 3, s_29); /* <-, line 147 */
if (ret < 0) return ret;
}
}
@@ -916,51 +902,47 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 12:
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 141 */
+ if (ret == 0) return 0; /* call R1, line 150 */
if (ret < 0) return ret;
}
- if (!(out_grouping_b(z, g_v, 97, 251))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 141 */
+ if (out_grouping_b(z, g_v, 97, 251, 0)) return 0;
+ { int ret = slice_del(z); /* delete, line 150 */
if (ret < 0) return ret;
}
break;
case 13:
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 146 */
+ if (ret == 0) return 0; /* call RV, line 155 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_30); /* <-, line 146 */
+ { int ret = slice_from_s(z, 3, s_30); /* <-, line 155 */
if (ret < 0) return ret;
}
- return 0; /* fail, line 146 */
+ return 0; /* fail, line 155 */
break;
case 14:
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 147 */
+ if (ret == 0) return 0; /* call RV, line 156 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_31); /* <-, line 147 */
+ { int ret = slice_from_s(z, 3, s_31); /* <-, line 156 */
if (ret < 0) return ret;
}
- return 0; /* fail, line 147 */
+ return 0; /* fail, line 156 */
break;
case 15:
- { int m_test = z->l - z->c; /* test, line 149 */
- if (!(in_grouping_b(z, g_v, 97, 251))) return 0;
+ { int m_test = z->l - z->c; /* test, line 158 */
+ if (in_grouping_b(z, g_v, 97, 251, 0)) return 0;
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 149 */
+ if (ret == 0) return 0; /* call RV, line 158 */
if (ret < 0) return ret;
}
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 149 */
+ { int ret = slice_del(z); /* delete, line 158 */
if (ret < 0) return ret;
}
- return 0; /* fail, line 149 */
+ return 0; /* fail, line 158 */
break;
}
return 1;
@@ -968,72 +950,68 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_i_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 154 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 163 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 154 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- z->ket = z->c; /* [, line 155 */
- among_var = find_among_b(z, a_4, 35); /* substring, line 155 */
- if (!(among_var)) { z->lb = m3; return 0; }
- z->bra = z->c; /* ], line 155 */
+ z->c = z->I[0]; /* tomark, line 163 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 164 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
+ among_var = find_among_b(z, a_5, 35); /* substring, line 164 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 164 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- if (!(out_grouping_b(z, g_v, 97, 251))) { z->lb = m3; return 0; }
- { int ret;
- ret = slice_del(z); /* delete, line 161 */
+ if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit; return 0; }
+ { int ret = slice_del(z); /* delete, line 170 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 165 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 174 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 165 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- z->ket = z->c; /* [, line 166 */
- among_var = find_among_b(z, a_5, 38); /* substring, line 166 */
- if (!(among_var)) { z->lb = m3; return 0; }
- z->bra = z->c; /* ], line 166 */
+ z->c = z->I[0]; /* tomark, line 174 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 175 */
+ among_var = find_among_b(z, a_6, 38); /* substring, line 175 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 175 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 168 */
+ if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 177 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 168 */
+ { int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 185 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 181 */
+ { int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 182 */
- z->ket = z->c; /* [, line 182 */
- if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 182 */
- { int ret;
- ret = slice_del(z); /* delete, line 182 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 191 */
+ z->ket = z->c; /* [, line 191 */
+ if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 191 */
+ { int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
}
lab0:
@@ -1041,94 +1019,89 @@ static int r_verb_suffix(struct SN_env * z) {
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_residual_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* try, line 190 */
- z->ket = z->c; /* [, line 190 */
- if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 190 */
- { int m_test = z->l - z->c; /* test, line 190 */
- if (!(out_grouping_b(z, g_keep_with_s, 97, 232))) { z->c = z->l - m; goto lab0; }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 199 */
+ z->ket = z->c; /* [, line 199 */
+ if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 199 */
+ { int m_test = z->l - z->c; /* test, line 199 */
+ if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 190 */
+ { int ret = slice_del(z); /* delete, line 199 */
if (ret < 0) return ret;
}
lab0:
;
}
- { int m3; /* setlimit, line 191 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 200 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 191 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- z->ket = z->c; /* [, line 192 */
- among_var = find_among_b(z, a_6, 7); /* substring, line 192 */
- if (!(among_var)) { z->lb = m3; return 0; }
- z->bra = z->c; /* ], line 192 */
+ z->c = z->I[0]; /* tomark, line 200 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 201 */
+ among_var = find_among_b(z, a_7, 7); /* substring, line 201 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 201 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 193 */
+ if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 202 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* or, line 193 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 202 */
if (!(eq_s_b(z, 1, s_34))) goto lab2;
goto lab1;
lab2:
- z->c = z->l - m;
- if (!(eq_s_b(z, 1, s_35))) { z->lb = m3; return 0; }
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 1, s_35))) { z->lb = mlimit; return 0; }
}
lab1:
- { int ret;
- ret = slice_del(z); /* delete, line 193 */
+ { int ret = slice_del(z); /* delete, line 202 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_36); /* <-, line 195 */
+ { int ret = slice_from_s(z, 1, s_36); /* <-, line 204 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 196 */
+ { int ret = slice_del(z); /* delete, line 205 */
if (ret < 0) return ret;
}
break;
case 4:
- if (!(eq_s_b(z, 2, s_37))) { z->lb = m3; return 0; }
- { int ret;
- ret = slice_del(z); /* delete, line 197 */
+ if (!(eq_s_b(z, 2, s_37))) { z->lb = mlimit; return 0; }
+ { int ret = slice_del(z); /* delete, line 206 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_un_double(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 203 */
- if (!(find_among_b(z, a_7, 5))) return 0; /* among, line 203 */
+ { int m_test = z->l - z->c; /* test, line 212 */
+ 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; /* among, line 212 */
z->c = z->l - m_test;
}
- z->ket = z->c; /* [, line 203 */
+ z->ket = z->c; /* [, line 212 */
if (z->c <= z->lb) return 0;
- z->c--; /* next, line 203 */
- z->bra = z->c; /* ], line 203 */
- { int ret;
- ret = slice_del(z); /* delete, line 203 */
+ z->c--; /* next, line 212 */
+ z->bra = z->c; /* ], line 212 */
+ { int ret = slice_del(z); /* delete, line 212 */
if (ret < 0) return ret;
}
return 1;
@@ -1136,8 +1109,8 @@ static int r_un_double(struct SN_env * z) {
static int r_un_accent(struct SN_env * z) {
{ int i = 1;
- while(1) { /* atleast, line 207 */
- if (!(out_grouping_b(z, g_v, 97, 251))) goto lab0;
+ while(1) { /* atleast, line 216 */
+ if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0;
i--;
continue;
lab0:
@@ -1145,83 +1118,80 @@ static int r_un_accent(struct SN_env * z) {
}
if (i > 0) return 0;
}
- z->ket = z->c; /* [, line 208 */
- { int m = z->l - z->c; (void) m; /* or, line 208 */
+ z->ket = z->c; /* [, line 217 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 217 */
if (!(eq_s_b(z, 1, s_38))) goto lab2;
goto lab1;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_39))) return 0;
}
lab1:
- z->bra = z->c; /* ], line 208 */
- { int ret;
- ret = slice_from_s(z, 1, s_40); /* <-, line 208 */
+ z->bra = z->c; /* ], line 217 */
+ { int ret = slice_from_s(z, 1, s_40); /* <-, line 217 */
if (ret < 0) return ret;
}
return 1;
}
extern int french_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 214 */
+ { int c1 = z->c; /* do, line 223 */
{ int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 214 */
+ if (ret == 0) goto lab0; /* call prelude, line 223 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 215 */
+ { int c2 = z->c; /* do, line 224 */
{ int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 215 */
+ if (ret == 0) goto lab1; /* call mark_regions, line 224 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
- z->lb = z->c; z->c = z->l; /* backwards, line 216 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 225 */
- { int m = z->l - z->c; (void) m; /* do, line 218 */
- { int m = z->l - z->c; (void) m; /* or, line 228 */
- { int m = z->l - z->c; (void) m; /* and, line 224 */
- { int m = z->l - z->c; (void) m; /* or, line 220 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 227 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 237 */
+ { int m5 = z->l - z->c; (void)m5; /* and, line 233 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 229 */
{ int ret = r_standard_suffix(z);
- if (ret == 0) goto lab6; /* call standard_suffix, line 220 */
+ if (ret == 0) goto lab6; /* call standard_suffix, line 229 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_i_verb_suffix(z);
- if (ret == 0) goto lab7; /* call i_verb_suffix, line 221 */
+ if (ret == 0) goto lab7; /* call i_verb_suffix, line 230 */
if (ret < 0) return ret;
}
goto lab5;
lab7:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
- if (ret == 0) goto lab4; /* call verb_suffix, line 222 */
+ if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* try, line 225 */
- z->ket = z->c; /* [, line 225 */
- { int m = z->l - z->c; (void) m; /* or, line 225 */
+ z->c = z->l - m5;
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 234 */
+ z->ket = z->c; /* [, line 234 */
+ { int m7 = z->l - z->c; (void)m7; /* or, line 234 */
if (!(eq_s_b(z, 1, s_41))) goto lab10;
- z->bra = z->c; /* ], line 225 */
- { int ret;
- ret = slice_from_s(z, 1, s_42); /* <-, line 225 */
+ z->bra = z->c; /* ], line 234 */
+ { int ret = slice_from_s(z, 1, s_42); /* <-, line 234 */
if (ret < 0) return ret;
}
goto lab9;
lab10:
- z->c = z->l - m;
- if (!(eq_s_b(z, 1, s_43))) { z->c = z->l - m; goto lab8; }
- z->bra = z->c; /* ], line 226 */
- { int ret;
- ret = slice_from_s(z, 1, s_44); /* <-, line 226 */
+ z->c = z->l - m7;
+ if (!(eq_s_b(z, 1, s_43))) { z->c = z->l - m_keep; goto lab8; }
+ z->bra = z->c; /* ], line 235 */
+ { int ret = slice_from_s(z, 1, s_44); /* <-, line 235 */
if (ret < 0) return ret;
}
}
@@ -1232,45 +1202,45 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) {
}
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_residual_suffix(z);
- if (ret == 0) goto lab2; /* call residual_suffix, line 229 */
+ if (ret == 0) goto lab2; /* call residual_suffix, line 238 */
if (ret < 0) return ret;
}
}
lab3:
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 234 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 243 */
{ int ret = r_un_double(z);
- if (ret == 0) goto lab11; /* call un_double, line 234 */
+ if (ret == 0) goto lab11; /* call un_double, line 243 */
if (ret < 0) return ret;
}
lab11:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
- { int m = z->l - z->c; (void) m; /* do, line 235 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 244 */
{ int ret = r_un_accent(z);
- if (ret == 0) goto lab12; /* call un_accent, line 235 */
+ if (ret == 0) goto lab12; /* call un_accent, line 244 */
if (ret < 0) return ret;
}
lab12:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
z->c = z->lb;
- { int c = z->c; /* do, line 237 */
+ { int c10 = z->c; /* do, line 246 */
{ int ret = r_postlude(z);
- if (ret == 0) goto lab13; /* call postlude, line 237 */
+ if (ret == 0) goto lab13; /* call postlude, line 246 */
if (ret < 0) return ret;
}
lab13:
- z->c = c;
+ z->c = c10;
}
return 1;
}
extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void french_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void french_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_german.c b/libstemmer_c/src_c/stem_ISO_8859_1_german.c
index 633bf03..d9f82fc 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_german.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_german.c
@@ -3,24 +3,38 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int german_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_standard_suffix(struct SN_env * z);
static int r_R2(struct SN_env * z);
static int r_R1(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * german_ISO_8859_1_create_env(void);
extern void german_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 'U' };
-static symbol s_0_2[1] = { 'Y' };
-static symbol s_0_3[1] = { 0xE4 };
-static symbol s_0_4[1] = { 0xF6 };
-static symbol s_0_5[1] = { 0xFC };
-static struct among a_0[6] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'U' };
+static const symbol s_0_2[1] = { 'Y' };
+static const symbol s_0_3[1] = { 0xE4 };
+static const symbol s_0_4[1] = { 0xF6 };
+static const symbol s_0_5[1] = { 0xFC };
+
+static const struct among a_0[6] =
{
/* 0 */ { 0, 0, -1, 6, 0},
/* 1 */ { 1, s_0_1, 0, 2, 0},
@@ -30,15 +44,15 @@ static struct among a_0[6] =
/* 5 */ { 1, s_0_5, 0, 5, 0}
};
-static symbol s_1_0[1] = { 'e' };
-static symbol s_1_1[2] = { 'e', 'm' };
-static symbol s_1_2[2] = { 'e', 'n' };
-static symbol s_1_3[3] = { 'e', 'r', 'n' };
-static symbol s_1_4[2] = { 'e', 'r' };
-static symbol s_1_5[1] = { 's' };
-static symbol s_1_6[2] = { 'e', 's' };
+static const symbol s_1_0[1] = { 'e' };
+static const symbol s_1_1[2] = { 'e', 'm' };
+static const symbol s_1_2[2] = { 'e', 'n' };
+static const symbol s_1_3[3] = { 'e', 'r', 'n' };
+static const symbol s_1_4[2] = { 'e', 'r' };
+static const symbol s_1_5[1] = { 's' };
+static const symbol s_1_6[2] = { 'e', 's' };
-static struct among a_1[7] =
+static const struct among a_1[7] =
{
/* 0 */ { 1, s_1_0, -1, 1, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
@@ -49,12 +63,12 @@ static struct among a_1[7] =
/* 6 */ { 2, s_1_6, 5, 1, 0}
};
-static symbol s_2_0[2] = { 'e', 'n' };
-static symbol s_2_1[2] = { 'e', 'r' };
-static symbol s_2_2[2] = { 's', 't' };
-static symbol s_2_3[3] = { 'e', 's', 't' };
+static const symbol s_2_0[2] = { 'e', 'n' };
+static const symbol s_2_1[2] = { 'e', 'r' };
+static const symbol s_2_2[2] = { 's', 't' };
+static const symbol s_2_3[3] = { 'e', 's', 't' };
-static struct among a_2[4] =
+static const struct among a_2[4] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 2, s_2_1, -1, 1, 0},
@@ -62,25 +76,25 @@ static struct among a_2[4] =
/* 3 */ { 3, s_2_3, 2, 1, 0}
};
-static symbol s_3_0[2] = { 'i', 'g' };
-static symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_3_0[2] = { 'i', 'g' };
+static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
-static struct among a_3[2] =
+static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0}
};
-static symbol s_4_0[3] = { 'e', 'n', 'd' };
-static symbol s_4_1[2] = { 'i', 'g' };
-static symbol s_4_2[3] = { 'u', 'n', 'g' };
-static symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
-static symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
-static symbol s_4_5[2] = { 'i', 'k' };
-static symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
-static symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'u', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
+static const symbol s_4_5[2] = { 'i', 'k' };
+static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
+static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
-static struct among a_4[8] =
+static const struct among a_4[8] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
@@ -92,91 +106,88 @@ static struct among a_4[8] =
/* 7 */ { 4, s_4_7, -1, 4, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
+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 };
-static unsigned char g_s_ending[] = { 117, 30, 5 };
+static const unsigned char g_s_ending[] = { 117, 30, 5 };
-static unsigned char g_st_ending[] = { 117, 30, 4 };
+static const unsigned char g_st_ending[] = { 117, 30, 4 };
-static symbol s_0[] = { 0xDF };
-static symbol s_1[] = { 's', 's' };
-static symbol s_2[] = { 'u' };
-static symbol s_3[] = { 'U' };
-static symbol s_4[] = { 'y' };
-static symbol s_5[] = { 'Y' };
-static symbol s_6[] = { 'y' };
-static symbol s_7[] = { 'u' };
-static symbol s_8[] = { 'a' };
-static symbol s_9[] = { 'o' };
-static symbol s_10[] = { 'u' };
-static symbol s_11[] = { 'i', 'g' };
-static symbol s_12[] = { 'e' };
-static symbol s_13[] = { 'e' };
-static symbol s_14[] = { 'e', 'r' };
-static symbol s_15[] = { 'e', 'n' };
+static const symbol s_0[] = { 0xDF };
+static const symbol s_1[] = { 's', 's' };
+static const symbol s_2[] = { 'u' };
+static const symbol s_3[] = { 'U' };
+static const symbol s_4[] = { 'y' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'y' };
+static const symbol s_7[] = { 'u' };
+static const symbol s_8[] = { 'a' };
+static const symbol s_9[] = { 'o' };
+static const symbol s_10[] = { 'u' };
+static const symbol s_11[] = { 'i', 'g' };
+static const symbol s_12[] = { 'e' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'e', 'r' };
+static const symbol s_15[] = { 'e', 'n' };
static int r_prelude(struct SN_env * z) {
{ int c_test = z->c; /* test, line 30 */
while(1) { /* repeat, line 30 */
- int c = z->c;
- { int c = z->c; /* or, line 33 */
+ int c1 = z->c;
+ { int c2 = z->c; /* or, line 33 */
z->bra = z->c; /* [, line 32 */
if (!(eq_s(z, 1, s_0))) goto lab2;
z->ket = z->c; /* ], line 32 */
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = c;
+ z->c = c2;
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 33 */
}
lab1:
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
z->c = c_test;
}
while(1) { /* repeat, line 36 */
- int c = z->c;
+ int c3 = z->c;
while(1) { /* goto, line 36 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 252))) goto lab4;
+ int c4 = z->c;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
z->bra = z->c; /* [, line 37 */
- { int c = z->c; /* or, line 37 */
+ { int c5 = z->c; /* or, line 37 */
if (!(eq_s(z, 1, s_2))) goto lab6;
z->ket = z->c; /* ], line 37 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab6;
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = c;
+ z->c = c5;
if (!(eq_s(z, 1, s_4))) goto lab4;
z->ket = z->c; /* ], line 38 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab4;
- { int ret;
- ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = c;
+ z->c = c4;
break;
lab4:
- z->c = c;
+ z->c = c4;
if (z->c >= z->l) goto lab3;
z->c++; /* goto, line 36 */
}
continue;
lab3:
- z->c = c;
+ z->c = c3;
break;
}
return 1;
@@ -186,45 +197,37 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
{ int c_test = z->c; /* test, line 47 */
- { int c = z->c + 3;
- if (0 > c || c > z->l) return 0;
- z->c = c; /* hop, line 47 */
+ { int ret = z->c + 3;
+ if (0 > ret || ret > z->l) return 0;
+ z->c = ret; /* hop, line 47 */
}
z->I[2] = z->c; /* setmark x, line 47 */
z->c = c_test;
}
- while(1) { /* gopast, line 49 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab0;
- break;
- lab0:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 49 */
+ { /* gopast */ /* grouping v, line 49 */
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 49 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 49 */
+ { /* gopast */ /* non v, line 49 */
+ 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 49 */
/* try, line 50 */
- if (!(z->I[0] < z->I[2])) goto lab2;
+ if (!(z->I[0] < z->I[2])) goto lab0;
z->I[0] = z->I[2];
-lab2:
- while(1) { /* gopast, line 51 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab3;
- break;
- lab3:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 51 */
+lab0:
+ { /* gopast */ /* grouping v, line 51 */
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 51 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab4;
- break;
- lab4:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 51 */
+ { /* gopast */ /* non v, line 51 */
+ 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 51 */
return 1;
@@ -233,7 +236,7 @@ lab2:
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 55 */
- int c = z->c;
+ int c1 = z->c;
z->bra = z->c; /* [, line 57 */
among_var = find_among(z, a_0, 6); /* substring, line 57 */
if (!(among_var)) goto lab0;
@@ -241,32 +244,27 @@ static int r_postlude(struct SN_env * z) {
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
@@ -277,7 +275,7 @@ static int r_postlude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -295,8 +293,9 @@ static int r_R2(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* do, line 74 */
+ { int m1 = z->l - z->c; (void)m1; /* do, line 74 */
z->ket = z->c; /* [, line 75 */
+ 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); /* substring, line 75 */
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 75 */
@@ -307,24 +306,23 @@ static int r_standard_suffix(struct SN_env * z) {
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 77 */
+ { int ret = slice_del(z); /* delete, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b(z, g_s_ending, 98, 116))) goto lab0;
- { int ret;
- ret = slice_del(z); /* delete, line 80 */
+ if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
+ { int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
break;
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m1;
}
- { int m = z->l - z->c; (void) m; /* do, line 84 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 84 */
z->ket = z->c; /* [, line 85 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
if (!(among_var)) goto lab1;
z->bra = z->c; /* ], line 85 */
@@ -335,28 +333,27 @@ static int r_standard_suffix(struct SN_env * z) {
switch(among_var) {
case 0: goto lab1;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 87 */
+ { int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b(z, g_st_ending, 98, 116))) goto lab1;
- { int c = z->c - 3;
- if (z->lb > c || c > z->l) goto lab1;
- z->c = c; /* hop, line 90 */
+ if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab1;
+ { int ret = z->c - 3;
+ if (z->lb > ret || ret > z->l) goto lab1;
+ z->c = ret; /* hop, line 90 */
}
- { int ret;
- ret = slice_del(z); /* delete, line 90 */
+ { int ret = slice_del(z); /* delete, line 90 */
if (ret < 0) return ret;
}
break;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 94 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 94 */
z->ket = z->c; /* [, line 95 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
if (!(among_var)) goto lab2;
z->bra = z->c; /* ], line 95 */
@@ -367,26 +364,24 @@ static int r_standard_suffix(struct SN_env * z) {
switch(among_var) {
case 0: goto lab2;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 97 */
+ { int ret = slice_del(z); /* delete, line 97 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 98 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
z->ket = z->c; /* [, line 98 */
- if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 98 */
- { int m = z->l - z->c; (void) m; /* not, line 98 */
+ { int m4 = z->l - z->c; (void)m4; /* not, line 98 */
if (!(eq_s_b(z, 1, s_12))) goto lab4;
- { z->c = z->l - m; goto lab3; }
+ { z->c = z->l - m_keep; goto lab3; }
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 98 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 98 */
+ { int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
lab3:
@@ -394,39 +389,36 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* not, line 101 */
+ { int m5 = z->l - z->c; (void)m5; /* not, line 101 */
if (!(eq_s_b(z, 1, s_13))) goto lab5;
goto lab2;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int ret;
- ret = slice_del(z); /* delete, line 101 */
+ { int ret = slice_del(z); /* delete, line 101 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 104 */
+ { int ret = slice_del(z); /* delete, line 104 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 105 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
z->ket = z->c; /* [, line 106 */
- { int m = z->l - z->c; (void) m; /* or, line 106 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 106 */
if (!(eq_s_b(z, 2, s_14))) goto lab8;
goto lab7;
lab8:
- z->c = z->l - m;
- if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m; goto lab6; }
+ z->c = z->l - m6;
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
}
lab7:
z->bra = z->c; /* ], line 106 */
{ int ret = r_R1(z);
- if (ret == 0) { z->c = z->l - m; goto lab6; } /* call R1, line 106 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 106 */
+ { int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
lab6:
@@ -434,24 +426,23 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 4:
- { int ret;
- ret = slice_del(z); /* delete, line 110 */
+ { int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 111 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
z->ket = z->c; /* [, line 112 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m; goto lab9; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab9; } /* call R2, line 112 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab9; }
+ case 0: { z->c = z->l - m_keep; goto lab9; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 114 */
+ { int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
break;
@@ -462,51 +453,51 @@ static int r_standard_suffix(struct SN_env * z) {
break;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
return 1;
}
extern int german_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 125 */
+ { int c1 = z->c; /* do, line 125 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 125 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 126 */
+ { int c2 = z->c; /* do, line 126 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 126 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 127 */
- { int m = z->l - z->c; (void) m; /* do, line 128 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 128 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
z->c = z->lb;
- { int c = z->c; /* do, line 129 */
+ { int c4 = z->c; /* do, line 129 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 129 */
if (ret < 0) return ret;
}
lab3:
- z->c = c;
+ z->c = c4;
}
return 1;
}
extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.c b/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.c
new file mode 100644
index 0000000..beb31db
--- /dev/null
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.c
@@ -0,0 +1,1230 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#include "../runtime/header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int hungarian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_double(struct SN_env * z);
+static int r_undouble(struct SN_env * z);
+static int r_factive(struct SN_env * z);
+static int r_instrum(struct SN_env * z);
+static int r_plur_owner(struct SN_env * z);
+static int r_sing_owner(struct SN_env * z);
+static int r_owned(struct SN_env * z);
+static int r_plural(struct SN_env * z);
+static int r_case_other(struct SN_env * z);
+static int r_case_special(struct SN_env * z);
+static int r_case(struct SN_env * z);
+static int r_v_ending(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * hungarian_ISO_8859_1_create_env(void);
+extern void hungarian_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'c', 's' };
+static const symbol s_0_1[3] = { 'd', 'z', 's' };
+static const symbol s_0_2[2] = { 'g', 'y' };
+static const symbol s_0_3[2] = { 'l', 'y' };
+static const symbol s_0_4[2] = { 'n', 'y' };
+static const symbol s_0_5[2] = { 's', 'z' };
+static const symbol s_0_6[2] = { 't', 'y' };
+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}
+};
+
+static const symbol s_1_0[1] = { 0xE1 };
+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}
+};
+
+static const symbol s_2_0[2] = { 'b', 'b' };
+static const symbol s_2_1[2] = { 'c', 'c' };
+static const symbol s_2_2[2] = { 'd', 'd' };
+static const symbol s_2_3[2] = { 'f', 'f' };
+static const symbol s_2_4[2] = { 'g', 'g' };
+static const symbol s_2_5[2] = { 'j', 'j' };
+static const symbol s_2_6[2] = { 'k', 'k' };
+static const symbol s_2_7[2] = { 'l', 'l' };
+static const symbol s_2_8[2] = { 'm', 'm' };
+static const symbol s_2_9[2] = { 'n', 'n' };
+static const symbol s_2_10[2] = { 'p', 'p' };
+static const symbol s_2_11[2] = { 'r', 'r' };
+static const symbol s_2_12[3] = { 'c', 'c', 's' };
+static const symbol s_2_13[2] = { 's', 's' };
+static const symbol s_2_14[3] = { 'z', 'z', 's' };
+static const symbol s_2_15[2] = { 't', 't' };
+static const symbol s_2_16[2] = { 'v', 'v' };
+static const symbol s_2_17[3] = { 'g', 'g', 'y' };
+static const symbol s_2_18[3] = { 'l', 'l', 'y' };
+static const symbol s_2_19[3] = { 'n', 'n', 'y' };
+static const symbol s_2_20[3] = { 't', 't', 'y' };
+static const symbol s_2_21[3] = { 's', 's', 'z' };
+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}
+};
+
+static const symbol s_3_0[2] = { 'a', 'l' };
+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, 2, 0}
+};
+
+static const symbol s_4_0[2] = { 'b', 'a' };
+static const symbol s_4_1[2] = { 'r', 'a' };
+static const symbol s_4_2[2] = { 'b', 'e' };
+static const symbol s_4_3[2] = { 'r', 'e' };
+static const symbol s_4_4[2] = { 'i', 'g' };
+static const symbol s_4_5[3] = { 'n', 'a', 'k' };
+static const symbol s_4_6[3] = { 'n', 'e', 'k' };
+static const symbol s_4_7[3] = { 'v', 'a', 'l' };
+static const symbol s_4_8[3] = { 'v', 'e', 'l' };
+static const symbol s_4_9[2] = { 'u', 'l' };
+static const symbol s_4_10[3] = { 'n', 0xE1, 'l' };
+static const symbol s_4_11[3] = { 'n', 0xE9, 'l' };
+static const symbol s_4_12[3] = { 'b', 0xF3, 'l' };
+static const symbol s_4_13[3] = { 'r', 0xF3, 'l' };
+static const symbol s_4_14[3] = { 't', 0xF3, 'l' };
+static const symbol s_4_15[3] = { 'b', 0xF5, 'l' };
+static const symbol s_4_16[3] = { 'r', 0xF5, 'l' };
+static const symbol s_4_17[3] = { 't', 0xF5, 'l' };
+static const symbol s_4_18[2] = { 0xFC, 'l' };
+static const symbol s_4_19[1] = { 'n' };
+static const symbol s_4_20[2] = { 'a', 'n' };
+static const symbol s_4_21[3] = { 'b', 'a', 'n' };
+static const symbol s_4_22[2] = { 'e', 'n' };
+static const symbol s_4_23[3] = { 'b', 'e', 'n' };
+static const symbol s_4_24[6] = { 'k', 0xE9, 'p', 'p', 'e', 'n' };
+static const symbol s_4_25[2] = { 'o', 'n' };
+static const symbol s_4_26[2] = { 0xF6, 'n' };
+static const symbol s_4_27[4] = { 'k', 0xE9, 'p', 'p' };
+static const symbol s_4_28[3] = { 'k', 'o', 'r' };
+static const symbol s_4_29[1] = { 't' };
+static const symbol s_4_30[2] = { 'a', 't' };
+static const symbol s_4_31[2] = { 'e', 't' };
+static const symbol s_4_32[4] = { 'k', 0xE9, 'n', 't' };
+static const symbol s_4_33[6] = { 'a', 'n', 'k', 0xE9, 'n', 't' };
+static const symbol s_4_34[6] = { 'e', 'n', 'k', 0xE9, 'n', 't' };
+static const symbol s_4_35[6] = { 'o', 'n', 'k', 0xE9, 'n', 't' };
+static const symbol s_4_36[2] = { 'o', 't' };
+static const symbol s_4_37[3] = { 0xE9, 'r', 't' };
+static const symbol s_4_38[2] = { 0xF6, 't' };
+static const symbol s_4_39[3] = { 'h', 'e', 'z' };
+static const symbol s_4_40[3] = { 'h', 'o', 'z' };
+static const symbol s_4_41[3] = { 'h', 0xF6, 'z' };
+static const symbol s_4_42[2] = { 'v', 0xE1 };
+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}
+};
+
+static const symbol s_5_0[2] = { 0xE1, 'n' };
+static const symbol s_5_1[2] = { 0xE9, 'n' };
+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, 3, 0}
+};
+
+static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
+static const symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' };
+static const symbol s_6_2[5] = { 0xE1, 's', 't', 'u', 'l' };
+static const symbol s_6_3[4] = { 's', 't', 0xFC, 'l' };
+static const symbol s_6_4[5] = { 'e', 's', 't', 0xFC, 'l' };
+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, 2, 0},
+/* 1 */ { 5, s_6_1, 0, 1, 0},
+/* 2 */ { 5, s_6_2, 0, 3, 0},
+/* 3 */ { 4, s_6_3, -1, 2, 0},
+/* 4 */ { 5, s_6_4, 3, 1, 0},
+/* 5 */ { 5, s_6_5, 3, 4, 0}
+};
+
+static const symbol s_7_0[1] = { 0xE1 };
+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, 2, 0}
+};
+
+static const symbol s_8_0[1] = { 'k' };
+static const symbol s_8_1[2] = { 'a', 'k' };
+static const symbol s_8_2[2] = { 'e', 'k' };
+static const symbol s_8_3[2] = { 'o', 'k' };
+static const symbol s_8_4[2] = { 0xE1, 'k' };
+static const symbol s_8_5[2] = { 0xE9, 'k' };
+static const symbol s_8_6[2] = { 0xF6, 'k' };
+
+static const struct among a_8[7] =
+{
+/* 0 */ { 1, s_8_0, -1, 7, 0},
+/* 1 */ { 2, s_8_1, 0, 4, 0},
+/* 2 */ { 2, s_8_2, 0, 6, 0},
+/* 3 */ { 2, s_8_3, 0, 5, 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}
+};
+
+static const symbol s_9_0[2] = { 0xE9, 'i' };
+static const symbol s_9_1[3] = { 0xE1, 0xE9, 'i' };
+static const symbol s_9_2[3] = { 0xE9, 0xE9, 'i' };
+static const symbol s_9_3[1] = { 0xE9 };
+static const symbol s_9_4[2] = { 'k', 0xE9 };
+static const symbol s_9_5[3] = { 'a', 'k', 0xE9 };
+static const symbol s_9_6[3] = { 'e', 'k', 0xE9 };
+static const symbol s_9_7[3] = { 'o', 'k', 0xE9 };
+static const symbol s_9_8[3] = { 0xE1, 'k', 0xE9 };
+static const symbol s_9_9[3] = { 0xE9, 'k', 0xE9 };
+static const symbol s_9_10[3] = { 0xF6, 'k', 0xE9 };
+static const symbol s_9_11[2] = { 0xE9, 0xE9 };
+
+static const struct among a_9[12] =
+{
+/* 0 */ { 2, s_9_0, -1, 7, 0},
+/* 1 */ { 3, s_9_1, 0, 6, 0},
+/* 2 */ { 3, s_9_2, 0, 5, 0},
+/* 3 */ { 1, s_9_3, -1, 9, 0},
+/* 4 */ { 2, s_9_4, 3, 4, 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, 8, 0}
+};
+
+static const symbol s_10_0[1] = { 'a' };
+static const symbol s_10_1[2] = { 'j', 'a' };
+static const symbol s_10_2[1] = { 'd' };
+static const symbol s_10_3[2] = { 'a', 'd' };
+static const symbol s_10_4[2] = { 'e', 'd' };
+static const symbol s_10_5[2] = { 'o', 'd' };
+static const symbol s_10_6[2] = { 0xE1, 'd' };
+static const symbol s_10_7[2] = { 0xE9, 'd' };
+static const symbol s_10_8[2] = { 0xF6, 'd' };
+static const symbol s_10_9[1] = { 'e' };
+static const symbol s_10_10[2] = { 'j', 'e' };
+static const symbol s_10_11[2] = { 'n', 'k' };
+static const symbol s_10_12[3] = { 'u', 'n', 'k' };
+static const symbol s_10_13[3] = { 0xE1, 'n', 'k' };
+static const symbol s_10_14[3] = { 0xE9, 'n', 'k' };
+static const symbol s_10_15[3] = { 0xFC, 'n', 'k' };
+static const symbol s_10_16[2] = { 'u', 'k' };
+static const symbol s_10_17[3] = { 'j', 'u', 'k' };
+static const symbol s_10_18[4] = { 0xE1, 'j', 'u', 'k' };
+static const symbol s_10_19[2] = { 0xFC, 'k' };
+static const symbol s_10_20[3] = { 'j', 0xFC, 'k' };
+static const symbol s_10_21[4] = { 0xE9, 'j', 0xFC, 'k' };
+static const symbol s_10_22[1] = { 'm' };
+static const symbol s_10_23[2] = { 'a', 'm' };
+static const symbol s_10_24[2] = { 'e', 'm' };
+static const symbol s_10_25[2] = { 'o', 'm' };
+static const symbol s_10_26[2] = { 0xE1, 'm' };
+static const symbol s_10_27[2] = { 0xE9, 'm' };
+static const symbol s_10_28[1] = { 'o' };
+static const symbol s_10_29[1] = { 0xE1 };
+static const symbol s_10_30[1] = { 0xE9 };
+
+static const struct among a_10[31] =
+{
+/* 0 */ { 1, s_10_0, -1, 18, 0},
+/* 1 */ { 2, s_10_1, 0, 17, 0},
+/* 2 */ { 1, s_10_2, -1, 16, 0},
+/* 3 */ { 2, s_10_3, 2, 13, 0},
+/* 4 */ { 2, s_10_4, 2, 13, 0},
+/* 5 */ { 2, s_10_5, 2, 13, 0},
+/* 6 */ { 2, s_10_6, 2, 14, 0},
+/* 7 */ { 2, s_10_7, 2, 15, 0},
+/* 8 */ { 2, s_10_8, 2, 13, 0},
+/* 9 */ { 1, s_10_9, -1, 18, 0},
+/* 10 */ { 2, s_10_10, 9, 17, 0},
+/* 11 */ { 2, s_10_11, -1, 4, 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, 8, 0},
+/* 17 */ { 3, s_10_17, 16, 7, 0},
+/* 18 */ { 4, s_10_18, 17, 5, 0},
+/* 19 */ { 2, s_10_19, -1, 8, 0},
+/* 20 */ { 3, s_10_20, 19, 7, 0},
+/* 21 */ { 4, s_10_21, 20, 6, 0},
+/* 22 */ { 1, s_10_22, -1, 12, 0},
+/* 23 */ { 2, s_10_23, 22, 9, 0},
+/* 24 */ { 2, s_10_24, 22, 9, 0},
+/* 25 */ { 2, s_10_25, 22, 9, 0},
+/* 26 */ { 2, s_10_26, 22, 10, 0},
+/* 27 */ { 2, s_10_27, 22, 11, 0},
+/* 28 */ { 1, s_10_28, -1, 18, 0},
+/* 29 */ { 1, s_10_29, -1, 19, 0},
+/* 30 */ { 1, s_10_30, -1, 20, 0}
+};
+
+static const symbol s_11_0[2] = { 'i', 'd' };
+static const symbol s_11_1[3] = { 'a', 'i', 'd' };
+static const symbol s_11_2[4] = { 'j', 'a', 'i', 'd' };
+static const symbol s_11_3[3] = { 'e', 'i', 'd' };
+static const symbol s_11_4[4] = { 'j', 'e', 'i', 'd' };
+static const symbol s_11_5[3] = { 0xE1, 'i', 'd' };
+static const symbol s_11_6[3] = { 0xE9, 'i', 'd' };
+static const symbol s_11_7[1] = { 'i' };
+static const symbol s_11_8[2] = { 'a', 'i' };
+static const symbol s_11_9[3] = { 'j', 'a', 'i' };
+static const symbol s_11_10[2] = { 'e', 'i' };
+static const symbol s_11_11[3] = { 'j', 'e', 'i' };
+static const symbol s_11_12[2] = { 0xE1, 'i' };
+static const symbol s_11_13[2] = { 0xE9, 'i' };
+static const symbol s_11_14[4] = { 'i', 't', 'e', 'k' };
+static const symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_17[5] = { 0xE9, 'i', 't', 'e', 'k' };
+static const symbol s_11_18[2] = { 'i', 'k' };
+static const symbol s_11_19[3] = { 'a', 'i', 'k' };
+static const symbol s_11_20[4] = { 'j', 'a', 'i', 'k' };
+static const symbol s_11_21[3] = { 'e', 'i', 'k' };
+static const symbol s_11_22[4] = { 'j', 'e', 'i', 'k' };
+static const symbol s_11_23[3] = { 0xE1, 'i', 'k' };
+static const symbol s_11_24[3] = { 0xE9, 'i', 'k' };
+static const symbol s_11_25[3] = { 'i', 'n', 'k' };
+static const symbol s_11_26[4] = { 'a', 'i', 'n', 'k' };
+static const symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' };
+static const symbol s_11_28[4] = { 'e', 'i', 'n', 'k' };
+static const symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' };
+static const symbol s_11_30[4] = { 0xE1, 'i', 'n', 'k' };
+static const symbol s_11_31[4] = { 0xE9, 'i', 'n', 'k' };
+static const symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_34[5] = { 0xE1, 'i', 't', 'o', 'k' };
+static const symbol s_11_35[2] = { 'i', 'm' };
+static const symbol s_11_36[3] = { 'a', 'i', 'm' };
+static const symbol s_11_37[4] = { 'j', 'a', 'i', 'm' };
+static const symbol s_11_38[3] = { 'e', 'i', 'm' };
+static const symbol s_11_39[4] = { 'j', 'e', 'i', 'm' };
+static const symbol s_11_40[3] = { 0xE1, 'i', 'm' };
+static const symbol s_11_41[3] = { 0xE9, 'i', 'm' };
+
+static const struct among a_11[42] =
+{
+/* 0 */ { 2, s_11_0, -1, 10, 0},
+/* 1 */ { 3, s_11_1, 0, 9, 0},
+/* 2 */ { 4, s_11_2, 1, 6, 0},
+/* 3 */ { 3, s_11_3, 0, 9, 0},
+/* 4 */ { 4, s_11_4, 3, 6, 0},
+/* 5 */ { 3, s_11_5, 0, 7, 0},
+/* 6 */ { 3, s_11_6, 0, 8, 0},
+/* 7 */ { 1, s_11_7, -1, 15, 0},
+/* 8 */ { 2, s_11_8, 7, 14, 0},
+/* 9 */ { 3, s_11_9, 8, 11, 0},
+/* 10 */ { 2, s_11_10, 7, 14, 0},
+/* 11 */ { 3, s_11_11, 10, 11, 0},
+/* 12 */ { 2, s_11_12, 7, 12, 0},
+/* 13 */ { 2, s_11_13, 7, 13, 0},
+/* 14 */ { 4, s_11_14, -1, 24, 0},
+/* 15 */ { 5, s_11_15, 14, 21, 0},
+/* 16 */ { 6, s_11_16, 15, 20, 0},
+/* 17 */ { 5, s_11_17, 14, 23, 0},
+/* 18 */ { 2, s_11_18, -1, 29, 0},
+/* 19 */ { 3, s_11_19, 18, 26, 0},
+/* 20 */ { 4, s_11_20, 19, 25, 0},
+/* 21 */ { 3, s_11_21, 18, 26, 0},
+/* 22 */ { 4, s_11_22, 21, 25, 0},
+/* 23 */ { 3, s_11_23, 18, 27, 0},
+/* 24 */ { 3, s_11_24, 18, 28, 0},
+/* 25 */ { 3, s_11_25, -1, 20, 0},
+/* 26 */ { 4, s_11_26, 25, 17, 0},
+/* 27 */ { 5, s_11_27, 26, 16, 0},
+/* 28 */ { 4, s_11_28, 25, 17, 0},
+/* 29 */ { 5, s_11_29, 28, 16, 0},
+/* 30 */ { 4, s_11_30, 25, 18, 0},
+/* 31 */ { 4, s_11_31, 25, 19, 0},
+/* 32 */ { 5, s_11_32, -1, 21, 0},
+/* 33 */ { 6, s_11_33, 32, 20, 0},
+/* 34 */ { 5, s_11_34, -1, 22, 0},
+/* 35 */ { 2, s_11_35, -1, 5, 0},
+/* 36 */ { 3, s_11_36, 35, 4, 0},
+/* 37 */ { 4, s_11_37, 36, 1, 0},
+/* 38 */ { 3, s_11_38, 35, 4, 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}
+};
+
+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 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'e' };
+static const symbol s_3[] = { 'a' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'a' };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 'a' };
+static const symbol s_8[] = { 'e' };
+static const symbol s_9[] = { 'e' };
+static const symbol s_10[] = { 'a' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'a' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'a' };
+static const symbol s_15[] = { 'e' };
+static const symbol s_16[] = { 'a' };
+static const symbol s_17[] = { 'e' };
+static const symbol s_18[] = { 'a' };
+static const symbol s_19[] = { 'e' };
+static const symbol s_20[] = { 'a' };
+static const symbol s_21[] = { 'e' };
+static const symbol s_22[] = { 'a' };
+static const symbol s_23[] = { 'e' };
+static const symbol s_24[] = { 'a' };
+static const symbol s_25[] = { 'e' };
+static const symbol s_26[] = { 'a' };
+static const symbol s_27[] = { 'e' };
+static const symbol s_28[] = { 'a' };
+static const symbol s_29[] = { 'e' };
+static const symbol s_30[] = { 'a' };
+static const symbol s_31[] = { 'e' };
+static const symbol s_32[] = { 'a' };
+static const symbol s_33[] = { 'e' };
+static const symbol s_34[] = { 'a' };
+static const symbol s_35[] = { 'e' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[0] = z->l;
+ { int c1 = z->c; /* or, line 51 */
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
+ 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;
+ if (!(find_among(z, a_0, 8))) goto lab3; /* among, line 49 */
+ goto lab2;
+ lab3:
+ z->c = c2;
+ if (z->c >= z->l) goto lab1;
+ z->c++; /* next, line 49 */
+ }
+ lab2:
+ z->I[0] = z->c; /* setmark p1, line 50 */
+ goto lab0;
+ lab1:
+ z->c = c1;
+ if (out_grouping(z, g_v, 97, 252, 0)) return 0;
+ { /* gopast */ /* grouping v, line 53 */
+ 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 */
+ }
+lab0:
+ return 1;
+}
+
+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) {
+ 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;
+ among_var = find_among_b(z, a_1, 2); /* substring, line 61 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 61 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 61 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_double(struct SN_env * z) {
+ { int m_test = 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;
+ if (!(find_among_b(z, a_2, 23))) return 0; /* among, line 68 */
+ z->c = z->l - m_test;
+ }
+ return 1;
+}
+
+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;
+ if (z->lb > ret || ret > z->l) return 0;
+ z->c = ret; /* hop, line 73 */
+ }
+ z->bra = z->c; /* ], line 73 */
+ { int ret = slice_del(z); /* delete, line 73 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_instrum(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c; /* [, line 77 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
+ among_var = find_among_b(z, a_3, 2); /* substring, line 77 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 77 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 77 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 78 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 79 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ { int ret = slice_del(z); /* delete, line 81 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret == 0) return 0; /* call undouble, line 82 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_case(struct SN_env * z) {
+ 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);
+ if (ret == 0) return 0; /* call R1, line 87 */
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 111 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_v_ending(z);
+ if (ret == 0) return 0; /* call v_ending, line 112 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_5, 3); /* substring, line 116 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 116 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 116 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 119 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_6, 6); /* substring, line 124 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 124 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 124 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 125 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z); /* delete, line 126 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 127 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 128 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_factive(struct SN_env * z) {
+ int among_var;
+ 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;
+ among_var = find_among_b(z, a_7, 2); /* substring, line 133 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 133 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 133 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 134 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 135 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ { int ret = slice_del(z); /* delete, line 137 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret == 0) return 0; /* call undouble, line 138 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_8, 7); /* substring, line 142 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 142 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 142 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 143 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 144 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z); /* delete, line 145 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 146 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_del(z); /* delete, line 147 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z); /* delete, line 148 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_del(z); /* delete, line 149 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_9, 12); /* substring, line 154 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 154 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 154 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 155 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 156 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 157 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 158 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 159 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 160 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_del(z); /* delete, line 161 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 162 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_del(z); /* delete, line 163 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 168 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 168 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 169 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_14); /* <-, line 170 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 171 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 172 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_16); /* <-, line 173 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_17); /* <-, line 174 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_del(z); /* delete, line 175 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_del(z); /* delete, line 176 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_del(z); /* delete, line 177 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_18); /* <-, line 178 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 1, s_19); /* <-, line 179 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_del(z); /* delete, line 180 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_del(z); /* delete, line 181 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 1, s_20); /* <-, line 182 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 1, s_21); /* <-, line 183 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_del(z); /* delete, line 184 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_del(z); /* delete, line 185 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_del(z); /* delete, line 186 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 1, s_22); /* <-, line 187 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 1, s_23); /* <-, line 188 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_11, 42); /* substring, line 193 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 193 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 193 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 194 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_24); /* <-, line 195 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_25); /* <-, line 196 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 197 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_del(z); /* delete, line 198 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z); /* delete, line 199 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_26); /* <-, line 200 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_27); /* <-, line 201 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_del(z); /* delete, line 202 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_del(z); /* delete, line 203 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_del(z); /* delete, line 204 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 1, s_28); /* <-, line 205 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 1, s_29); /* <-, line 206 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_del(z); /* delete, line 207 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_del(z); /* delete, line 208 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_del(z); /* delete, line 209 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_del(z); /* delete, line 210 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 1, s_30); /* <-, line 211 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 1, s_31); /* <-, line 212 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_del(z); /* delete, line 214 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_del(z); /* delete, line 215 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 1, s_32); /* <-, line 216 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 1, s_33); /* <-, line 217 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_del(z); /* delete, line 218 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_del(z); /* delete, line 219 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_del(z); /* delete, line 220 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 1, s_34); /* <-, line 221 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 1, s_35); /* <-, line 222 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_del(z); /* delete, line 223 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int hungarian_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c; /* do, line 229 */
+ { int ret = r_mark_regions(z);
+ if (ret == 0) goto lab0; /* call mark_regions, line 229 */
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l; /* backwards, line 230 */
+
+ { int m2 = z->l - z->c; (void)m2; /* do, line 231 */
+ { int ret = r_instrum(z);
+ if (ret == 0) goto lab1; /* call instrum, line 231 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3; /* do, line 232 */
+ { int ret = r_case(z);
+ if (ret == 0) goto lab2; /* call case, line 232 */
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4; /* do, line 233 */
+ { int ret = r_case_special(z);
+ if (ret == 0) goto lab3; /* call case_special, line 233 */
+ if (ret < 0) return ret;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5; /* do, line 234 */
+ { int ret = r_case_other(z);
+ if (ret == 0) goto lab4; /* call case_other, line 234 */
+ if (ret < 0) return ret;
+ }
+ lab4:
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6; /* do, line 235 */
+ { int ret = r_factive(z);
+ if (ret == 0) goto lab5; /* call factive, line 235 */
+ if (ret < 0) return ret;
+ }
+ lab5:
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7; /* do, line 236 */
+ { int ret = r_owned(z);
+ if (ret == 0) goto lab6; /* call owned, line 236 */
+ if (ret < 0) return ret;
+ }
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8; /* do, line 237 */
+ { int ret = r_sing_owner(z);
+ if (ret == 0) goto lab7; /* call sing_owner, line 237 */
+ if (ret < 0) return ret;
+ }
+ lab7:
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9; /* do, line 238 */
+ { int ret = r_plur_owner(z);
+ if (ret == 0) goto lab8; /* call plur_owner, line 238 */
+ if (ret < 0) return ret;
+ }
+ lab8:
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10; /* do, line 239 */
+ { int ret = r_plural(z);
+ if (ret == 0) goto lab9; /* call plural, line 239 */
+ if (ret < 0) return ret;
+ }
+ lab9:
+ z->c = z->l - m10;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * hungarian_ISO_8859_1_create_env(void) { return SN_create_env(0, 1, 0); }
+
+extern void hungarian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.h b/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.h
new file mode 100644
index 0000000..c3177e5
--- /dev/null
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.h
@@ -0,0 +1,16 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * hungarian_ISO_8859_1_create_env(void);
+extern void hungarian_ISO_8859_1_close_env(struct SN_env * z);
+
+extern int hungarian_ISO_8859_1_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_italian.c b/libstemmer_c/src_c/stem_ISO_8859_1_italian.c
index 9fe9776..3151ef5 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_italian.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_italian.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int italian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_vowel_suffix(struct SN_env * z);
static int r_verb_suffix(struct SN_env * z);
static int r_standard_suffix(struct SN_env * z);
@@ -14,18 +20,26 @@ static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * italian_ISO_8859_1_create_env(void);
extern void italian_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_1[2] = { 'q', 'u' };
-static symbol s_0_2[1] = { 0xE1 };
-static symbol s_0_3[1] = { 0xE9 };
-static symbol s_0_4[1] = { 0xED };
-static symbol s_0_5[1] = { 0xF3 };
-static symbol s_0_6[1] = { 0xFA };
-static struct among a_0[7] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 'q', 'u' };
+static const symbol s_0_2[1] = { 0xE1 };
+static const symbol s_0_3[1] = { 0xE9 };
+static const symbol s_0_4[1] = { 0xED };
+static const symbol s_0_5[1] = { 0xF3 };
+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},
@@ -36,55 +50,55 @@ static struct among a_0[7] =
/* 6 */ { 1, s_0_6, 0, 5, 0}
};
-static symbol s_1_1[1] = { 'I' };
-static symbol s_1_2[1] = { 'U' };
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[2] = { 'l', 'a' };
-static symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
-static symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
-static symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
-static symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
-static symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
-static symbol s_2_6[2] = { 'l', 'e' };
-static symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
-static symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
-static symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
-static symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
-static symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
-static symbol s_2_12[2] = { 'n', 'e' };
-static symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
-static symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
-static symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
-static symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
-static symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
-static symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
-static symbol s_2_19[2] = { 'c', 'i' };
-static symbol s_2_20[2] = { 'l', 'i' };
-static symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
-static symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
-static symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
-static symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
-static symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
-static symbol s_2_26[3] = { 'g', 'l', 'i' };
-static symbol s_2_27[2] = { 'm', 'i' };
-static symbol s_2_28[2] = { 's', 'i' };
-static symbol s_2_29[2] = { 't', 'i' };
-static symbol s_2_30[2] = { 'v', 'i' };
-static symbol s_2_31[2] = { 'l', 'o' };
-static symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
-static symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
-static symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
-static symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
-static symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
+static const symbol s_2_0[2] = { 'l', 'a' };
+static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
+static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
+static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
+static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
+static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
+static const symbol s_2_6[2] = { 'l', 'e' };
+static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
+static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
+static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
+static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
+static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
+static const symbol s_2_12[2] = { 'n', 'e' };
+static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
+static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
+static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
+static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
+static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
+static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
+static const symbol s_2_19[2] = { 'c', 'i' };
+static const symbol s_2_20[2] = { 'l', 'i' };
+static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
+static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
+static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
+static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
+static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
+static const symbol s_2_26[3] = { 'g', 'l', 'i' };
+static const symbol s_2_27[2] = { 'm', 'i' };
+static const symbol s_2_28[2] = { 's', 'i' };
+static const symbol s_2_29[2] = { 't', 'i' };
+static const symbol s_2_30[2] = { 'v', 'i' };
+static const symbol s_2_31[2] = { 'l', 'o' };
+static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
+static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
+static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
+static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
+static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
-static struct among a_2[37] =
+static const struct among a_2[37] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 4, s_2_1, 0, -1, 0},
@@ -125,13 +139,13 @@ static struct among a_2[37] =
/* 36 */ { 4, s_2_36, 31, -1, 0}
};
-static symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
-static symbol s_3_2[2] = { 'a', 'r' };
-static symbol s_3_3[2] = { 'e', 'r' };
-static symbol s_3_4[2] = { 'i', 'r' };
+static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_3_2[2] = { 'a', 'r' };
+static const symbol s_3_3[2] = { 'e', 'r' };
+static const symbol s_3_4[2] = { 'i', 'r' };
-static struct among a_3[5] =
+static const struct among a_3[5] =
{
/* 0 */ { 4, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0},
@@ -140,12 +154,12 @@ static struct among a_3[5] =
/* 4 */ { 2, s_3_4, -1, 2, 0}
};
-static symbol s_4_0[2] = { 'i', 'c' };
-static symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_4_2[2] = { 'o', 's' };
-static symbol s_4_3[2] = { 'i', 'v' };
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'o', 's' };
+static const symbol s_4_3[2] = { 'i', 'v' };
-static struct among a_4[4] =
+static const struct among a_4[4] =
{
/* 0 */ { 2, s_4_0, -1, -1, 0},
/* 1 */ { 4, s_4_1, -1, -1, 0},
@@ -153,70 +167,70 @@ static struct among a_4[4] =
/* 3 */ { 2, s_4_3, -1, 1, 0}
};
-static symbol s_5_0[2] = { 'i', 'c' };
-static symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_5_2[2] = { 'i', 'v' };
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
-static struct among a_5[3] =
+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}
};
-static symbol s_6_0[3] = { 'i', 'c', 'a' };
-static symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
-static symbol s_6_2[3] = { 'o', 's', 'a' };
-static symbol s_6_3[4] = { 'i', 's', 't', 'a' };
-static symbol s_6_4[3] = { 'i', 'v', 'a' };
-static symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
-static symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
-static symbol s_6_7[3] = { 'i', 'c', 'e' };
-static symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
-static symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
-static symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
-static symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
-static symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
-static symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
-static symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
-static symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
-static symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
-static symbol s_6_17[3] = { 'o', 's', 'e' };
-static symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
-static symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_21[4] = { 'i', 's', 't', 'e' };
-static symbol s_6_22[3] = { 'i', 'v', 'e' };
-static symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
-static symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
-static symbol s_6_25[3] = { 'i', 'c', 'i' };
-static symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
-static symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
-static symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
-static symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
-static symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
-static symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
-static symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
-static symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
-static symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
-static symbol s_6_35[3] = { 'o', 's', 'i' };
-static symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
-static symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
-static symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
-static symbol s_6_39[4] = { 'i', 's', 't', 'i' };
-static symbol s_6_40[3] = { 'i', 'v', 'i' };
-static symbol s_6_41[3] = { 'i', 'c', 'o' };
-static symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
-static symbol s_6_43[3] = { 'o', 's', 'o' };
-static symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
-static symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
-static symbol s_6_46[3] = { 'i', 'v', 'o' };
-static symbol s_6_47[3] = { 'i', 't', 0xE0 };
-static symbol s_6_48[4] = { 'i', 's', 't', 0xE0 };
-static symbol s_6_49[4] = { 'i', 's', 't', 0xE8 };
-static symbol s_6_50[4] = { 'i', 's', 't', 0xEC };
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_6_2[3] = { 'o', 's', 'a' };
+static const symbol s_6_3[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_4[3] = { 'i', 'v', 'a' };
+static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
+static const symbol s_6_7[3] = { 'i', 'c', 'e' };
+static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
+static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
+static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
+static const symbol s_6_17[3] = { 'o', 's', 'e' };
+static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_22[3] = { 'i', 'v', 'e' };
+static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
+static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
+static const symbol s_6_25[3] = { 'i', 'c', 'i' };
+static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
+static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
+static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
+static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
+static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_6_35[3] = { 'o', 's', 'i' };
+static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_39[4] = { 'i', 's', 't', 'i' };
+static const symbol s_6_40[3] = { 'i', 'v', 'i' };
+static const symbol s_6_41[3] = { 'i', 'c', 'o' };
+static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_43[3] = { 'o', 's', 'o' };
+static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_46[3] = { 'i', 'v', 'o' };
+static const symbol s_6_47[3] = { 'i', 't', 0xE0 };
+static const symbol s_6_48[4] = { 'i', 's', 't', 0xE0 };
+static const symbol s_6_49[4] = { 'i', 's', 't', 0xE8 };
+static const symbol s_6_50[4] = { 'i', 's', 't', 0xEC };
-static struct among a_6[51] =
+static const struct among a_6[51] =
{
/* 0 */ { 3, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, -1, 3, 0},
@@ -271,95 +285,95 @@ static struct among a_6[51] =
/* 50 */ { 4, s_6_50, -1, 1, 0}
};
-static symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
-static symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
-static symbol s_7_2[3] = { 'a', 't', 'a' };
-static symbol s_7_3[3] = { 'i', 't', 'a' };
-static symbol s_7_4[3] = { 'u', 't', 'a' };
-static symbol s_7_5[3] = { 'a', 'v', 'a' };
-static symbol s_7_6[3] = { 'e', 'v', 'a' };
-static symbol s_7_7[3] = { 'i', 'v', 'a' };
-static symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
-static symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
-static symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
-static symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
-static symbol s_7_12[3] = { 'a', 'r', 'e' };
-static symbol s_7_13[3] = { 'e', 'r', 'e' };
-static symbol s_7_14[3] = { 'i', 'r', 'e' };
-static symbol s_7_15[4] = { 'a', 's', 's', 'e' };
-static symbol s_7_16[3] = { 'a', 't', 'e' };
-static symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
-static symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
-static symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
-static symbol s_7_20[3] = { 'e', 't', 'e' };
-static symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
-static symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
-static symbol s_7_23[3] = { 'i', 't', 'e' };
-static symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
-static symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
-static symbol s_7_26[3] = { 'u', 't', 'e' };
-static symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
-static symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
-static symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
-static symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
-static symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
-static symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
-static symbol s_7_33[4] = { 'a', 's', 's', 'i' };
-static symbol s_7_34[3] = { 'a', 't', 'i' };
-static symbol s_7_35[3] = { 'i', 't', 'i' };
-static symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
-static symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
-static symbol s_7_38[3] = { 'u', 't', 'i' };
-static symbol s_7_39[3] = { 'a', 'v', 'i' };
-static symbol s_7_40[3] = { 'e', 'v', 'i' };
-static symbol s_7_41[3] = { 'i', 'v', 'i' };
-static symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
-static symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
-static symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
-static symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
-static symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
-static symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
-static symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
-static symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
-static symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
-static symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
-static symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
-static symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
-static symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
-static symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
-static symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
-static symbol s_7_58[3] = { 'a', 'n', 'o' };
-static symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
-static symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
-static symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
-static symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
-static symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
-static symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
-static symbol s_7_65[3] = { 'o', 'n', 'o' };
-static symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
-static symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
-static symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
-static symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
-static symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
-static symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
-static symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
-static symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
-static symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
-static symbol s_7_75[3] = { 'a', 't', 'o' };
-static symbol s_7_76[3] = { 'i', 't', 'o' };
-static symbol s_7_77[3] = { 'u', 't', 'o' };
-static symbol s_7_78[3] = { 'a', 'v', 'o' };
-static symbol s_7_79[3] = { 'e', 'v', 'o' };
-static symbol s_7_80[3] = { 'i', 'v', 'o' };
-static symbol s_7_81[2] = { 'a', 'r' };
-static symbol s_7_82[2] = { 'i', 'r' };
-static symbol s_7_83[3] = { 'e', 'r', 0xE0 };
-static symbol s_7_84[3] = { 'i', 'r', 0xE0 };
-static symbol s_7_85[3] = { 'e', 'r', 0xF2 };
-static symbol s_7_86[3] = { 'i', 'r', 0xF2 };
+static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
+static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
+static const symbol s_7_2[3] = { 'a', 't', 'a' };
+static const symbol s_7_3[3] = { 'i', 't', 'a' };
+static const symbol s_7_4[3] = { 'u', 't', 'a' };
+static const symbol s_7_5[3] = { 'a', 'v', 'a' };
+static const symbol s_7_6[3] = { 'e', 'v', 'a' };
+static const symbol s_7_7[3] = { 'i', 'v', 'a' };
+static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
+static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_7_12[3] = { 'a', 'r', 'e' };
+static const symbol s_7_13[3] = { 'e', 'r', 'e' };
+static const symbol s_7_14[3] = { 'i', 'r', 'e' };
+static const symbol s_7_15[4] = { 'a', 's', 's', 'e' };
+static const symbol s_7_16[3] = { 'a', 't', 'e' };
+static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
+static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
+static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
+static const symbol s_7_20[3] = { 'e', 't', 'e' };
+static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
+static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
+static const symbol s_7_23[3] = { 'i', 't', 'e' };
+static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_26[3] = { 'u', 't', 'e' };
+static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
+static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
+static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_7_33[4] = { 'a', 's', 's', 'i' };
+static const symbol s_7_34[3] = { 'a', 't', 'i' };
+static const symbol s_7_35[3] = { 'i', 't', 'i' };
+static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_38[3] = { 'u', 't', 'i' };
+static const symbol s_7_39[3] = { 'a', 'v', 'i' };
+static const symbol s_7_40[3] = { 'e', 'v', 'i' };
+static const symbol s_7_41[3] = { 'i', 'v', 'i' };
+static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
+static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
+static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
+static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
+static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
+static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
+static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
+static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
+static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
+static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
+static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
+static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
+static const symbol s_7_58[3] = { 'a', 'n', 'o' };
+static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
+static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
+static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
+static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_65[3] = { 'o', 'n', 'o' };
+static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
+static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
+static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
+static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
+static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_75[3] = { 'a', 't', 'o' };
+static const symbol s_7_76[3] = { 'i', 't', 'o' };
+static const symbol s_7_77[3] = { 'u', 't', 'o' };
+static const symbol s_7_78[3] = { 'a', 'v', 'o' };
+static const symbol s_7_79[3] = { 'e', 'v', 'o' };
+static const symbol s_7_80[3] = { 'i', 'v', 'o' };
+static const symbol s_7_81[2] = { 'a', 'r' };
+static const symbol s_7_82[2] = { 'i', 'r' };
+static const symbol s_7_83[3] = { 'e', 'r', 0xE0 };
+static const symbol s_7_84[3] = { 'i', 'r', 0xE0 };
+static const symbol s_7_85[3] = { 'e', 'r', 0xF2 };
+static const symbol s_7_86[3] = { 'i', 'r', 0xF2 };
-static struct among a_7[87] =
+static const struct among a_7[87] =
{
/* 0 */ { 4, s_7_0, -1, 1, 0},
/* 1 */ { 4, s_7_1, -1, 1, 0},
@@ -450,40 +464,40 @@ static struct among a_7[87] =
/* 86 */ { 3, s_7_86, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
+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 };
-static unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
+static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
-static unsigned char g_CG[] = { 17 };
+static const unsigned char g_CG[] = { 17 };
-static symbol s_0[] = { 0xE0 };
-static symbol s_1[] = { 0xE8 };
-static symbol s_2[] = { 0xEC };
-static symbol s_3[] = { 0xF2 };
-static symbol s_4[] = { 0xF9 };
-static symbol s_5[] = { 'q', 'U' };
-static symbol s_6[] = { 'u' };
-static symbol s_7[] = { 'U' };
-static symbol s_8[] = { 'i' };
-static symbol s_9[] = { 'I' };
-static symbol s_10[] = { 'i' };
-static symbol s_11[] = { 'u' };
-static symbol s_12[] = { 'e' };
-static symbol s_13[] = { 'i', 'c' };
-static symbol s_14[] = { 'l', 'o', 'g' };
-static symbol s_15[] = { 'u' };
-static symbol s_16[] = { 'e', 'n', 't', 'e' };
-static symbol s_17[] = { 'a', 't' };
-static symbol s_18[] = { 'a', 't' };
-static symbol s_19[] = { 'i', 'c' };
-static symbol s_20[] = { 'i' };
-static symbol s_21[] = { 'h' };
+static const symbol s_0[] = { 0xE0 };
+static const symbol s_1[] = { 0xE8 };
+static const symbol s_2[] = { 0xEC };
+static const symbol s_3[] = { 0xF2 };
+static const symbol s_4[] = { 0xF9 };
+static const symbol s_5[] = { 'q', 'U' };
+static const symbol s_6[] = { 'u' };
+static const symbol s_7[] = { 'U' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'I' };
+static const symbol s_10[] = { 'i' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'e' };
+static const symbol s_13[] = { 'i', 'c' };
+static const symbol s_14[] = { 'l', 'o', 'g' };
+static const symbol s_15[] = { 'u' };
+static const symbol s_16[] = { 'e', 'n', 't', 'e' };
+static const symbol s_17[] = { 'a', 't' };
+static const symbol s_18[] = { 'a', 't' };
+static const symbol s_19[] = { 'i', 'c' };
+static const symbol s_20[] = { 'i' };
+static const symbol s_21[] = { 'h' };
static int r_prelude(struct SN_env * z) {
int among_var;
{ int c_test = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
- int c = z->c;
+ int c1 = z->c;
z->bra = z->c; /* [, line 36 */
among_var = find_among(z, a_0, 7); /* substring, line 36 */
if (!(among_var)) goto lab0;
@@ -491,38 +505,32 @@ static int r_prelude(struct SN_env * z) {
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_0); /* <-, line 37 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 37 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 38 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 38 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 39 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 39 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 40 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 40 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 41 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 41 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
+ { int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
if (ret < 0) return ret;
}
break;
@@ -533,47 +541,45 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
z->c = c_test;
}
while(1) { /* repeat, line 46 */
- int c = z->c;
+ int c2 = z->c;
while(1) { /* goto, line 46 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 249))) goto lab2;
+ int c3 = z->c;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
z->bra = z->c; /* [, line 47 */
- { int c = z->c; /* or, line 47 */
+ { int c4 = z->c; /* or, line 47 */
if (!(eq_s(z, 1, s_6))) goto lab4;
z->ket = z->c; /* ], line 47 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab4;
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_8))) goto lab2;
z->ket = z->c; /* ], line 48 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab2;
- { int ret;
- ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
if (ret < 0) return ret;
}
}
lab3:
- z->c = c;
+ z->c = c3;
break;
lab2:
- z->c = c;
+ z->c = c3;
if (z->c >= z->l) goto lab1;
z->c++; /* goto, line 46 */
}
continue;
lab1:
- z->c = c;
+ z->c = c2;
break;
}
return 1;
@@ -583,92 +589,78 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 58 */
- { int c = z->c; /* or, line 60 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab2;
- { int c = z->c; /* or, line 59 */
- if (!(out_grouping(z, g_v, 97, 249))) goto lab4;
- while(1) { /* gopast, line 59 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab5;
- break;
- lab5:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 59 */
+ { 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;
+ { int c3 = z->c; /* or, line 59 */
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 59 */
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
goto lab3;
lab4:
- z->c = c;
- if (!(in_grouping(z, g_v, 97, 249))) goto lab2;
- while(1) { /* gopast, line 59 */
- if (!(out_grouping(z, g_v, 97, 249))) goto lab6;
- break;
- lab6:
- if (z->c >= z->l) goto lab2;
- z->c++; /* gopast, line 59 */
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ { /* gopast */ /* non v, line 59 */
+ int ret = in_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
}
}
lab3:
goto lab1;
lab2:
- z->c = c;
- if (!(out_grouping(z, g_v, 97, 249))) goto lab0;
- { int c = z->c; /* or, line 61 */
- if (!(out_grouping(z, g_v, 97, 249))) goto lab8;
- while(1) { /* gopast, line 61 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab9;
- break;
- lab9:
- if (z->c >= z->l) goto lab8;
- z->c++; /* gopast, line 61 */
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 61 */
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 61 */
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
}
- goto lab7;
- lab8:
- z->c = c;
- if (!(in_grouping(z, g_v, 97, 249))) goto lab0;
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab0;
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 61 */
}
- lab7:
+ lab5:
;
}
lab1:
z->I[0] = z->c; /* setmark pV, line 62 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 64 */
- while(1) { /* gopast, line 65 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab11;
- break;
- lab11:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 65 */
+ { int c5 = z->c; /* do, line 64 */
+ { /* gopast */ /* grouping v, line 65 */
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 65 */
- if (!(out_grouping(z, g_v, 97, 249))) goto lab12;
- break;
- lab12:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 65 */
+ { /* 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 */
- while(1) { /* gopast, line 66 */
- if (!(in_grouping(z, g_v, 97, 249))) goto lab13;
- break;
- lab13:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 66 */
+ { /* gopast */ /* grouping v, line 66 */
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 66 */
- if (!(out_grouping(z, g_v, 97, 249))) goto lab14;
- break;
- lab14:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 66 */
+ { /* 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 */
- lab10:
- z->c = c;
+ lab7:
+ z->c = c5;
}
return 1;
}
@@ -676,22 +668,21 @@ static int r_mark_regions(struct SN_env * z) {
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 70 */
- int c = z->c;
+ 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
among_var = find_among(z, a_1, 3); /* substring, line 72 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 72 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
@@ -702,7 +693,7 @@ static int r_postlude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -726,8 +717,10 @@ static int r_R2(struct SN_env * z) {
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;
if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
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_var = find_among_b(z, a_3, 5); /* among, line 97 */
if (!(among_var)) return 0;
{ int ret = r_RV(z);
@@ -737,14 +730,12 @@ static int r_attached_pronoun(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 98 */
+ { int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
if (ret < 0) return ret;
}
break;
@@ -765,8 +756,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 111 */
+ { int ret = slice_del(z); /* delete, line 111 */
if (ret < 0) return ret;
}
break;
@@ -775,20 +765,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 113 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 113 */
+ { int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 114 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 114 */
z->ket = z->c; /* [, line 114 */
- if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 114 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 114 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 114 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 114 */
+ { int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
lab0:
@@ -800,8 +788,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 117 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
if (ret < 0) return ret;
}
break;
@@ -810,8 +797,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
@@ -820,8 +806,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 121 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
+ { int ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
@@ -830,8 +815,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 123 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 123 */
+ { int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
break;
@@ -840,35 +824,33 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 125 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 125 */
+ { int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 126 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab1; }
among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
- if (!(among_var)) { z->c = z->l - m; goto lab1; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 127 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 127 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 127 */
+ { int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab1; }
+ case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
z->ket = z->c; /* [, line 128 */
- if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m; goto lab1; }
+ if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 128 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 128 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 128 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 128 */
+ { int ret = slice_del(z); /* delete, line 128 */
if (ret < 0) return ret;
}
break;
@@ -882,24 +864,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 134 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 135 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab2; }
among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
- if (!(among_var)) { z->c = z->l - m; goto lab2; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab2; }
+ case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 137 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 137 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 137 */
+ { int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
break;
@@ -913,31 +894,28 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 142 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 142 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 143 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 143 */
z->ket = z->c; /* [, line 143 */
- if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 143 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 143 */
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 143 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
lab3:
@@ -950,68 +928,64 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 148 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 148 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 148 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 149 */
among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 149 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_vowel_suffix(struct SN_env * z) {
- { int m = z->l - z->c; (void) m; /* try, line 171 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 171 */
z->ket = z->c; /* [, line 172 */
- if (!(in_grouping_b(z, g_AEIO, 97, 242))) { z->c = z->l - m; goto lab0; }
+ if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 172 */
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 172 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 172 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 172 */
+ { int ret = slice_del(z); /* delete, line 172 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 173 */
- if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 173 */
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 173 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 173 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 173 */
+ { int ret = slice_del(z); /* delete, line 173 */
if (ret < 0) return ret;
}
lab0:
;
}
- { int m = z->l - z->c; (void) m; /* try, line 175 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 175 */
z->ket = z->c; /* [, line 176 */
- if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab1; }
+ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 176 */
- if (!(in_grouping_b(z, g_CG, 99, 103))) { z->c = z->l - m; goto lab1; }
+ if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m_keep; goto lab1; }
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call RV, line 176 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call RV, line 176 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab1:
@@ -1021,41 +995,41 @@ static int r_vowel_suffix(struct SN_env * z) {
}
extern int italian_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 182 */
+ { int c1 = z->c; /* do, line 182 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 182 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 183 */
+ { int c2 = z->c; /* do, line 183 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 183 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 184 */
- { int m = z->l - z->c; (void) m; /* do, line 185 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 185 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 186 */
- { int m = z->l - z->c; (void) m; /* or, line 186 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 186 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 186 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m5;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
if (ret < 0) return ret;
@@ -1063,29 +1037,29 @@ extern int italian_ISO_8859_1_stem(struct SN_env * z) {
}
lab4:
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 187 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 187 */
{ int ret = r_vowel_suffix(z);
if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
}
z->c = z->lb;
- { int c = z->c; /* do, line 189 */
+ { int c7 = z->c; /* do, line 189 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 189 */
if (ret < 0) return ret;
}
lab7:
- z->c = c;
+ z->c = c7;
}
return 1;
}
extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void italian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void italian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c b/libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c
index c28e2f0..61f15fa 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c
@@ -3,46 +3,60 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int norwegian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_other_suffix(struct SN_env * z);
static int r_consonant_pair(struct SN_env * z);
static int r_main_suffix(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * norwegian_ISO_8859_1_create_env(void);
extern void norwegian_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_0[1] = { 'a' };
-static symbol s_0_1[1] = { 'e' };
-static symbol s_0_2[3] = { 'e', 'd', 'e' };
-static symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
-static symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
-static symbol s_0_5[3] = { 'a', 'n', 'e' };
-static symbol s_0_6[3] = { 'e', 'n', 'e' };
-static symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
-static symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
-static symbol s_0_9[2] = { 'e', 'n' };
-static symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
-static symbol s_0_11[2] = { 'a', 'r' };
-static symbol s_0_12[2] = { 'e', 'r' };
-static symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
-static symbol s_0_14[1] = { 's' };
-static symbol s_0_15[2] = { 'a', 's' };
-static symbol s_0_16[2] = { 'e', 's' };
-static symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
-static symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
-static symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
-static symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
-static symbol s_0_21[3] = { 'e', 'n', 's' };
-static symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
-static symbol s_0_23[3] = { 'e', 'r', 's' };
-static symbol s_0_24[3] = { 'e', 't', 's' };
-static symbol s_0_25[2] = { 'e', 't' };
-static symbol s_0_26[3] = { 'h', 'e', 't' };
-static symbol s_0_27[3] = { 'e', 'r', 't' };
-static symbol s_0_28[3] = { 'a', 's', 't' };
-static struct among a_0[29] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[1] = { 'e' };
+static const symbol s_0_2[3] = { 'e', 'd', 'e' };
+static const symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_5[3] = { 'a', 'n', 'e' };
+static const symbol s_0_6[3] = { 'e', 'n', 'e' };
+static const symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
+static const symbol s_0_9[2] = { 'e', 'n' };
+static const symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_11[2] = { 'a', 'r' };
+static const symbol s_0_12[2] = { 'e', 'r' };
+static const symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_14[1] = { 's' };
+static const symbol s_0_15[2] = { 'a', 's' };
+static const symbol s_0_16[2] = { 'e', 's' };
+static const symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
+static const symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
+static const symbol s_0_21[3] = { 'e', 'n', 's' };
+static const symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_23[3] = { 'e', 'r', 's' };
+static const symbol s_0_24[3] = { 'e', 't', 's' };
+static const symbol s_0_25[2] = { 'e', 't' };
+static const symbol s_0_26[3] = { 'h', 'e', 't' };
+static const symbol s_0_27[3] = { 'e', 'r', 't' };
+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},
@@ -75,28 +89,28 @@ static struct among a_0[29] =
/* 28 */ { 3, s_0_28, -1, 1, 0}
};
-static symbol s_1_0[2] = { 'd', 't' };
-static symbol s_1_1[2] = { 'v', 't' };
+static const symbol s_1_0[2] = { 'd', 't' };
+static const symbol s_1_1[2] = { 'v', 't' };
-static struct among a_1[2] =
+static const struct among a_1[2] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0}
};
-static symbol s_2_0[3] = { 'l', 'e', 'g' };
-static symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
-static symbol s_2_2[2] = { 'i', 'g' };
-static symbol s_2_3[3] = { 'e', 'i', 'g' };
-static symbol s_2_4[3] = { 'l', 'i', 'g' };
-static symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
-static symbol s_2_6[3] = { 'e', 'l', 's' };
-static symbol s_2_7[3] = { 'l', 'o', 'v' };
-static symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
-static symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
-static symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
+static const symbol s_2_0[3] = { 'l', 'e', 'g' };
+static const symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
+static const symbol s_2_2[2] = { 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'i', 'g' };
+static const symbol s_2_4[3] = { 'l', 'i', 'g' };
+static const symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_6[3] = { 'e', 'l', 's' };
+static const symbol s_2_7[3] = { 'l', 'o', 'v' };
+static const symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
+static const symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
+static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
-static struct among a_2[11] =
+static const struct among a_2[11] =
{
/* 0 */ { 3, s_2_0, -1, 1, 0},
/* 1 */ { 4, s_2_1, 0, 1, 0},
@@ -111,88 +125,75 @@ static struct among a_2[11] =
/* 10 */ { 7, s_2_10, 9, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
+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 };
-static unsigned char g_s_ending[] = { 119, 125, 149, 1 };
+static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
-static symbol s_0[] = { 'k' };
-static symbol s_1[] = { 'e', 'r' };
+static const symbol s_0[] = { 'k' };
+static const symbol s_1[] = { 'e', 'r' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 30 */
- { int c = z->c + 3;
- if (0 > c || c > z->l) return 0;
- z->c = c; /* hop, line 30 */
+ { int ret = z->c + 3;
+ if (0 > ret || ret > z->l) return 0;
+ z->c = ret; /* hop, line 30 */
}
z->I[1] = z->c; /* setmark x, line 30 */
z->c = c_test;
}
- while(1) { /* goto, line 31 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 248))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- if (z->c >= z->l) return 0;
- z->c++; /* goto, line 31 */
- }
- while(1) { /* gopast, line 31 */
- if (!(out_grouping(z, g_v, 97, 248))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 31 */
+ if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
+ { /* gopast */ /* non v, line 31 */
+ 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 lab2;
+ if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
-lab2:
+lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 38 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 38 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 38 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_0, 29); /* substring, line 38 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 38 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 44 */
+ { int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 46 */
- if (!(in_grouping_b(z, g_s_ending, 98, 122))) goto lab1;
+ { int m2 = z->l - z->c; (void)m2; /* or, line 46 */
+ if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
if (!(eq_s_b(z, 1, s_0))) return 0;
- if (!(out_grouping_b(z, g_v, 97, 248))) return 0;
+ if (out_grouping_b(z, g_v, 97, 248, 0)) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 46 */
+ { int ret = slice_del(z); /* delete, line 46 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
if (ret < 0) return ret;
}
break;
@@ -202,24 +203,24 @@ static int r_main_suffix(struct SN_env * z) {
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 53 */
- { int m3; /* setlimit, line 54 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 54 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 54 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 54 */
- if (!(find_among_b(z, a_1, 2))) { z->lb = m3; return 0; } /* substring, line 54 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit; return 0; } /* substring, line 54 */
z->bra = z->c; /* ], line 54 */
- z->lb = m3;
+ z->lb = mlimit;
}
z->c = z->l - m_test;
}
if (z->c <= z->lb) return 0;
z->c--; /* next, line 59 */
z->bra = z->c; /* ], line 59 */
- { int ret;
- ret = slice_del(z); /* delete, line 59 */
+ { int ret = slice_del(z); /* delete, line 59 */
if (ret < 0) return ret;
}
return 1;
@@ -227,23 +228,23 @@ static int r_consonant_pair(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 63 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 63 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 63 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_2, 11); /* substring, line 63 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 63 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 67 */
+ { int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
break;
@@ -252,39 +253,39 @@ static int r_other_suffix(struct SN_env * z) {
}
extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 74 */
+ { int c1 = z->c; /* do, line 74 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 74 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
- { int m = z->l - z->c; (void) m; /* do, line 76 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 76 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 76 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 77 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 77 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 77 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 78 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 78 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 78 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
z->c = z->lb;
return 1;
@@ -292,5 +293,5 @@ extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
-extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_porter.c b/libstemmer_c/src_c/stem_ISO_8859_1_porter.c
index b2c6ad0..ce7df61 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_porter.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_porter.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int porter_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_Step_5b(struct SN_env * z);
static int r_Step_5a(struct SN_env * z);
static int r_Step_4(struct SN_env * z);
@@ -15,16 +21,24 @@ static int r_Step_1a(struct SN_env * z);
static int r_R2(struct SN_env * z);
static int r_R1(struct SN_env * z);
static int r_shortv(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * porter_ISO_8859_1_create_env(void);
extern void porter_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_0[1] = { 's' };
-static symbol s_0_1[3] = { 'i', 'e', 's' };
-static symbol s_0_2[4] = { 's', 's', 'e', 's' };
-static symbol s_0_3[2] = { 's', 's' };
-static struct among a_0[4] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 's' };
+static const symbol s_0_1[3] = { 'i', 'e', 's' };
+static const symbol s_0_2[4] = { 's', 's', 'e', 's' };
+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},
@@ -32,20 +46,20 @@ static struct among a_0[4] =
/* 3 */ { 2, s_0_3, 0, -1, 0}
};
-static symbol s_1_1[2] = { 'b', 'b' };
-static symbol s_1_2[2] = { 'd', 'd' };
-static symbol s_1_3[2] = { 'f', 'f' };
-static symbol s_1_4[2] = { 'g', 'g' };
-static symbol s_1_5[2] = { 'b', 'l' };
-static symbol s_1_6[2] = { 'm', 'm' };
-static symbol s_1_7[2] = { 'n', 'n' };
-static symbol s_1_8[2] = { 'p', 'p' };
-static symbol s_1_9[2] = { 'r', 'r' };
-static symbol s_1_10[2] = { 'a', 't' };
-static symbol s_1_11[2] = { 't', 't' };
-static symbol s_1_12[2] = { 'i', 'z' };
-
-static struct among a_1[13] =
+static const symbol s_1_1[2] = { 'b', 'b' };
+static const symbol s_1_2[2] = { 'd', 'd' };
+static const symbol s_1_3[2] = { 'f', 'f' };
+static const symbol s_1_4[2] = { 'g', 'g' };
+static const symbol s_1_5[2] = { 'b', 'l' };
+static const symbol s_1_6[2] = { 'm', 'm' };
+static const symbol s_1_7[2] = { 'n', 'n' };
+static const symbol s_1_8[2] = { 'p', 'p' };
+static const symbol s_1_9[2] = { 'r', 'r' };
+static const symbol s_1_10[2] = { 'a', 't' };
+static const symbol s_1_11[2] = { 't', 't' };
+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},
@@ -62,39 +76,39 @@ static struct among a_1[13] =
/* 12 */ { 2, s_1_12, 0, 1, 0}
};
-static symbol s_2_0[2] = { 'e', 'd' };
-static symbol s_2_1[3] = { 'e', 'e', 'd' };
-static symbol s_2_2[3] = { 'i', 'n', 'g' };
+static const symbol s_2_0[2] = { 'e', 'd' };
+static const symbol s_2_1[3] = { 'e', 'e', 'd' };
+static const symbol s_2_2[3] = { 'i', 'n', 'g' };
-static struct among a_2[3] =
+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}
};
-static symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
-static symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
-static symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
-static symbol s_3_3[3] = { 'e', 'l', 'i' };
-static symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
-static symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
-static symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
-static symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
-static symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
-static symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
-static symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
-static symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
-static symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
-static symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
-static symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
-static symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
-static symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
-static symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
-
-static struct among a_3[20] =
+static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_3_3[3] = { 'e', 'l', 'i' };
+static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+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},
@@ -118,15 +132,15 @@ static struct among a_3[20] =
/* 19 */ { 7, s_3_19, -1, 12, 0}
};
-static symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
-static symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
-static symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
-static symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
-static symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
-static symbol s_4_5[3] = { 'f', 'u', 'l' };
-static symbol s_4_6[4] = { 'n', 'e', 's', 's' };
+static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_4_5[3] = { 'f', 'u', 'l' };
+static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
-static struct among a_4[7] =
+static const struct among a_4[7] =
{
/* 0 */ { 5, s_4_0, -1, 2, 0},
/* 1 */ { 5, s_4_1, -1, 3, 0},
@@ -137,27 +151,27 @@ static struct among a_4[7] =
/* 6 */ { 4, s_4_6, -1, 3, 0}
};
-static symbol s_5_0[2] = { 'i', 'c' };
-static symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
-static symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
-static symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_5_5[3] = { 'a', 't', 'e' };
-static symbol s_5_6[3] = { 'i', 'v', 'e' };
-static symbol s_5_7[3] = { 'i', 'z', 'e' };
-static symbol s_5_8[3] = { 'i', 't', 'i' };
-static symbol s_5_9[2] = { 'a', 'l' };
-static symbol s_5_10[3] = { 'i', 's', 'm' };
-static symbol s_5_11[3] = { 'i', 'o', 'n' };
-static symbol s_5_12[2] = { 'e', 'r' };
-static symbol s_5_13[3] = { 'o', 'u', 's' };
-static symbol s_5_14[3] = { 'a', 'n', 't' };
-static symbol s_5_15[3] = { 'e', 'n', 't' };
-static symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
-static symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
-static symbol s_5_18[2] = { 'o', 'u' };
-
-static struct among a_5[19] =
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_5_5[3] = { 'a', 't', 'e' };
+static const symbol s_5_6[3] = { 'i', 'v', 'e' };
+static const symbol s_5_7[3] = { 'i', 'z', 'e' };
+static const symbol s_5_8[3] = { 'i', 't', 'i' };
+static const symbol s_5_9[2] = { 'a', 'l' };
+static const symbol s_5_10[3] = { 'i', 's', 'm' };
+static const symbol s_5_11[3] = { 'i', 'o', 'n' };
+static const symbol s_5_12[2] = { 'e', 'r' };
+static const symbol s_5_13[3] = { 'o', 'u', 's' };
+static const symbol s_5_14[3] = { 'a', 'n', 't' };
+static const symbol s_5_15[3] = { 'e', 'n', 't' };
+static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
+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},
@@ -180,50 +194,50 @@ static struct among a_5[19] =
/* 18 */ { 2, s_5_18, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1 };
-
-static unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
-
-static symbol s_0[] = { 's', 's' };
-static symbol s_1[] = { 'i' };
-static symbol s_2[] = { 'e', 'e' };
-static symbol s_3[] = { 'e' };
-static symbol s_4[] = { 'e' };
-static symbol s_5[] = { 'y' };
-static symbol s_6[] = { 'Y' };
-static symbol s_7[] = { 'i' };
-static symbol s_8[] = { 't', 'i', 'o', 'n' };
-static symbol s_9[] = { 'e', 'n', 'c', 'e' };
-static symbol s_10[] = { 'a', 'n', 'c', 'e' };
-static symbol s_11[] = { 'a', 'b', 'l', 'e' };
-static symbol s_12[] = { 'e', 'n', 't' };
-static symbol s_13[] = { 'e' };
-static symbol s_14[] = { 'i', 'z', 'e' };
-static symbol s_15[] = { 'a', 't', 'e' };
-static symbol s_16[] = { 'a', 'l' };
-static symbol s_17[] = { 'a', 'l' };
-static symbol s_18[] = { 'f', 'u', 'l' };
-static symbol s_19[] = { 'o', 'u', 's' };
-static symbol s_20[] = { 'i', 'v', 'e' };
-static symbol s_21[] = { 'b', 'l', 'e' };
-static symbol s_22[] = { 'a', 'l' };
-static symbol s_23[] = { 'i', 'c' };
-static symbol s_24[] = { 's' };
-static symbol s_25[] = { 't' };
-static symbol s_26[] = { 'e' };
-static symbol s_27[] = { 'l' };
-static symbol s_28[] = { 'l' };
-static symbol s_29[] = { 'y' };
-static symbol s_30[] = { 'Y' };
-static symbol s_31[] = { 'y' };
-static symbol s_32[] = { 'Y' };
-static symbol s_33[] = { 'Y' };
-static symbol s_34[] = { 'y' };
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
+
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+
+static const symbol s_0[] = { 's', 's' };
+static const symbol s_1[] = { 'i' };
+static const symbol s_2[] = { 'e', 'e' };
+static const symbol s_3[] = { 'e' };
+static const symbol s_4[] = { 'e' };
+static const symbol s_5[] = { 'y' };
+static const symbol s_6[] = { 'Y' };
+static const symbol s_7[] = { 'i' };
+static const symbol s_8[] = { 't', 'i', 'o', 'n' };
+static const symbol s_9[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_10[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_11[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_12[] = { 'e', 'n', 't' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'i', 'z', 'e' };
+static const symbol s_15[] = { 'a', 't', 'e' };
+static const symbol s_16[] = { 'a', 'l' };
+static const symbol s_17[] = { 'a', 'l' };
+static const symbol s_18[] = { 'f', 'u', 'l' };
+static const symbol s_19[] = { 'o', 'u', 's' };
+static const symbol s_20[] = { 'i', 'v', 'e' };
+static const symbol s_21[] = { 'b', 'l', 'e' };
+static const symbol s_22[] = { 'a', 'l' };
+static const symbol s_23[] = { 'i', 'c' };
+static const symbol s_24[] = { 's' };
+static const symbol s_25[] = { 't' };
+static const symbol s_26[] = { 'e' };
+static const symbol s_27[] = { 'l' };
+static const symbol s_28[] = { 'l' };
+static const symbol s_29[] = { 'y' };
+static const symbol s_30[] = { 'Y' };
+static const symbol s_31[] = { 'y' };
+static const symbol s_32[] = { 'Y' };
+static const symbol s_33[] = { 'Y' };
+static const symbol s_34[] = { 'y' };
static int r_shortv(struct SN_env * z) {
- if (!(out_grouping_b(z, g_v_WXY, 89, 121))) return 0;
- if (!(in_grouping_b(z, g_v, 97, 121))) return 0;
- if (!(out_grouping_b(z, g_v, 97, 121))) return 0;
+ 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;
}
@@ -240,26 +254,24 @@ static int r_R2(struct SN_env * z) {
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;
among_var = find_among_b(z, a_0, 4); /* substring, line 25 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 29 */
+ { int ret = slice_del(z); /* delete, line 29 */
if (ret < 0) return ret;
}
break;
@@ -270,6 +282,7 @@ static int r_Step_1a(struct SN_env * z) {
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;
among_var = find_among_b(z, a_2, 3); /* substring, line 34 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
@@ -280,27 +293,24 @@ static int r_Step_1b(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 35 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
+ { int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test = z->l - z->c; /* test, line 38 */
- while(1) { /* gopast, line 38 */
- if (!(in_grouping_b(z, g_v, 97, 121))) goto lab0;
- break;
- lab0:
- if (z->c <= z->lb) return 0;
- z->c--; /* gopast, line 38 */
+ { /* gopast */ /* grouping v, line 38 */
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
}
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 38 */
+ { int ret = slice_del(z); /* delete, line 38 */
if (ret < 0) return ret;
}
{ int m_test = 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
among_var = find_among_b(z, a_1, 13); /* substring, line 39 */
if (!(among_var)) return 0;
z->c = z->l - m_test;
@@ -308,11 +318,9 @@ static int r_Step_1b(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
@@ -321,8 +329,7 @@ static int r_Step_1b(struct SN_env * z) {
if (z->c <= z->lb) return 0;
z->c--; /* next, line 44 */
z->bra = z->c; /* ], line 44 */
- { int ret;
- ret = slice_del(z); /* delete, line 44 */
+ { int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
@@ -335,11 +342,9 @@ static int r_Step_1b(struct SN_env * z) {
}
z->c = z->l - m_test;
}
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
@@ -351,24 +356,21 @@ static int r_Step_1b(struct SN_env * z) {
static int r_Step_1c(struct SN_env * z) {
z->ket = z->c; /* [, line 52 */
- { int m = z->l - z->c; (void) m; /* or, line 52 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 52 */
if (!(eq_s_b(z, 1, s_5))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_6))) return 0;
}
lab0:
z->bra = z->c; /* ], line 52 */
- while(1) { /* gopast, line 53 */
- if (!(in_grouping_b(z, g_v, 97, 121))) goto lab2;
- break;
- lab2:
- if (z->c <= z->lb) return 0;
- z->c--; /* gopast, line 53 */
+ { /* gopast */ /* grouping v, line 53 */
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
if (ret < 0) return ret;
}
return 1;
@@ -377,6 +379,7 @@ lab0:
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;
among_var = find_among_b(z, a_3, 20); /* substring, line 58 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
@@ -387,86 +390,72 @@ static int r_Step_2(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
+ { int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
+ { int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
+ { int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret;
- ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret;
- ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret;
- ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
+ { int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret;
- ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret;
- ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
+ { int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 13:
- { int ret;
- ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 14:
- { int ret;
- ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
+ { int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
@@ -477,6 +466,7 @@ static int r_Step_2(struct SN_env * z) {
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;
among_var = find_among_b(z, a_4, 7); /* substring, line 82 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
@@ -487,20 +477,17 @@ static int r_Step_3(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
+ { int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
+ { int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 87 */
+ { int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
@@ -511,6 +498,7 @@ static int r_Step_3(struct SN_env * z) {
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;
among_var = find_among_b(z, a_5, 19); /* substring, line 92 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
@@ -521,22 +509,20 @@ static int r_Step_4(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 95 */
+ { int ret = slice_del(z); /* delete, line 95 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 96 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 96 */
if (!(eq_s_b(z, 1, s_24))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_25))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 96 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
break;
@@ -548,31 +534,30 @@ static int r_Step_5a(struct SN_env * z) {
z->ket = z->c; /* [, line 101 */
if (!(eq_s_b(z, 1, s_26))) return 0;
z->bra = z->c; /* ], line 101 */
- { int m = z->l - z->c; (void) m; /* or, line 102 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 102 */
{ int ret = r_R2(z);
if (ret == 0) goto lab1; /* call R2, line 102 */
if (ret < 0) return ret;
}
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 102 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 102 */
{ int ret = r_shortv(z);
if (ret == 0) goto lab2; /* call shortv, line 102 */
if (ret < 0) return ret;
}
return 0;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 103 */
+ { int ret = slice_del(z); /* delete, line 103 */
if (ret < 0) return ret;
}
return 1;
@@ -587,8 +572,7 @@ static int r_Step_5b(struct SN_env * z) {
if (ret < 0) return ret;
}
if (!(eq_s_b(z, 1, s_28))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 109 */
+ { int ret = slice_del(z); /* delete, line 109 */
if (ret < 0) return ret;
}
return 1;
@@ -596,181 +580,170 @@ static int r_Step_5b(struct SN_env * z) {
extern int porter_ISO_8859_1_stem(struct SN_env * z) {
z->B[0] = 0; /* unset Y_found, line 115 */
- { int c = z->c; /* do, line 116 */
+ { int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
if (!(eq_s(z, 1, s_29))) goto lab0;
z->ket = z->c; /* ], line 116 */
- { int ret;
- ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
+ { int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 117 */
+ { int c2 = z->c; /* do, line 117 */
while(1) { /* repeat, line 117 */
- int c = z->c;
+ int c3 = z->c;
while(1) { /* goto, line 117 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 121))) goto lab3;
+ int c4 = z->c;
+ if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;
z->bra = z->c; /* [, line 117 */
if (!(eq_s(z, 1, s_31))) goto lab3;
z->ket = z->c; /* ], line 117 */
- z->c = c;
+ z->c = c4;
break;
lab3:
- z->c = c;
+ z->c = c4;
if (z->c >= z->l) goto lab2;
z->c++; /* goto, line 117 */
}
- { int ret;
- ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
+ { int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
continue;
lab2:
- z->c = c;
+ z->c = c3;
break;
}
- z->c = c;
+ z->c = c2;
}
z->I[0] = z->l;
z->I[1] = z->l;
- { int c = z->c; /* do, line 121 */
- while(1) { /* gopast, line 122 */
- if (!(in_grouping(z, g_v, 97, 121))) goto lab5;
- break;
- lab5:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 122 */
+ { int c5 = z->c; /* do, line 121 */
+ { /* gopast */ /* grouping v, line 122 */
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 122 */
- if (!(out_grouping(z, g_v, 97, 121))) goto lab6;
- break;
- lab6:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 122 */
+ { /* 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 */
- while(1) { /* gopast, line 123 */
- if (!(in_grouping(z, g_v, 97, 121))) goto lab7;
- break;
- lab7:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 123 */
+ { /* gopast */ /* grouping v, line 123 */
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 123 */
- if (!(out_grouping(z, g_v, 97, 121))) goto lab8;
- break;
- lab8:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 123 */
+ { /* 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 */
lab4:
- z->c = c;
+ z->c = c5;
}
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
- { int m = z->l - z->c; (void) m; /* do, line 127 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 127 */
{ int ret = r_Step_1a(z);
- if (ret == 0) goto lab9; /* call Step_1a, line 127 */
+ if (ret == 0) goto lab5; /* call Step_1a, line 127 */
if (ret < 0) return ret;
}
- lab9:
- z->c = z->l - m;
+ lab5:
+ z->c = z->l - m6;
}
- { int m = z->l - z->c; (void) m; /* do, line 128 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 128 */
{ int ret = r_Step_1b(z);
- if (ret == 0) goto lab10; /* call Step_1b, line 128 */
+ if (ret == 0) goto lab6; /* call Step_1b, line 128 */
if (ret < 0) return ret;
}
- lab10:
- z->c = z->l - m;
+ lab6:
+ z->c = z->l - m7;
}
- { int m = z->l - z->c; (void) m; /* do, line 129 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 129 */
{ int ret = r_Step_1c(z);
- if (ret == 0) goto lab11; /* call Step_1c, line 129 */
+ if (ret == 0) goto lab7; /* call Step_1c, line 129 */
if (ret < 0) return ret;
}
- lab11:
- z->c = z->l - m;
+ lab7:
+ z->c = z->l - m8;
}
- { int m = z->l - z->c; (void) m; /* do, line 130 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 130 */
{ int ret = r_Step_2(z);
- if (ret == 0) goto lab12; /* call Step_2, line 130 */
+ if (ret == 0) goto lab8; /* call Step_2, line 130 */
if (ret < 0) return ret;
}
- lab12:
- z->c = z->l - m;
+ lab8:
+ z->c = z->l - m9;
}
- { int m = z->l - z->c; (void) m; /* do, line 131 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 131 */
{ int ret = r_Step_3(z);
- if (ret == 0) goto lab13; /* call Step_3, line 131 */
+ if (ret == 0) goto lab9; /* call Step_3, line 131 */
if (ret < 0) return ret;
}
- lab13:
- z->c = z->l - m;
+ lab9:
+ z->c = z->l - m10;
}
- { int m = z->l - z->c; (void) m; /* do, line 132 */
+ { int m11 = z->l - z->c; (void)m11; /* do, line 132 */
{ int ret = r_Step_4(z);
- if (ret == 0) goto lab14; /* call Step_4, line 132 */
+ if (ret == 0) goto lab10; /* call Step_4, line 132 */
if (ret < 0) return ret;
}
- lab14:
- z->c = z->l - m;
+ lab10:
+ z->c = z->l - m11;
}
- { int m = z->l - z->c; (void) m; /* do, line 133 */
+ { int m12 = z->l - z->c; (void)m12; /* do, line 133 */
{ int ret = r_Step_5a(z);
- if (ret == 0) goto lab15; /* call Step_5a, line 133 */
+ if (ret == 0) goto lab11; /* call Step_5a, line 133 */
if (ret < 0) return ret;
}
- lab15:
- z->c = z->l - m;
+ lab11:
+ z->c = z->l - m12;
}
- { int m = z->l - z->c; (void) m; /* do, line 134 */
+ { int m13 = z->l - z->c; (void)m13; /* do, line 134 */
{ int ret = r_Step_5b(z);
- if (ret == 0) goto lab16; /* call Step_5b, line 134 */
+ if (ret == 0) goto lab12; /* call Step_5b, line 134 */
if (ret < 0) return ret;
}
- lab16:
- z->c = z->l - m;
+ lab12:
+ z->c = z->l - m13;
}
z->c = z->lb;
- { int c = z->c; /* do, line 137 */
- if (!(z->B[0])) goto lab17; /* Boolean test Y_found, line 137 */
+ { int c14 = z->c; /* do, line 137 */
+ if (!(z->B[0])) goto lab13; /* Boolean test Y_found, line 137 */
while(1) { /* repeat, line 137 */
- int c = z->c;
+ int c15 = z->c;
while(1) { /* goto, line 137 */
- int c = z->c;
+ int c16 = z->c;
z->bra = z->c; /* [, line 137 */
- if (!(eq_s(z, 1, s_33))) goto lab19;
+ if (!(eq_s(z, 1, s_33))) goto lab15;
z->ket = z->c; /* ], line 137 */
- z->c = c;
+ z->c = c16;
break;
- lab19:
- z->c = c;
- if (z->c >= z->l) goto lab18;
+ lab15:
+ z->c = c16;
+ if (z->c >= z->l) goto lab14;
z->c++; /* goto, line 137 */
}
- { int ret;
- ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
+ { int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
if (ret < 0) return ret;
}
continue;
- lab18:
- z->c = c;
+ lab14:
+ z->c = c15;
break;
}
- lab17:
- z->c = c;
+ lab13:
+ z->c = c14;
}
return 1;
}
extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
-extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_portuguese.c b/libstemmer_c/src_c/stem_ISO_8859_1_portuguese.c
index d586909..1ae77a8 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_portuguese.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_portuguese.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int portuguese_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_residual_form(struct SN_env * z);
static int r_residual_suffix(struct SN_env * z);
static int r_verb_suffix(struct SN_env * z);
@@ -14,36 +20,44 @@ static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * portuguese_ISO_8859_1_create_env(void);
extern void portuguese_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 0xE3 };
-static symbol s_0_2[1] = { 0xF5 };
-static struct among a_0[3] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xE3 };
+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}
};
-static symbol s_1_1[2] = { 'a', '~' };
-static symbol s_1_2[2] = { 'o', '~' };
+static const symbol s_1_1[2] = { 'a', '~' };
+static const symbol s_1_2[2] = { 'o', '~' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[2] = { 'i', 'c' };
-static symbol s_2_1[2] = { 'a', 'd' };
-static symbol s_2_2[2] = { 'o', 's' };
-static symbol s_2_3[2] = { 'i', 'v' };
+static const symbol s_2_0[2] = { 'i', 'c' };
+static const symbol s_2_1[2] = { 'a', 'd' };
+static const symbol s_2_2[2] = { 'o', 's' };
+static const symbol s_2_3[2] = { 'i', 'v' };
-static struct among a_2[4] =
+static const struct among a_2[4] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
@@ -51,75 +65,75 @@ static struct among a_2[4] =
/* 3 */ { 2, s_2_3, -1, 1, 0}
};
-static symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
-static symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
-static symbol s_3_2[4] = { 0xED, 'v', 'e', 'l' };
+static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
+static const symbol s_3_2[4] = { 0xED, 'v', 'e', 'l' };
-static struct among a_3[3] =
+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}
};
-static symbol s_4_0[2] = { 'i', 'c' };
-static symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_4_2[2] = { 'i', 'v' };
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'i', 'v' };
-static struct among a_4[3] =
+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}
};
-static symbol s_5_0[3] = { 'i', 'c', 'a' };
-static symbol s_5_1[5] = { 0xE2, 'n', 'c', 'i', 'a' };
-static symbol s_5_2[5] = { 0xEA, 'n', 'c', 'i', 'a' };
-static symbol s_5_3[3] = { 'i', 'r', 'a' };
-static symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
-static symbol s_5_5[3] = { 'o', 's', 'a' };
-static symbol s_5_6[4] = { 'i', 's', 't', 'a' };
-static symbol s_5_7[3] = { 'i', 'v', 'a' };
-static symbol s_5_8[3] = { 'e', 'z', 'a' };
-static symbol s_5_9[5] = { 'l', 'o', 'g', 0xED, 'a' };
-static symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
-static symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
-static symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
-static symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
-static symbol s_5_14[4] = { 0xE1, 'v', 'e', 'l' };
-static symbol s_5_15[4] = { 0xED, 'v', 'e', 'l' };
-static symbol s_5_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
-static symbol s_5_17[3] = { 'i', 'c', 'o' };
-static symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
-static symbol s_5_19[3] = { 'o', 's', 'o' };
-static symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
-static symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
-static symbol s_5_22[3] = { 'i', 'v', 'o' };
-static symbol s_5_23[5] = { 'a', 0xE7, 'a', '~', 'o' };
-static symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
-static symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
-static symbol s_5_26[6] = { 0xEA, 'n', 'c', 'i', 'a', 's' };
-static symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
-static symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
-static symbol s_5_29[4] = { 'o', 's', 'a', 's' };
-static symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
-static symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
-static symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
-static symbol s_5_33[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
-static symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
-static symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
-static symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
-static symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
-static symbol s_5_38[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
-static symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
-static symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
-static symbol s_5_41[4] = { 'o', 's', 'o', 's' };
-static symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
-static symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
-static symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
-
-static struct among a_5[45] =
+static const symbol s_5_0[3] = { 'i', 'c', 'a' };
+static const symbol s_5_1[5] = { 0xE2, 'n', 'c', 'i', 'a' };
+static const symbol s_5_2[5] = { 0xEA, 'n', 'c', 'i', 'a' };
+static const symbol s_5_3[3] = { 'i', 'r', 'a' };
+static const symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_5_5[3] = { 'o', 's', 'a' };
+static const symbol s_5_6[4] = { 'i', 's', 't', 'a' };
+static const symbol s_5_7[3] = { 'i', 'v', 'a' };
+static const symbol s_5_8[3] = { 'e', 'z', 'a' };
+static const symbol s_5_9[5] = { 'l', 'o', 'g', 0xED, 'a' };
+static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
+static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_14[4] = { 0xE1, 'v', 'e', 'l' };
+static const symbol s_5_15[4] = { 0xED, 'v', 'e', 'l' };
+static const symbol s_5_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
+static const symbol s_5_17[3] = { 'i', 'c', 'o' };
+static const symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_5_19[3] = { 'o', 's', 'o' };
+static const symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_22[3] = { 'i', 'v', 'o' };
+static const symbol s_5_23[5] = { 'a', 0xE7, 'a', '~', 'o' };
+static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_5_26[6] = { 0xEA, 'n', 'c', 'i', 'a', 's' };
+static const symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_5_29[4] = { 'o', 's', 'a', 's' };
+static const symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
+static const symbol s_5_33[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
+static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_38[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
+static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
+static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
+static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
+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},
@@ -168,128 +182,128 @@ static struct among a_5[45] =
/* 44 */ { 4, s_5_44, -1, 8, 0}
};
-static symbol s_6_0[3] = { 'a', 'd', 'a' };
-static symbol s_6_1[3] = { 'i', 'd', 'a' };
-static symbol s_6_2[2] = { 'i', 'a' };
-static symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
-static symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
-static symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
-static symbol s_6_6[3] = { 'a', 'r', 'a' };
-static symbol s_6_7[3] = { 'e', 'r', 'a' };
-static symbol s_6_8[3] = { 'i', 'r', 'a' };
-static symbol s_6_9[3] = { 'a', 'v', 'a' };
-static symbol s_6_10[4] = { 'a', 's', 's', 'e' };
-static symbol s_6_11[4] = { 'e', 's', 's', 'e' };
-static symbol s_6_12[4] = { 'i', 's', 's', 'e' };
-static symbol s_6_13[4] = { 'a', 's', 't', 'e' };
-static symbol s_6_14[4] = { 'e', 's', 't', 'e' };
-static symbol s_6_15[4] = { 'i', 's', 't', 'e' };
-static symbol s_6_16[2] = { 'e', 'i' };
-static symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
-static symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
-static symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
-static symbol s_6_20[2] = { 'a', 'm' };
-static symbol s_6_21[3] = { 'i', 'a', 'm' };
-static symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
-static symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
-static symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
-static symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
-static symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
-static symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
-static symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
-static symbol s_6_29[2] = { 'e', 'm' };
-static symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
-static symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
-static symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
-static symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
-static symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
-static symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
-static symbol s_6_36[3] = { 'a', 'd', 'o' };
-static symbol s_6_37[3] = { 'i', 'd', 'o' };
-static symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
-static symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
-static symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
-static symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
-static symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
-static symbol s_6_44[2] = { 'a', 'r' };
-static symbol s_6_45[2] = { 'e', 'r' };
-static symbol s_6_46[2] = { 'i', 'r' };
-static symbol s_6_47[2] = { 'a', 's' };
-static symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
-static symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
-static symbol s_6_50[3] = { 'i', 'a', 's' };
-static symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
-static symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
-static symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
-static symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
-static symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
-static symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
-static symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
-static symbol s_6_58[2] = { 'e', 's' };
-static symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
-static symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
-static symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
-static symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
-static symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
-static symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
-static symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
-static symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
-static symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
-static symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
-static symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
-static symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
-static symbol s_6_71[2] = { 'i', 's' };
-static symbol s_6_72[3] = { 'a', 'i', 's' };
-static symbol s_6_73[3] = { 'e', 'i', 's' };
-static symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
-static symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
-static symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
-static symbol s_6_77[5] = { 0xE1, 'r', 'e', 'i', 's' };
-static symbol s_6_78[5] = { 0xE9, 'r', 'e', 'i', 's' };
-static symbol s_6_79[5] = { 0xED, 'r', 'e', 'i', 's' };
-static symbol s_6_80[6] = { 0xE1, 's', 's', 'e', 'i', 's' };
-static symbol s_6_81[6] = { 0xE9, 's', 's', 'e', 'i', 's' };
-static symbol s_6_82[6] = { 0xED, 's', 's', 'e', 'i', 's' };
-static symbol s_6_83[5] = { 0xE1, 'v', 'e', 'i', 's' };
-static symbol s_6_84[4] = { 0xED, 'e', 'i', 's' };
-static symbol s_6_85[6] = { 'a', 'r', 0xED, 'e', 'i', 's' };
-static symbol s_6_86[6] = { 'e', 'r', 0xED, 'e', 'i', 's' };
-static symbol s_6_87[6] = { 'i', 'r', 0xED, 'e', 'i', 's' };
-static symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
-static symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
-static symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
-static symbol s_6_91[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
-static symbol s_6_92[6] = { 0xE9, 'r', 'a', 'm', 'o', 's' };
-static symbol s_6_93[6] = { 0xED, 'r', 'a', 'm', 'o', 's' };
-static symbol s_6_94[6] = { 0xE1, 'v', 'a', 'm', 'o', 's' };
-static symbol s_6_95[5] = { 0xED, 'a', 'm', 'o', 's' };
-static symbol s_6_96[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
-static symbol s_6_97[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
-static symbol s_6_98[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
-static symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
-static symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
-static symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
-static symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
-static symbol s_6_103[7] = { 0xE1, 's', 's', 'e', 'm', 'o', 's' };
-static symbol s_6_104[7] = { 0xEA, 's', 's', 'e', 'm', 'o', 's' };
-static symbol s_6_105[7] = { 0xED, 's', 's', 'e', 'm', 'o', 's' };
-static symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
-static symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
-static symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
-static symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
-static symbol s_6_110[4] = { 0xE1, 'm', 'o', 's' };
-static symbol s_6_111[4] = { 'a', 'r', 0xE1, 's' };
-static symbol s_6_112[4] = { 'e', 'r', 0xE1, 's' };
-static symbol s_6_113[4] = { 'i', 'r', 0xE1, 's' };
-static symbol s_6_114[2] = { 'e', 'u' };
-static symbol s_6_115[2] = { 'i', 'u' };
-static symbol s_6_116[2] = { 'o', 'u' };
-static symbol s_6_117[3] = { 'a', 'r', 0xE1 };
-static symbol s_6_118[3] = { 'e', 'r', 0xE1 };
-static symbol s_6_119[3] = { 'i', 'r', 0xE1 };
-
-static struct among a_6[120] =
+static const symbol s_6_0[3] = { 'a', 'd', 'a' };
+static const symbol s_6_1[3] = { 'i', 'd', 'a' };
+static const symbol s_6_2[2] = { 'i', 'a' };
+static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
+static const symbol s_6_6[3] = { 'a', 'r', 'a' };
+static const symbol s_6_7[3] = { 'e', 'r', 'a' };
+static const symbol s_6_8[3] = { 'i', 'r', 'a' };
+static const symbol s_6_9[3] = { 'a', 'v', 'a' };
+static const symbol s_6_10[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_11[4] = { 'e', 's', 's', 'e' };
+static const symbol s_6_12[4] = { 'i', 's', 's', 'e' };
+static const symbol s_6_13[4] = { 'a', 's', 't', 'e' };
+static const symbol s_6_14[4] = { 'e', 's', 't', 'e' };
+static const symbol s_6_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_16[2] = { 'e', 'i' };
+static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
+static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_6_20[2] = { 'a', 'm' };
+static const symbol s_6_21[3] = { 'i', 'a', 'm' };
+static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
+static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
+static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
+static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
+static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
+static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
+static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
+static const symbol s_6_29[2] = { 'e', 'm' };
+static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
+static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
+static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
+static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
+static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
+static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
+static const symbol s_6_36[3] = { 'a', 'd', 'o' };
+static const symbol s_6_37[3] = { 'i', 'd', 'o' };
+static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
+static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
+static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
+static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
+static const symbol s_6_44[2] = { 'a', 'r' };
+static const symbol s_6_45[2] = { 'e', 'r' };
+static const symbol s_6_46[2] = { 'i', 'r' };
+static const symbol s_6_47[2] = { 'a', 's' };
+static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_6_50[3] = { 'i', 'a', 's' };
+static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
+static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
+static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
+static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
+static const symbol s_6_58[2] = { 'e', 's' };
+static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
+static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
+static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
+static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
+static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
+static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
+static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
+static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
+static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_6_71[2] = { 'i', 's' };
+static const symbol s_6_72[3] = { 'a', 'i', 's' };
+static const symbol s_6_73[3] = { 'e', 'i', 's' };
+static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
+static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
+static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
+static const symbol s_6_77[5] = { 0xE1, 'r', 'e', 'i', 's' };
+static const symbol s_6_78[5] = { 0xE9, 'r', 'e', 'i', 's' };
+static const symbol s_6_79[5] = { 0xED, 'r', 'e', 'i', 's' };
+static const symbol s_6_80[6] = { 0xE1, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_81[6] = { 0xE9, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_82[6] = { 0xED, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_83[5] = { 0xE1, 'v', 'e', 'i', 's' };
+static const symbol s_6_84[4] = { 0xED, 'e', 'i', 's' };
+static const symbol s_6_85[6] = { 'a', 'r', 0xED, 'e', 'i', 's' };
+static const symbol s_6_86[6] = { 'e', 'r', 0xED, 'e', 'i', 's' };
+static const symbol s_6_87[6] = { 'i', 'r', 0xED, 'e', 'i', 's' };
+static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_6_91[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_92[6] = { 0xE9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_93[6] = { 0xED, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_94[6] = { 0xE1, 'v', 'a', 'm', 'o', 's' };
+static const symbol s_6_95[5] = { 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_96[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_97[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_98[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_103[7] = { 0xE1, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_104[7] = { 0xEA, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_105[7] = { 0xED, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
+static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
+static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
+static const symbol s_6_110[4] = { 0xE1, 'm', 'o', 's' };
+static const symbol s_6_111[4] = { 'a', 'r', 0xE1, 's' };
+static const symbol s_6_112[4] = { 'e', 'r', 0xE1, 's' };
+static const symbol s_6_113[4] = { 'i', 'r', 0xE1, 's' };
+static const symbol s_6_114[2] = { 'e', 'u' };
+static const symbol s_6_115[2] = { 'i', 'u' };
+static const symbol s_6_116[2] = { 'o', 'u' };
+static const symbol s_6_117[3] = { 'a', 'r', 0xE1 };
+static const symbol s_6_118[3] = { 'e', 'r', 0xE1 };
+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},
@@ -413,15 +427,15 @@ static struct among a_6[120] =
/*119 */ { 3, s_6_119, -1, 1, 0}
};
-static symbol s_7_0[1] = { 'a' };
-static symbol s_7_1[1] = { 'i' };
-static symbol s_7_2[1] = { 'o' };
-static symbol s_7_3[2] = { 'o', 's' };
-static symbol s_7_4[1] = { 0xE1 };
-static symbol s_7_5[1] = { 0xED };
-static symbol s_7_6[1] = { 0xF3 };
+static const symbol s_7_0[1] = { 'a' };
+static const symbol s_7_1[1] = { 'i' };
+static const symbol s_7_2[1] = { 'o' };
+static const symbol s_7_3[2] = { 'o', 's' };
+static const symbol s_7_4[1] = { 0xE1 };
+static const symbol s_7_5[1] = { 0xED };
+static const symbol s_7_6[1] = { 0xF3 };
-static struct among a_7[7] =
+static const struct among a_7[7] =
{
/* 0 */ { 1, s_7_0, -1, 1, 0},
/* 1 */ { 1, s_7_1, -1, 1, 0},
@@ -432,12 +446,12 @@ static struct among a_7[7] =
/* 6 */ { 1, s_7_6, -1, 1, 0}
};
-static symbol s_8_0[1] = { 'e' };
-static symbol s_8_1[1] = { 0xE7 };
-static symbol s_8_2[1] = { 0xE9 };
-static symbol s_8_3[1] = { 0xEA };
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[1] = { 0xE7 };
+static const symbol s_8_2[1] = { 0xE9 };
+static const symbol s_8_3[1] = { 0xEA };
-static struct among a_8[4] =
+static const struct among a_8[4] =
{
/* 0 */ { 1, s_8_0, -1, 1, 0},
/* 1 */ { 1, s_8_1, -1, 2, 0},
@@ -445,46 +459,45 @@ static struct among a_8[4] =
/* 3 */ { 1, s_8_3, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
-
-static symbol s_0[] = { 'a', '~' };
-static symbol s_1[] = { 'o', '~' };
-static symbol s_2[] = { 0xE3 };
-static symbol s_3[] = { 0xF5 };
-static symbol s_4[] = { 'l', 'o', 'g' };
-static symbol s_5[] = { 'u' };
-static symbol s_6[] = { 'e', 'n', 't', 'e' };
-static symbol s_7[] = { 'a', 't' };
-static symbol s_8[] = { 'a', 't' };
-static symbol s_9[] = { 'e' };
-static symbol s_10[] = { 'i', 'r' };
-static symbol s_11[] = { 'u' };
-static symbol s_12[] = { 'g' };
-static symbol s_13[] = { 'i' };
-static symbol s_14[] = { 'c' };
-static symbol s_15[] = { 'c' };
-static symbol s_16[] = { 'i' };
-static symbol s_17[] = { 'c' };
+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 };
+
+static const symbol s_0[] = { 'a', '~' };
+static const symbol s_1[] = { 'o', '~' };
+static const symbol s_2[] = { 0xE3 };
+static const symbol s_3[] = { 0xF5 };
+static const symbol s_4[] = { 'l', 'o', 'g' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'e', 'n', 't', 'e' };
+static const symbol s_7[] = { 'a', 't' };
+static const symbol s_8[] = { 'a', 't' };
+static const symbol s_9[] = { 'e' };
+static const symbol s_10[] = { 'i', 'r' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'g' };
+static const symbol s_13[] = { 'i' };
+static const symbol s_14[] = { 'c' };
+static const symbol s_15[] = { 'c' };
+static const symbol s_16[] = { 'i' };
+static const symbol s_17[] = { 'c' };
static int r_prelude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 36 */
- int c = z->c;
+ 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
among_var = find_among(z, a_0, 3); /* substring, line 37 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 37 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 39 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 39 */
if (ret < 0) return ret;
}
break;
@@ -495,7 +508,7 @@ static int r_prelude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -505,92 +518,78 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 50 */
- { int c = z->c; /* or, line 52 */
- if (!(in_grouping(z, g_v, 97, 250))) goto lab2;
- { int c = z->c; /* or, line 51 */
- if (!(out_grouping(z, g_v, 97, 250))) goto lab4;
- while(1) { /* gopast, line 51 */
- if (!(in_grouping(z, g_v, 97, 250))) goto lab5;
- break;
- lab5:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 51 */
+ { 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;
+ { int c3 = z->c; /* or, line 51 */
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 51 */
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
goto lab3;
lab4:
- z->c = c;
- if (!(in_grouping(z, g_v, 97, 250))) goto lab2;
- while(1) { /* gopast, line 51 */
- if (!(out_grouping(z, g_v, 97, 250))) goto lab6;
- break;
- lab6:
- if (z->c >= z->l) goto lab2;
- z->c++; /* gopast, line 51 */
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
+ { /* gopast */ /* non v, line 51 */
+ int ret = in_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
}
}
lab3:
goto lab1;
lab2:
- z->c = c;
- if (!(out_grouping(z, g_v, 97, 250))) goto lab0;
- { int c = z->c; /* or, line 53 */
- if (!(out_grouping(z, g_v, 97, 250))) goto lab8;
- while(1) { /* gopast, line 53 */
- if (!(in_grouping(z, g_v, 97, 250))) goto lab9;
- break;
- lab9:
- if (z->c >= z->l) goto lab8;
- z->c++; /* gopast, line 53 */
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 53 */
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 53 */
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
}
- goto lab7;
- lab8:
- z->c = c;
- if (!(in_grouping(z, g_v, 97, 250))) goto lab0;
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab0;
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 53 */
}
- lab7:
+ lab5:
;
}
lab1:
z->I[0] = z->c; /* setmark pV, line 54 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 56 */
- while(1) { /* gopast, line 57 */
- if (!(in_grouping(z, g_v, 97, 250))) goto lab11;
- break;
- lab11:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 57 */
+ { int c5 = z->c; /* do, line 56 */
+ { /* gopast */ /* grouping v, line 57 */
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 57 */
- if (!(out_grouping(z, g_v, 97, 250))) goto lab12;
- break;
- lab12:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 57 */
+ { /* 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 */
- while(1) { /* gopast, line 58 */
- if (!(in_grouping(z, g_v, 97, 250))) goto lab13;
- break;
- lab13:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 58 */
+ { /* gopast */ /* grouping v, line 58 */
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 58 */
- if (!(out_grouping(z, g_v, 97, 250))) goto lab14;
- break;
- lab14:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 58 */
+ { /* 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 */
- lab10:
- z->c = c;
+ lab7:
+ z->c = c5;
}
return 1;
}
@@ -598,22 +597,21 @@ static int r_mark_regions(struct SN_env * z) {
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 62 */
- int c = z->c;
+ 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
among_var = find_among(z, a_1, 3); /* substring, line 63 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 63 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 64 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 65 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 65 */
if (ret < 0) return ret;
}
break;
@@ -624,7 +622,7 @@ static int r_postlude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -648,6 +646,7 @@ static int r_R2(struct SN_env * z) {
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 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 45); /* substring, line 77 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 77 */
@@ -658,8 +657,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 93 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 93 */
+ { int ret = slice_del(z); /* delete, line 93 */
if (ret < 0) return ret;
}
break;
@@ -668,8 +666,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 98 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
+ { int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
if (ret < 0) return ret;
}
break;
@@ -678,8 +675,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 102 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
@@ -688,8 +684,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 106 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
+ { int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
if (ret < 0) return ret;
}
break;
@@ -698,35 +693,33 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 110 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 110 */
+ { int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 111 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab0; }
among_var = find_among_b(z, a_2, 4); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m; goto lab0; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 112 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 112 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 112 */
+ { int ret = slice_del(z); /* delete, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab0; }
+ case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
z->ket = z->c; /* [, line 113 */
- if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 113 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 113 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 113 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 113 */
+ { int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
break;
@@ -740,24 +733,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 122 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 122 */
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 123 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 3); /* substring, line 124 */
- if (!(among_var)) { z->c = z->l - m; goto lab1; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 124 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab1; }
+ case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 127 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 127 */
+ { int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
break;
@@ -771,24 +763,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 134 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 135 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 136 */
- if (!(among_var)) { z->c = z->l - m; goto lab2; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab2; }
+ case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 139 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 139 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 139 */
+ { int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
break;
@@ -802,20 +793,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 146 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 146 */
+ { int ret = slice_del(z); /* delete, line 146 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 147 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 147 */
z->ket = z->c; /* [, line 148 */
- if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 148 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 148 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 148 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 148 */
+ { int ret = slice_del(z); /* delete, line 148 */
if (ret < 0) return ret;
}
lab3:
@@ -828,8 +817,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
if (!(eq_s_b(z, 1, s_9))) return 0;
- { int ret;
- ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
+ { int ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
if (ret < 0) return ret;
}
break;
@@ -839,26 +827,25 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 159 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 159 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 159 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 160 */
among_var = find_among_b(z, a_6, 120); /* substring, line 160 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 160 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
@@ -876,8 +863,7 @@ static int r_residual_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 187 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 187 */
+ { int ret = slice_del(z); /* delete, line 187 */
if (ret < 0) return ret;
}
break;
@@ -898,12 +884,11 @@ static int r_residual_form(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 194 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 194 */
+ { int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 194 */
- { int m = z->l - z->c; (void) m; /* or, line 194 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 194 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
z->bra = z->c; /* ], line 194 */
{ int m_test = z->l - z->c; /* test, line 194 */
@@ -912,7 +897,7 @@ static int r_residual_form(struct SN_env * z) {
}
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_13))) return 0;
z->bra = z->c; /* ], line 195 */
{ int m_test = z->l - z->c; /* test, line 195 */
@@ -925,14 +910,12 @@ static int r_residual_form(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 195 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 195 */
+ { int ret = slice_del(z); /* delete, line 195 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
if (ret < 0) return ret;
}
break;
@@ -941,43 +924,43 @@ static int r_residual_form(struct SN_env * z) {
}
extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 202 */
+ { int c1 = z->c; /* do, line 202 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 202 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 203 */
+ { int c2 = z->c; /* do, line 203 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 203 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
- { int m = z->l - z->c; (void) m; /* do, line 205 */
- { int m = z->l - z->c; (void) m; /* or, line 209 */
- { int m = z->l - z->c; (void) m; /* and, line 207 */
- { int m = z->l - z->c; (void) m; /* or, line 206 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 205 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 209 */
+ { int m5 = z->l - z->c; (void)m5; /* and, line 207 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 206 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab6; /* call standard_suffix, line 206 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab4; /* call verb_suffix, line 206 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 207 */
+ z->c = z->l - m5;
+ { int m7 = z->l - z->c; (void)m7; /* do, line 207 */
z->ket = z->c; /* [, line 207 */
if (!(eq_s_b(z, 1, s_16))) goto lab7;
z->bra = z->c; /* ], line 207 */
@@ -989,17 +972,16 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
if (ret == 0) goto lab7; /* call RV, line 207 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 207 */
+ { int ret = slice_del(z); /* delete, line 207 */
if (ret < 0) return ret;
}
lab7:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
}
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab2; /* call residual_suffix, line 209 */
if (ret < 0) return ret;
@@ -1007,29 +989,29 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
}
lab3:
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 211 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 211 */
{ int ret = r_residual_form(z);
if (ret == 0) goto lab8; /* call residual_form, line 211 */
if (ret < 0) return ret;
}
lab8:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
z->c = z->lb;
- { int c = z->c; /* do, line 213 */
+ { int c9 = z->c; /* do, line 213 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab9; /* call postlude, line 213 */
if (ret < 0) return ret;
}
lab9:
- z->c = c;
+ z->c = c9;
}
return 1;
}
extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_spanish.c b/libstemmer_c/src_c/stem_ISO_8859_1_spanish.c
index acc4fa9..8aa7673 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_spanish.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_spanish.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int spanish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_residual_suffix(struct SN_env * z);
static int r_verb_suffix(struct SN_env * z);
static int r_y_verb_suffix(struct SN_env * z);
@@ -14,17 +20,25 @@ static int r_R1(struct SN_env * z);
static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * spanish_ISO_8859_1_create_env(void);
extern void spanish_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 0xE1 };
-static symbol s_0_2[1] = { 0xE9 };
-static symbol s_0_3[1] = { 0xED };
-static symbol s_0_4[1] = { 0xF3 };
-static symbol s_0_5[1] = { 0xFA };
-static struct among a_0[6] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xE1 };
+static const symbol s_0_2[1] = { 0xE9 };
+static const symbol s_0_3[1] = { 0xED };
+static const symbol s_0_4[1] = { 0xF3 };
+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},
@@ -34,21 +48,21 @@ static struct among a_0[6] =
/* 5 */ { 1, s_0_5, 0, 5, 0}
};
-static symbol s_1_0[2] = { 'l', 'a' };
-static symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
-static symbol s_1_2[2] = { 'l', 'e' };
-static symbol s_1_3[2] = { 'm', 'e' };
-static symbol s_1_4[2] = { 's', 'e' };
-static symbol s_1_5[2] = { 'l', 'o' };
-static symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
-static symbol s_1_7[3] = { 'l', 'a', 's' };
-static symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
-static symbol s_1_9[3] = { 'l', 'e', 's' };
-static symbol s_1_10[3] = { 'l', 'o', 's' };
-static symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
-static symbol s_1_12[3] = { 'n', 'o', 's' };
+static const symbol s_1_0[2] = { 'l', 'a' };
+static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
+static const symbol s_1_2[2] = { 'l', 'e' };
+static const symbol s_1_3[2] = { 'm', 'e' };
+static const symbol s_1_4[2] = { 's', 'e' };
+static const symbol s_1_5[2] = { 'l', 'o' };
+static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
+static const symbol s_1_7[3] = { 'l', 'a', 's' };
+static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
+static const symbol s_1_9[3] = { 'l', 'e', 's' };
+static const symbol s_1_10[3] = { 'l', 'o', 's' };
+static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
+static const symbol s_1_12[3] = { 'n', 'o', 's' };
-static struct among a_1[13] =
+static const struct among a_1[13] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 4, s_1_1, 0, -1, 0},
@@ -65,19 +79,19 @@ static struct among a_1[13] =
/* 12 */ { 3, s_1_12, -1, -1, 0}
};
-static symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
-static symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
-static symbol s_2_3[4] = { 0xE1, 'n', 'd', 'o' };
-static symbol s_2_4[5] = { 'i', 0xE9, 'n', 'd', 'o' };
-static symbol s_2_5[2] = { 'a', 'r' };
-static symbol s_2_6[2] = { 'e', 'r' };
-static symbol s_2_7[2] = { 'i', 'r' };
-static symbol s_2_8[2] = { 0xE1, 'r' };
-static symbol s_2_9[2] = { 0xE9, 'r' };
-static symbol s_2_10[2] = { 0xED, 'r' };
+static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_2_3[4] = { 0xE1, 'n', 'd', 'o' };
+static const symbol s_2_4[5] = { 'i', 0xE9, 'n', 'd', 'o' };
+static const symbol s_2_5[2] = { 'a', 'r' };
+static const symbol s_2_6[2] = { 'e', 'r' };
+static const symbol s_2_7[2] = { 'i', 'r' };
+static const symbol s_2_8[2] = { 0xE1, 'r' };
+static const symbol s_2_9[2] = { 0xE9, 'r' };
+static const symbol s_2_10[2] = { 0xED, 'r' };
-static struct among a_2[11] =
+static const struct among a_2[11] =
{
/* 0 */ { 4, s_2_0, -1, 6, 0},
/* 1 */ { 5, s_2_1, -1, 6, 0},
@@ -92,12 +106,12 @@ static struct among a_2[11] =
/* 10 */ { 2, s_2_10, -1, 5, 0}
};
-static symbol s_3_0[2] = { 'i', 'c' };
-static symbol s_3_1[2] = { 'a', 'd' };
-static symbol s_3_2[2] = { 'o', 's' };
-static symbol s_3_3[2] = { 'i', 'v' };
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[2] = { 'a', 'd' };
+static const symbol s_3_2[2] = { 'o', 's' };
+static const symbol s_3_3[2] = { 'i', 'v' };
-static struct among a_3[4] =
+static const struct among a_3[4] =
{
/* 0 */ { 2, s_3_0, -1, -1, 0},
/* 1 */ { 2, s_3_1, -1, -1, 0},
@@ -105,76 +119,76 @@ static struct among a_3[4] =
/* 3 */ { 2, s_3_3, -1, 1, 0}
};
-static symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
-static struct among a_4[3] =
+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}
};
-static symbol s_5_0[2] = { 'i', 'c' };
-static symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_5_2[2] = { 'i', 'v' };
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
-static struct among a_5[3] =
+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}
};
-static symbol s_6_0[3] = { 'i', 'c', 'a' };
-static symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
-static symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
-static symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
-static symbol s_6_4[3] = { 'o', 's', 'a' };
-static symbol s_6_5[4] = { 'i', 's', 't', 'a' };
-static symbol s_6_6[3] = { 'i', 'v', 'a' };
-static symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
-static symbol s_6_8[5] = { 'l', 'o', 'g', 0xED, 'a' };
-static symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
-static symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
-static symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_15[5] = { 'a', 'c', 'i', 0xF3, 'n' };
-static symbol s_6_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
-static symbol s_6_17[3] = { 'i', 'c', 'o' };
-static symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
-static symbol s_6_19[3] = { 'o', 's', 'o' };
-static symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
-static symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
-static symbol s_6_22[3] = { 'i', 'v', 'o' };
-static symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
-static symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
-static symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
-static symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
-static symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
-static symbol s_6_28[4] = { 'o', 's', 'a', 's' };
-static symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
-static symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
-static symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
-static symbol s_6_32[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
-static symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
-static symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
-static symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
-static symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
-static symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
-static symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
-static symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
-static symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
-static symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
-static symbol s_6_42[4] = { 'o', 's', 'o', 's' };
-static symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
-static symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
-static symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
+static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
+static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_6_4[3] = { 'o', 's', 'a' };
+static const symbol s_6_5[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_6[3] = { 'i', 'v', 'a' };
+static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_8[5] = { 'l', 'o', 'g', 0xED, 'a' };
+static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
+static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_15[5] = { 'a', 'c', 'i', 0xF3, 'n' };
+static const symbol s_6_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
+static const symbol s_6_17[3] = { 'i', 'c', 'o' };
+static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_19[3] = { 'o', 's', 'o' };
+static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_22[3] = { 'i', 'v', 'o' };
+static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_6_28[4] = { 'o', 's', 'a', 's' };
+static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
+static const symbol s_6_32[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
+static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
+static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_6_42[4] = { 'o', 's', 'o', 's' };
+static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
-static struct among a_6[46] =
+static const struct among a_6[46] =
{
/* 0 */ { 3, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, -1, 2, 0},
@@ -224,20 +238,20 @@ static struct among a_6[46] =
/* 45 */ { 4, s_6_45, -1, 9, 0}
};
-static symbol s_7_0[2] = { 'y', 'a' };
-static symbol s_7_1[2] = { 'y', 'e' };
-static symbol s_7_2[3] = { 'y', 'a', 'n' };
-static symbol s_7_3[3] = { 'y', 'e', 'n' };
-static symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
-static symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
-static symbol s_7_6[2] = { 'y', 'o' };
-static symbol s_7_7[3] = { 'y', 'a', 's' };
-static symbol s_7_8[3] = { 'y', 'e', 's' };
-static symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
-static symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
-static symbol s_7_11[2] = { 'y', 0xF3 };
+static const symbol s_7_0[2] = { 'y', 'a' };
+static const symbol s_7_1[2] = { 'y', 'e' };
+static const symbol s_7_2[3] = { 'y', 'a', 'n' };
+static const symbol s_7_3[3] = { 'y', 'e', 'n' };
+static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
+static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_7_6[2] = { 'y', 'o' };
+static const symbol s_7_7[3] = { 'y', 'a', 's' };
+static const symbol s_7_8[3] = { 'y', 'e', 's' };
+static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
+static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
+static const symbol s_7_11[2] = { 'y', 0xF3 };
-static struct among a_7[12] =
+static const struct among a_7[12] =
{
/* 0 */ { 2, s_7_0, -1, 1, 0},
/* 1 */ { 2, s_7_1, -1, 1, 0},
@@ -253,104 +267,104 @@ static struct among a_7[12] =
/* 11 */ { 2, s_7_11, -1, 1, 0}
};
-static symbol s_8_0[3] = { 'a', 'b', 'a' };
-static symbol s_8_1[3] = { 'a', 'd', 'a' };
-static symbol s_8_2[3] = { 'i', 'd', 'a' };
-static symbol s_8_3[3] = { 'a', 'r', 'a' };
-static symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
-static symbol s_8_5[2] = { 0xED, 'a' };
-static symbol s_8_6[4] = { 'a', 'r', 0xED, 'a' };
-static symbol s_8_7[4] = { 'e', 'r', 0xED, 'a' };
-static symbol s_8_8[4] = { 'i', 'r', 0xED, 'a' };
-static symbol s_8_9[2] = { 'a', 'd' };
-static symbol s_8_10[2] = { 'e', 'd' };
-static symbol s_8_11[2] = { 'i', 'd' };
-static symbol s_8_12[3] = { 'a', 's', 'e' };
-static symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
-static symbol s_8_14[4] = { 'a', 's', 't', 'e' };
-static symbol s_8_15[4] = { 'i', 's', 't', 'e' };
-static symbol s_8_16[2] = { 'a', 'n' };
-static symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
-static symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
-static symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
-static symbol s_8_20[3] = { 0xED, 'a', 'n' };
-static symbol s_8_21[5] = { 'a', 'r', 0xED, 'a', 'n' };
-static symbol s_8_22[5] = { 'e', 'r', 0xED, 'a', 'n' };
-static symbol s_8_23[5] = { 'i', 'r', 0xED, 'a', 'n' };
-static symbol s_8_24[2] = { 'e', 'n' };
-static symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
-static symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
-static symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
-static symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
-static symbol s_8_29[4] = { 'a', 'r', 0xE1, 'n' };
-static symbol s_8_30[4] = { 'e', 'r', 0xE1, 'n' };
-static symbol s_8_31[4] = { 'i', 'r', 0xE1, 'n' };
-static symbol s_8_32[3] = { 'a', 'd', 'o' };
-static symbol s_8_33[3] = { 'i', 'd', 'o' };
-static symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
-static symbol s_8_36[2] = { 'a', 'r' };
-static symbol s_8_37[2] = { 'e', 'r' };
-static symbol s_8_38[2] = { 'i', 'r' };
-static symbol s_8_39[2] = { 'a', 's' };
-static symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
-static symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
-static symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
-static symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
-static symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
-static symbol s_8_45[3] = { 0xED, 'a', 's' };
-static symbol s_8_46[5] = { 'a', 'r', 0xED, 'a', 's' };
-static symbol s_8_47[5] = { 'e', 'r', 0xED, 'a', 's' };
-static symbol s_8_48[5] = { 'i', 'r', 0xED, 'a', 's' };
-static symbol s_8_49[2] = { 'e', 's' };
-static symbol s_8_50[4] = { 'a', 's', 'e', 's' };
-static symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
-static symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
-static symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
-static symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
-static symbol s_8_55[4] = { 0xED, 'a', 'i', 's' };
-static symbol s_8_56[6] = { 'a', 'r', 0xED, 'a', 'i', 's' };
-static symbol s_8_57[6] = { 'e', 'r', 0xED, 'a', 'i', 's' };
-static symbol s_8_58[6] = { 'i', 'r', 0xED, 'a', 'i', 's' };
-static symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
-static symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
-static symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
-static symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
-static symbol s_8_63[3] = { 0xE1, 'i', 's' };
-static symbol s_8_64[3] = { 0xE9, 'i', 's' };
-static symbol s_8_65[5] = { 'a', 'r', 0xE9, 'i', 's' };
-static symbol s_8_66[5] = { 'e', 'r', 0xE9, 'i', 's' };
-static symbol s_8_67[5] = { 'i', 'r', 0xE9, 'i', 's' };
-static symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
-static symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
-static symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
-static symbol s_8_71[6] = { 0xE1, 'b', 'a', 'm', 'o', 's' };
-static symbol s_8_72[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
-static symbol s_8_73[7] = { 'i', 0xE9, 'r', 'a', 'm', 'o', 's' };
-static symbol s_8_74[5] = { 0xED, 'a', 'm', 'o', 's' };
-static symbol s_8_75[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
-static symbol s_8_76[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
-static symbol s_8_77[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
-static symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
-static symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
-static symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
-static symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
-static symbol s_8_82[6] = { 0xE1, 's', 'e', 'm', 'o', 's' };
-static symbol s_8_83[7] = { 'i', 0xE9, 's', 'e', 'm', 'o', 's' };
-static symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
-static symbol s_8_85[4] = { 'a', 'r', 0xE1, 's' };
-static symbol s_8_86[4] = { 'e', 'r', 0xE1, 's' };
-static symbol s_8_87[4] = { 'i', 'r', 0xE1, 's' };
-static symbol s_8_88[2] = { 0xED, 's' };
-static symbol s_8_89[3] = { 'a', 'r', 0xE1 };
-static symbol s_8_90[3] = { 'e', 'r', 0xE1 };
-static symbol s_8_91[3] = { 'i', 'r', 0xE1 };
-static symbol s_8_92[3] = { 'a', 'r', 0xE9 };
-static symbol s_8_93[3] = { 'e', 'r', 0xE9 };
-static symbol s_8_94[3] = { 'i', 'r', 0xE9 };
-static symbol s_8_95[2] = { 'i', 0xF3 };
+static const symbol s_8_0[3] = { 'a', 'b', 'a' };
+static const symbol s_8_1[3] = { 'a', 'd', 'a' };
+static const symbol s_8_2[3] = { 'i', 'd', 'a' };
+static const symbol s_8_3[3] = { 'a', 'r', 'a' };
+static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
+static const symbol s_8_5[2] = { 0xED, 'a' };
+static const symbol s_8_6[4] = { 'a', 'r', 0xED, 'a' };
+static const symbol s_8_7[4] = { 'e', 'r', 0xED, 'a' };
+static const symbol s_8_8[4] = { 'i', 'r', 0xED, 'a' };
+static const symbol s_8_9[2] = { 'a', 'd' };
+static const symbol s_8_10[2] = { 'e', 'd' };
+static const symbol s_8_11[2] = { 'i', 'd' };
+static const symbol s_8_12[3] = { 'a', 's', 'e' };
+static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
+static const symbol s_8_14[4] = { 'a', 's', 't', 'e' };
+static const symbol s_8_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_8_16[2] = { 'a', 'n' };
+static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
+static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
+static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
+static const symbol s_8_20[3] = { 0xED, 'a', 'n' };
+static const symbol s_8_21[5] = { 'a', 'r', 0xED, 'a', 'n' };
+static const symbol s_8_22[5] = { 'e', 'r', 0xED, 'a', 'n' };
+static const symbol s_8_23[5] = { 'i', 'r', 0xED, 'a', 'n' };
+static const symbol s_8_24[2] = { 'e', 'n' };
+static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
+static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
+static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
+static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
+static const symbol s_8_29[4] = { 'a', 'r', 0xE1, 'n' };
+static const symbol s_8_30[4] = { 'e', 'r', 0xE1, 'n' };
+static const symbol s_8_31[4] = { 'i', 'r', 0xE1, 'n' };
+static const symbol s_8_32[3] = { 'a', 'd', 'o' };
+static const symbol s_8_33[3] = { 'i', 'd', 'o' };
+static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_8_36[2] = { 'a', 'r' };
+static const symbol s_8_37[2] = { 'e', 'r' };
+static const symbol s_8_38[2] = { 'i', 'r' };
+static const symbol s_8_39[2] = { 'a', 's' };
+static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
+static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
+static const symbol s_8_45[3] = { 0xED, 'a', 's' };
+static const symbol s_8_46[5] = { 'a', 'r', 0xED, 'a', 's' };
+static const symbol s_8_47[5] = { 'e', 'r', 0xED, 'a', 's' };
+static const symbol s_8_48[5] = { 'i', 'r', 0xED, 'a', 's' };
+static const symbol s_8_49[2] = { 'e', 's' };
+static const symbol s_8_50[4] = { 'a', 's', 'e', 's' };
+static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
+static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
+static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
+static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
+static const symbol s_8_55[4] = { 0xED, 'a', 'i', 's' };
+static const symbol s_8_56[6] = { 'a', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_8_57[6] = { 'e', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_8_58[6] = { 'i', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
+static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
+static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_63[3] = { 0xE1, 'i', 's' };
+static const symbol s_8_64[3] = { 0xE9, 'i', 's' };
+static const symbol s_8_65[5] = { 'a', 'r', 0xE9, 'i', 's' };
+static const symbol s_8_66[5] = { 'e', 'r', 0xE9, 'i', 's' };
+static const symbol s_8_67[5] = { 'i', 'r', 0xE9, 'i', 's' };
+static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_8_71[6] = { 0xE1, 'b', 'a', 'm', 'o', 's' };
+static const symbol s_8_72[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_73[7] = { 'i', 0xE9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_74[5] = { 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_75[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_76[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_77[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_82[6] = { 0xE1, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_83[7] = { 'i', 0xE9, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_8_85[4] = { 'a', 'r', 0xE1, 's' };
+static const symbol s_8_86[4] = { 'e', 'r', 0xE1, 's' };
+static const symbol s_8_87[4] = { 'i', 'r', 0xE1, 's' };
+static const symbol s_8_88[2] = { 0xED, 's' };
+static const symbol s_8_89[3] = { 'a', 'r', 0xE1 };
+static const symbol s_8_90[3] = { 'e', 'r', 0xE1 };
+static const symbol s_8_91[3] = { 'i', 'r', 0xE1 };
+static const symbol s_8_92[3] = { 'a', 'r', 0xE9 };
+static const symbol s_8_93[3] = { 'e', 'r', 0xE9 };
+static const symbol s_8_94[3] = { 'i', 'r', 0xE9 };
+static const symbol s_8_95[2] = { 'i', 0xF3 };
-static struct among a_8[96] =
+static const struct among a_8[96] =
{
/* 0 */ { 3, s_8_0, -1, 2, 0},
/* 1 */ { 3, s_8_1, -1, 2, 0},
@@ -450,16 +464,16 @@ static struct among a_8[96] =
/* 95 */ { 2, s_8_95, -1, 2, 0}
};
-static symbol s_9_0[1] = { 'a' };
-static symbol s_9_1[1] = { 'e' };
-static symbol s_9_2[1] = { 'o' };
-static symbol s_9_3[2] = { 'o', 's' };
-static symbol s_9_4[1] = { 0xE1 };
-static symbol s_9_5[1] = { 0xE9 };
-static symbol s_9_6[1] = { 0xED };
-static symbol s_9_7[1] = { 0xF3 };
+static const symbol s_9_0[1] = { 'a' };
+static const symbol s_9_1[1] = { 'e' };
+static const symbol s_9_2[1] = { 'o' };
+static const symbol s_9_3[2] = { 'o', 's' };
+static const symbol s_9_4[1] = { 0xE1 };
+static const symbol s_9_5[1] = { 0xE9 };
+static const symbol s_9_6[1] = { 0xED };
+static const symbol s_9_7[1] = { 0xF3 };
-static struct among a_9[8] =
+static const struct among a_9[8] =
{
/* 0 */ { 1, s_9_0, -1, 1, 0},
/* 1 */ { 1, s_9_1, -1, 2, 0},
@@ -471,121 +485,107 @@ static struct among a_9[8] =
/* 7 */ { 1, s_9_7, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 };
+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 };
-static symbol s_0[] = { 'a' };
-static symbol s_1[] = { 'e' };
-static symbol s_2[] = { 'i' };
-static symbol s_3[] = { 'o' };
-static symbol s_4[] = { 'u' };
-static symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
-static symbol s_6[] = { 'a', 'n', 'd', 'o' };
-static symbol s_7[] = { 'a', 'r' };
-static symbol s_8[] = { 'e', 'r' };
-static symbol s_9[] = { 'i', 'r' };
-static symbol s_10[] = { 'u' };
-static symbol s_11[] = { 'i', 'c' };
-static symbol s_12[] = { 'l', 'o', 'g' };
-static symbol s_13[] = { 'u' };
-static symbol s_14[] = { 'e', 'n', 't', 'e' };
-static symbol s_15[] = { 'a', 't' };
-static symbol s_16[] = { 'a', 't' };
-static symbol s_17[] = { 'u' };
-static symbol s_18[] = { 'u' };
-static symbol s_19[] = { 'g' };
-static symbol s_20[] = { 'u' };
-static symbol s_21[] = { 'g' };
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7[] = { 'a', 'r' };
+static const symbol s_8[] = { 'e', 'r' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'u' };
+static const symbol s_11[] = { 'i', 'c' };
+static const symbol s_12[] = { 'l', 'o', 'g' };
+static const symbol s_13[] = { 'u' };
+static const symbol s_14[] = { 'e', 'n', 't', 'e' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'a', 't' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'u' };
+static const symbol s_19[] = { 'g' };
+static const symbol s_20[] = { 'u' };
+static const symbol s_21[] = { 'g' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 37 */
- { int c = z->c; /* or, line 39 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab2;
- { int c = z->c; /* or, line 38 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab4;
- while(1) { /* gopast, line 38 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab5;
- break;
- lab5:
- if (z->c >= z->l) goto lab4;
- z->c++; /* gopast, line 38 */
+ { 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;
+ { int c3 = z->c; /* or, line 38 */
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 38 */
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
goto lab3;
lab4:
- z->c = c;
- if (!(in_grouping(z, g_v, 97, 252))) goto lab2;
- while(1) { /* gopast, line 38 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab6;
- break;
- lab6:
- if (z->c >= z->l) goto lab2;
- z->c++; /* gopast, line 38 */
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
+ { /* gopast */ /* non v, line 38 */
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
}
}
lab3:
goto lab1;
lab2:
- z->c = c;
- if (!(out_grouping(z, g_v, 97, 252))) goto lab0;
- { int c = z->c; /* or, line 40 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab8;
- while(1) { /* gopast, line 40 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab9;
- break;
- lab9:
- if (z->c >= z->l) goto lab8;
- z->c++; /* gopast, line 40 */
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 40 */
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 40 */
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
}
- goto lab7;
- lab8:
- z->c = c;
- if (!(in_grouping(z, g_v, 97, 252))) goto lab0;
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab0;
if (z->c >= z->l) goto lab0;
z->c++; /* next, line 40 */
}
- lab7:
+ lab5:
;
}
lab1:
z->I[0] = z->c; /* setmark pV, line 41 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 43 */
- while(1) { /* gopast, line 44 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab11;
- break;
- lab11:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 44 */
+ { int c5 = z->c; /* do, line 43 */
+ { /* gopast */ /* grouping v, line 44 */
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 44 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab12;
- break;
- lab12:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 44 */
+ { /* 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 */
- while(1) { /* gopast, line 45 */
- if (!(in_grouping(z, g_v, 97, 252))) goto lab13;
- break;
- lab13:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 45 */
+ { /* gopast */ /* grouping v, line 45 */
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 45 */
- if (!(out_grouping(z, g_v, 97, 252))) goto lab14;
- break;
- lab14:
- if (z->c >= z->l) goto lab10;
- z->c++; /* gopast, line 45 */
+ { /* 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 */
- lab10:
- z->c = c;
+ lab7:
+ z->c = c5;
}
return 1;
}
@@ -593,40 +593,36 @@ static int r_mark_regions(struct SN_env * z) {
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 49 */
- int c = z->c;
+ 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
among_var = find_among(z, a_0, 6); /* substring, line 50 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 50 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 52 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 54 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 55 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */
if (ret < 0) return ret;
}
break;
@@ -637,7 +633,7 @@ static int r_postlude(struct SN_env * z) {
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -661,8 +657,10 @@ static int r_R2(struct SN_env * z) {
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;
if (!(find_among_b(z, a_1, 13))) return 0; /* substring, line 68 */
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;
among_var = find_among_b(z, a_2, 11); /* substring, line 72 */
if (!(among_var)) return 0;
{ int ret = r_RV(z);
@@ -673,49 +671,42 @@ static int r_attached_pronoun(struct SN_env * z) {
case 0: return 0;
case 1:
z->bra = z->c; /* ], line 73 */
- { int ret;
- ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
+ { int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
z->bra = z->c; /* ], line 74 */
- { int ret;
- ret = slice_from_s(z, 4, s_6); /* <-, line 74 */
+ { int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 3:
z->bra = z->c; /* ], line 75 */
- { int ret;
- ret = slice_from_s(z, 2, s_7); /* <-, line 75 */
+ { int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */
if (ret < 0) return ret;
}
break;
case 4:
z->bra = z->c; /* ], line 76 */
- { int ret;
- ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
+ { int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 5:
z->bra = z->c; /* ], line 77 */
- { int ret;
- ret = slice_from_s(z, 2, s_9); /* <-, line 77 */
+ { int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_del(z); /* delete, line 81 */
+ { int ret = slice_del(z); /* delete, line 81 */
if (ret < 0) return ret;
}
break;
case 7:
if (!(eq_s_b(z, 1, s_10))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 82 */
+ { int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
@@ -726,6 +717,7 @@ static int r_attached_pronoun(struct SN_env * z) {
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;
among_var = find_among_b(z, a_6, 46); /* substring, line 87 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 87 */
@@ -736,8 +728,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 99 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 99 */
+ { int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
@@ -746,20 +737,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 105 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 105 */
+ { int ret = slice_del(z); /* delete, line 105 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 106 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 106 */
z->ket = z->c; /* [, line 106 */
- if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 106 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 106 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 106 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 106 */
+ { int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
lab0:
@@ -771,8 +760,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
@@ -781,8 +769,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 115 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
if (ret < 0) return ret;
}
break;
@@ -791,8 +778,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
@@ -801,35 +787,33 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 123 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 123 */
+ { int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 124 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 4); /* substring, line 125 */
- if (!(among_var)) { z->c = z->l - m; goto lab1; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 125 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 125 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 125 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 125 */
+ { int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab1; }
+ case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
z->ket = z->c; /* [, line 126 */
- if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m; goto lab1; }
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 126 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 126 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 126 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 126 */
+ { int ret = slice_del(z); /* delete, line 126 */
if (ret < 0) return ret;
}
break;
@@ -843,24 +827,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 135 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 135 */
+ { int ret = slice_del(z); /* delete, line 135 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 136 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 137 */
- if (!(among_var)) { z->c = z->l - m; goto lab2; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
z->bra = z->c; /* ], line 137 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab2; }
+ case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 140 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 140 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 140 */
+ { int ret = slice_del(z); /* delete, line 140 */
if (ret < 0) return ret;
}
break;
@@ -874,24 +857,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 147 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 147 */
+ { int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 148 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab3; }
among_var = find_among_b(z, a_5, 3); /* substring, line 149 */
- if (!(among_var)) { z->c = z->l - m; goto lab3; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 149 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab3; }
+ case 0: { z->c = z->l - m_keep; goto lab3; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 152 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 152 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 152 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
break;
@@ -905,20 +887,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 159 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 159 */
+ { int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 160 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 160 */
z->ket = z->c; /* [, line 161 */
- if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m; goto lab4; }
+ if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m_keep; goto lab4; }
z->bra = z->c; /* ], line 161 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab4; } /* call R2, line 161 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call R2, line 161 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 161 */
+ { int ret = slice_del(z); /* delete, line 161 */
if (ret < 0) return ret;
}
lab4:
@@ -931,24 +911,23 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_y_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 168 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 168 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 168 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_7, 12); /* substring, line 168 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 168 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
if (!(eq_s_b(z, 1, s_17))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 171 */
+ { int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
break;
@@ -958,39 +937,37 @@ static int r_y_verb_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 176 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 176 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 176 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 176 */
among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 176 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* try, line 179 */
- if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m; goto lab0; }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 179 */
+ if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m_keep; goto lab0; }
{ int m_test = z->l - z->c; /* test, line 179 */
- if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
}
lab0:
;
}
z->bra = z->c; /* ], line 179 */
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 200 */
+ { int ret = slice_del(z); /* delete, line 200 */
if (ret < 0) return ret;
}
break;
@@ -1011,8 +988,7 @@ static int r_residual_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 208 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 208 */
+ { int ret = slice_del(z); /* delete, line 208 */
if (ret < 0) return ret;
}
break;
@@ -1021,24 +997,22 @@ static int r_residual_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 210 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 210 */
+ { int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 210 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 210 */
z->ket = z->c; /* [, line 210 */
- if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 210 */
{ int m_test = z->l - z->c; /* test, line 210 */
- if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
}
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 210 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 210 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 210 */
+ { int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
lab0:
@@ -1050,40 +1024,40 @@ static int r_residual_suffix(struct SN_env * z) {
}
extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 216 */
+ { int c1 = z->c; /* do, line 216 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 216 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 217 */
- { int m = z->l - z->c; (void) m; /* do, line 218 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 218 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab1; /* call attached_pronoun, line 218 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 219 */
- { int m = z->l - z->c; (void) m; /* or, line 219 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 219 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 219 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab4; /* call standard_suffix, line 219 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_y_verb_suffix(z);
if (ret == 0) goto lab5; /* call y_verb_suffix, line 220 */
if (ret < 0) return ret;
}
goto lab3;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab2; /* call verb_suffix, line 221 */
if (ret < 0) return ret;
@@ -1091,29 +1065,29 @@ extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
}
lab3:
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 223 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 223 */
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab6; /* call residual_suffix, line 223 */
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
z->c = z->lb;
- { int c = z->c; /* do, line 225 */
+ { int c6 = z->c; /* do, line 225 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 225 */
if (ret < 0) return ret;
}
lab7:
- z->c = c;
+ z->c = c6;
}
return 1;
}
extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void spanish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void spanish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_1_swedish.c b/libstemmer_c/src_c/stem_ISO_8859_1_swedish.c
index c571fd9..f930834 100644
--- a/libstemmer_c/src_c/stem_ISO_8859_1_swedish.c
+++ b/libstemmer_c/src_c/stem_ISO_8859_1_swedish.c
@@ -3,54 +3,68 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int swedish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_other_suffix(struct SN_env * z);
static int r_consonant_pair(struct SN_env * z);
static int r_main_suffix(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * swedish_ISO_8859_1_create_env(void);
extern void swedish_ISO_8859_1_close_env(struct SN_env * z);
-static symbol s_0_0[1] = { 'a' };
-static symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
-static symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
-static symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
-static symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
-static symbol s_0_5[2] = { 'a', 'd' };
-static symbol s_0_6[1] = { 'e' };
-static symbol s_0_7[3] = { 'a', 'd', 'e' };
-static symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
-static symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
-static symbol s_0_10[3] = { 'a', 'r', 'e' };
-static symbol s_0_11[4] = { 'a', 's', 't', 'e' };
-static symbol s_0_12[2] = { 'e', 'n' };
-static symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
-static symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
-static symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
-static symbol s_0_16[3] = { 'e', 'r', 'n' };
-static symbol s_0_17[2] = { 'a', 'r' };
-static symbol s_0_18[2] = { 'e', 'r' };
-static symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
-static symbol s_0_20[2] = { 'o', 'r' };
-static symbol s_0_21[1] = { 's' };
-static symbol s_0_22[2] = { 'a', 's' };
-static symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
-static symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
-static symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
-static symbol s_0_26[2] = { 'e', 's' };
-static symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
-static symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
-static symbol s_0_29[3] = { 'e', 'n', 's' };
-static symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
-static symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
-static symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
-static symbol s_0_33[2] = { 'a', 't' };
-static symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
-static symbol s_0_35[3] = { 'h', 'e', 't' };
-static symbol s_0_36[3] = { 'a', 's', 't' };
-static struct among a_0[37] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
+static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
+static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
+static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
+static const symbol s_0_5[2] = { 'a', 'd' };
+static const symbol s_0_6[1] = { 'e' };
+static const symbol s_0_7[3] = { 'a', 'd', 'e' };
+static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
+static const symbol s_0_10[3] = { 'a', 'r', 'e' };
+static const symbol s_0_11[4] = { 'a', 's', 't', 'e' };
+static const symbol s_0_12[2] = { 'e', 'n' };
+static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
+static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
+static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_16[3] = { 'e', 'r', 'n' };
+static const symbol s_0_17[2] = { 'a', 'r' };
+static const symbol s_0_18[2] = { 'e', 'r' };
+static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_20[2] = { 'o', 'r' };
+static const symbol s_0_21[1] = { 's' };
+static const symbol s_0_22[2] = { 'a', 's' };
+static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
+static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
+static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
+static const symbol s_0_26[2] = { 'e', 's' };
+static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_0_29[3] = { 'e', 'n', 's' };
+static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
+static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
+static const symbol s_0_33[2] = { 'a', 't' };
+static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
+static const symbol s_0_35[3] = { 'h', 'e', 't' };
+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},
@@ -91,15 +105,15 @@ static struct among a_0[37] =
/* 36 */ { 3, s_0_36, -1, 1, 0}
};
-static symbol s_1_0[2] = { 'd', 'd' };
-static symbol s_1_1[2] = { 'g', 'd' };
-static symbol s_1_2[2] = { 'n', 'n' };
-static symbol s_1_3[2] = { 'd', 't' };
-static symbol s_1_4[2] = { 'g', 't' };
-static symbol s_1_5[2] = { 'k', 't' };
-static symbol s_1_6[2] = { 't', 't' };
+static const symbol s_1_0[2] = { 'd', 'd' };
+static const symbol s_1_1[2] = { 'g', 'd' };
+static const symbol s_1_2[2] = { 'n', 'n' };
+static const symbol s_1_3[2] = { 'd', 't' };
+static const symbol s_1_4[2] = { 'g', 't' };
+static const symbol s_1_5[2] = { 'k', 't' };
+static const symbol s_1_6[2] = { 't', 't' };
-static struct among a_1[7] =
+static const struct among a_1[7] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
@@ -110,13 +124,13 @@ static struct among a_1[7] =
/* 6 */ { 2, s_1_6, -1, -1, 0}
};
-static symbol s_2_0[2] = { 'i', 'g' };
-static symbol s_2_1[3] = { 'l', 'i', 'g' };
-static symbol s_2_2[3] = { 'e', 'l', 's' };
-static symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
-static symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[3] = { 'e', 'l', 's' };
+static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
+static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
-static struct among a_2[5] =
+static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
@@ -125,74 +139,62 @@ static struct among a_2[5] =
/* 4 */ { 4, s_2_4, -1, 2, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
+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 };
-static unsigned char g_s_ending[] = { 119, 127, 149 };
+static const unsigned char g_s_ending[] = { 119, 127, 149 };
-static symbol s_0[] = { 'l', 0xF6, 's' };
-static symbol s_1[] = { 'f', 'u', 'l', 'l' };
+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) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 29 */
- { int c = z->c + 3;
- if (0 > c || c > z->l) return 0;
- z->c = c; /* hop, line 29 */
+ { int ret = z->c + 3;
+ if (0 > ret || ret > z->l) return 0;
+ z->c = ret; /* hop, line 29 */
}
z->I[1] = z->c; /* setmark x, line 29 */
z->c = c_test;
}
- while(1) { /* goto, line 30 */
- int c = z->c;
- if (!(in_grouping(z, g_v, 97, 246))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- if (z->c >= z->l) return 0;
- z->c++; /* goto, line 30 */
- }
- while(1) { /* gopast, line 30 */
- if (!(out_grouping(z, g_v, 97, 246))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) return 0;
- z->c++; /* gopast, line 30 */
+ if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
+ { /* gopast */ /* non v, line 30 */
+ 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 lab2;
+ if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
-lab2:
+lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 37 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 37 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 37 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 37 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 44 */
+ { int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b(z, g_s_ending, 98, 121))) return 0;
- { int ret;
- 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); /* delete, line 46 */
if (ret < 0) return ret;
}
break;
@@ -201,101 +203,99 @@ static int r_main_suffix(struct SN_env * z) {
}
static int r_consonant_pair(struct SN_env * z) {
- { int m3; /* setlimit, line 50 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 50 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 50 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* and, line 52 */
- if (!(find_among_b(z, a_1, 7))) { z->lb = m3; return 0; } /* among, line 51 */
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ { 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 = mlimit; return 0; }
+ if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
+ z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
- if (z->c <= z->lb) { z->lb = m3; return 0; }
+ if (z->c <= z->lb) { z->lb = mlimit; return 0; }
z->c--; /* next, line 52 */
z->bra = z->c; /* ], line 52 */
- { int ret;
- ret = slice_del(z); /* delete, line 52 */
+ { int ret = slice_del(z); /* delete, line 52 */
if (ret < 0) return ret;
}
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 55 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 55 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 56 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 57 */
+ { int ret = slice_del(z); /* delete, line 57 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 3, s_0); /* <-, line 58 */
+ { int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
+ { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 66 */
+ { int c1 = z->c; /* do, line 66 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 66 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
- { int m = z->l - z->c; (void) m; /* do, line 68 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 68 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 68 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 69 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 69 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 70 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 70 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 70 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
z->c = z->lb;
return 1;
@@ -303,5 +303,5 @@ extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
-extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_ISO_8859_2_romanian.c b/libstemmer_c/src_c/stem_ISO_8859_2_romanian.c
new file mode 100644
index 0000000..cc72700
--- /dev/null
+++ b/libstemmer_c/src_c/stem_ISO_8859_2_romanian.c
@@ -0,0 +1,998 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#include "../runtime/header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int romanian_ISO_8859_2_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_vowel_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_combo_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_step_0(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * romanian_ISO_8859_2_create_env(void);
+extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'I' };
+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}
+};
+
+static const symbol s_1_0[2] = { 'e', 'a' };
+static const symbol s_1_1[4] = { 'a', 0xFE, 'i', 'a' };
+static const symbol s_1_2[3] = { 'a', 'u', 'a' };
+static const symbol s_1_3[3] = { 'i', 'u', 'a' };
+static const symbol s_1_4[4] = { 'a', 0xFE, 'i', 'e' };
+static const symbol s_1_5[3] = { 'e', 'l', 'e' };
+static const symbol s_1_6[3] = { 'i', 'l', 'e' };
+static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
+static const symbol s_1_8[3] = { 'i', 'e', 'i' };
+static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
+static const symbol s_1_10[2] = { 'i', 'i' };
+static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
+static const symbol s_1_12[2] = { 'u', 'l' };
+static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
+static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
+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}
+};
+
+static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
+static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
+static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
+static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
+static const symbol s_2_5[6] = { 'a', 0xFE, 'i', 'u', 'n', 'e' };
+static const symbol s_2_6[6] = { 'i', 0xFE, 'i', 'u', 'n', 'e' };
+static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_9[6] = { 0xE3, 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
+static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
+static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
+static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
+static const symbol s_2_21[5] = { 0xE3, 't', 'o', 'r', 'i' };
+static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
+static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
+static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
+static const symbol s_2_28[6] = { 'i', 'c', 'i', 't', 0xE3, 'i' };
+static const symbol s_2_29[8] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 'i' };
+static const symbol s_2_30[6] = { 'i', 'v', 'i', 't', 0xE3, 'i' };
+static const symbol s_2_31[7] = { 'i', 'c', 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_2_32[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_2_33[7] = { 'i', 'v', 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
+static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
+static const symbol s_2_38[4] = { 0xE3, 't', 'o', 'r' };
+static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
+static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
+static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
+static const symbol s_2_42[5] = { 'i', 'c', 'a', 'l', 0xE3 };
+static const symbol s_2_43[5] = { 'i', 'c', 'i', 'v', 0xE3 };
+static const symbol s_2_44[5] = { 'a', 't', 'i', 'v', 0xE3 };
+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}
+};
+
+static const symbol s_3_0[3] = { 'i', 'c', 'a' };
+static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
+static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
+static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
+static const symbol s_3_4[3] = { 'a', 't', 'a' };
+static const symbol s_3_5[3] = { 'i', 't', 'a' };
+static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
+static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_3_8[3] = { 'u', 't', 'a' };
+static const symbol s_3_9[3] = { 'i', 'v', 'a' };
+static const symbol s_3_10[2] = { 'i', 'c' };
+static const symbol s_3_11[3] = { 'i', 'c', 'e' };
+static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
+static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
+static const symbol s_3_17[3] = { 'a', 't', 'e' };
+static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_19[3] = { 'i', 't', 'e' };
+static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_3_22[3] = { 'u', 't', 'e' };
+static const symbol s_3_23[3] = { 'i', 'v', 'e' };
+static const symbol s_3_24[3] = { 'i', 'c', 'i' };
+static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
+static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_3_29[3] = { 'o', 's', 'i' };
+static const symbol s_3_30[3] = { 'a', 't', 'i' };
+static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_32[3] = { 'i', 't', 'i' };
+static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
+static const symbol s_3_35[3] = { 'u', 't', 'i' };
+static const symbol s_3_36[4] = { 'i', 0xBA, 't', 'i' };
+static const symbol s_3_37[3] = { 'i', 'v', 'i' };
+static const symbol s_3_38[3] = { 'o', 0xBA, 'i' };
+static const symbol s_3_39[4] = { 'i', 't', 0xE3, 'i' };
+static const symbol s_3_40[5] = { 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
+static const symbol s_3_43[3] = { 'i', 's', 'm' };
+static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_45[2] = { 'o', 's' };
+static const symbol s_3_46[2] = { 'a', 't' };
+static const symbol s_3_47[2] = { 'i', 't' };
+static const symbol s_3_48[3] = { 'a', 'n', 't' };
+static const symbol s_3_49[3] = { 'i', 's', 't' };
+static const symbol s_3_50[2] = { 'u', 't' };
+static const symbol s_3_51[2] = { 'i', 'v' };
+static const symbol s_3_52[3] = { 'i', 'c', 0xE3 };
+static const symbol s_3_53[5] = { 'a', 'b', 'i', 'l', 0xE3 };
+static const symbol s_3_54[5] = { 'i', 'b', 'i', 'l', 0xE3 };
+static const symbol s_3_55[4] = { 'o', 'a', 's', 0xE3 };
+static const symbol s_3_56[3] = { 'a', 't', 0xE3 };
+static const symbol s_3_57[3] = { 'i', 't', 0xE3 };
+static const symbol s_3_58[4] = { 'a', 'n', 't', 0xE3 };
+static const symbol s_3_59[4] = { 'i', 's', 't', 0xE3 };
+static const symbol s_3_60[3] = { 'u', 't', 0xE3 };
+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}
+};
+
+static const symbol s_4_0[2] = { 'e', 'a' };
+static const symbol s_4_1[2] = { 'i', 'a' };
+static const symbol s_4_2[3] = { 'e', 's', 'c' };
+static const symbol s_4_3[3] = { 0xE3, 's', 'c' };
+static const symbol s_4_4[3] = { 'i', 'n', 'd' };
+static const symbol s_4_5[3] = { 0xE2, 'n', 'd' };
+static const symbol s_4_6[3] = { 'a', 'r', 'e' };
+static const symbol s_4_7[3] = { 'e', 'r', 'e' };
+static const symbol s_4_8[3] = { 'i', 'r', 'e' };
+static const symbol s_4_9[3] = { 0xE2, 'r', 'e' };
+static const symbol s_4_10[2] = { 's', 'e' };
+static const symbol s_4_11[3] = { 'a', 's', 'e' };
+static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
+static const symbol s_4_13[3] = { 'i', 's', 'e' };
+static const symbol s_4_14[3] = { 'u', 's', 'e' };
+static const symbol s_4_15[3] = { 0xE2, 's', 'e' };
+static const symbol s_4_16[4] = { 'e', 0xBA, 't', 'e' };
+static const symbol s_4_17[4] = { 0xE3, 0xBA, 't', 'e' };
+static const symbol s_4_18[3] = { 'e', 'z', 'e' };
+static const symbol s_4_19[2] = { 'a', 'i' };
+static const symbol s_4_20[3] = { 'e', 'a', 'i' };
+static const symbol s_4_21[3] = { 'i', 'a', 'i' };
+static const symbol s_4_22[3] = { 's', 'e', 'i' };
+static const symbol s_4_23[4] = { 'e', 0xBA, 't', 'i' };
+static const symbol s_4_24[4] = { 0xE3, 0xBA, 't', 'i' };
+static const symbol s_4_25[2] = { 'u', 'i' };
+static const symbol s_4_26[3] = { 'e', 'z', 'i' };
+static const symbol s_4_27[3] = { 'a', 0xBA, 'i' };
+static const symbol s_4_28[4] = { 's', 'e', 0xBA, 'i' };
+static const symbol s_4_29[5] = { 'a', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_30[6] = { 's', 'e', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_31[5] = { 'i', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_32[5] = { 'u', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_33[5] = { 0xE2, 's', 'e', 0xBA, 'i' };
+static const symbol s_4_34[3] = { 'i', 0xBA, 'i' };
+static const symbol s_4_35[3] = { 'u', 0xBA, 'i' };
+static const symbol s_4_36[3] = { 0xE2, 0xBA, 'i' };
+static const symbol s_4_37[2] = { 0xE2, 'i' };
+static const symbol s_4_38[3] = { 'a', 0xFE, 'i' };
+static const symbol s_4_39[4] = { 'e', 'a', 0xFE, 'i' };
+static const symbol s_4_40[4] = { 'i', 'a', 0xFE, 'i' };
+static const symbol s_4_41[3] = { 'e', 0xFE, 'i' };
+static const symbol s_4_42[3] = { 'i', 0xFE, 'i' };
+static const symbol s_4_43[3] = { 0xE2, 0xFE, 'i' };
+static const symbol s_4_44[5] = { 'a', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_45[6] = { 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_46[7] = { 'a', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_47[8] = { 's', 'e', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_48[7] = { 'i', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_49[7] = { 'u', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_50[7] = { 0xE2, 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_51[5] = { 'i', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_52[5] = { 'u', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_53[5] = { 0xE2, 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_54[2] = { 'a', 'm' };
+static const symbol s_4_55[3] = { 'e', 'a', 'm' };
+static const symbol s_4_56[3] = { 'i', 'a', 'm' };
+static const symbol s_4_57[2] = { 'e', 'm' };
+static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
+static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
+static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
+static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
+static const symbol s_4_62[4] = { 0xE2, 's', 'e', 'm' };
+static const symbol s_4_63[2] = { 'i', 'm' };
+static const symbol s_4_64[2] = { 0xE2, 'm' };
+static const symbol s_4_65[2] = { 0xE3, 'm' };
+static const symbol s_4_66[4] = { 'a', 'r', 0xE3, 'm' };
+static const symbol s_4_67[5] = { 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_68[6] = { 'a', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_69[7] = { 's', 'e', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_70[6] = { 'i', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_71[6] = { 'u', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_72[6] = { 0xE2, 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_73[4] = { 'i', 'r', 0xE3, 'm' };
+static const symbol s_4_74[4] = { 'u', 'r', 0xE3, 'm' };
+static const symbol s_4_75[4] = { 0xE2, 'r', 0xE3, 'm' };
+static const symbol s_4_76[2] = { 'a', 'u' };
+static const symbol s_4_77[3] = { 'e', 'a', 'u' };
+static const symbol s_4_78[3] = { 'i', 'a', 'u' };
+static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
+static const symbol s_4_80[4] = { 0xE2, 'n', 'd', 'u' };
+static const symbol s_4_81[2] = { 'e', 'z' };
+static const symbol s_4_82[5] = { 'e', 'a', 's', 'c', 0xE3 };
+static const symbol s_4_83[3] = { 'a', 'r', 0xE3 };
+static const symbol s_4_84[4] = { 's', 'e', 'r', 0xE3 };
+static const symbol s_4_85[5] = { 'a', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_86[6] = { 's', 'e', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_87[5] = { 'i', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_88[5] = { 'u', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_89[5] = { 0xE2, 's', 'e', 'r', 0xE3 };
+static const symbol s_4_90[3] = { 'i', 'r', 0xE3 };
+static const symbol s_4_91[3] = { 'u', 'r', 0xE3 };
+static const symbol s_4_92[3] = { 0xE2, 'r', 0xE3 };
+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}
+};
+
+static const symbol s_5_0[1] = { 'a' };
+static const symbol s_5_1[1] = { 'e' };
+static const symbol s_5_2[2] = { 'i', 'e' };
+static const symbol s_5_3[1] = { 'i' };
+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}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 };
+
+static const symbol s_0[] = { 'u' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'I' };
+static const symbol s_4[] = { 'i' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'a', 'b' };
+static const symbol s_10[] = { 'i' };
+static const symbol s_11[] = { 'a', 't' };
+static const symbol s_12[] = { 'a', 0xFE, 'i' };
+static const symbol s_13[] = { 'a', 'b', 'i', 'l' };
+static const symbol s_14[] = { 'i', 'b', 'i', 'l' };
+static const symbol s_15[] = { 'i', 'v' };
+static const symbol s_16[] = { 'i', 'c' };
+static const symbol s_17[] = { 'a', 't' };
+static const symbol s_18[] = { 'i', 't' };
+static const symbol s_19[] = { 0xFE };
+static const symbol s_20[] = { 't' };
+static const symbol s_21[] = { 'i', 's', 't' };
+static const symbol s_22[] = { 'u' };
+
+static int r_prelude(struct SN_env * z) {
+ while(1) { /* repeat, line 32 */
+ int c1 = z->c;
+ while(1) { /* goto, line 32 */
+ int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
+ z->bra = z->c; /* [, line 33 */
+ { int c3 = z->c; /* or, line 33 */
+ if (!(eq_s(z, 1, s_0))) goto lab3;
+ z->ket = z->c; /* ], line 33 */
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab3;
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 33 */
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ if (!(eq_s(z, 1, s_2))) goto lab1;
+ z->ket = z->c; /* ], line 34 */
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 34 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ if (z->c >= z->l) goto lab0;
+ z->c++; /* goto, line 32 */
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[0] = z->l;
+ z->I[1] = z->l;
+ z->I[2] = z->l;
+ { 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;
+ { int c3 = z->c; /* or, line 45 */
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 45 */
+ int ret = out_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
+ { /* gopast */ /* non v, line 45 */
+ int ret = in_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 47 */
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 47 */
+ int ret = out_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
+ if (z->c >= z->l) goto lab0;
+ z->c++; /* next, line 47 */
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[0] = z->c; /* setmark pV, line 48 */
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c; /* do, line 50 */
+ { /* gopast */ /* grouping v, line 51 */
+ 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 */
+ 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 */
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) { /* repeat, line 56 */
+ 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
+ among_var = find_among(z, a_0, 3); /* substring, line 58 */
+ if (!(among_var)) goto lab0;
+ z->ket = z->c; /* ], line 58 */
+ switch(among_var) {
+ case 0: goto lab0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 59 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c >= z->l) goto lab0;
+ z->c++; /* next, line 61 */
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+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) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_1, 16); /* substring, line 73 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 73 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 73 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 75 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 77 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 79 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 81 */
+ 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_9))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_11); /* <-, line 85 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 87 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_combo_suffix(struct SN_env * z) {
+ int among_var;
+ { int m_test = 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 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 92 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 92 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 4, s_13); /* <-, line 101 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 104 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_15); /* <-, line 107 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 113 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_17); /* <-, line 118 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_18); /* <-, line 122 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->B[0] = 1; /* set standard_suffix_removed, line 125 */
+ z->c = z->l - m_test;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->B[0] = 0; /* unset standard_suffix_removed, line 130 */
+ while(1) { /* repeat, line 131 */
+ int m1 = z->l - z->c; (void)m1;
+ { int ret = r_combo_suffix(z);
+ if (ret == 0) goto lab0; /* call combo_suffix, line 131 */
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ z->ket = z->c; /* [, line 132 */
+ among_var = find_among_b(z, a_3, 62); /* substring, line 132 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 132 */
+ { int ret = r_R2(z);
+ if (ret == 0) return 0; /* call R2, line 132 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 149 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(eq_s_b(z, 1, s_19))) return 0;
+ z->bra = z->c; /* ], line 152 */
+ { int ret = slice_from_s(z, 1, s_20); /* <-, line 152 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_21); /* <-, line 156 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->B[0] = 1; /* set standard_suffix_removed, line 160 */
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+ { int mlimit; /* setlimit, line 164 */
+ int m1 = z->l - z->c; (void)m1;
+ if (z->c < z->I[0]) return 0;
+ z->c = z->I[0]; /* tomark, line 164 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 165 */
+ among_var = find_among_b(z, a_4, 94); /* substring, line 165 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 165 */
+ switch(among_var) {
+ case 0: { z->lb = mlimit; return 0; }
+ 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;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 1, s_22))) { z->lb = mlimit; return 0; }
+ }
+ lab0:
+ { int ret = slice_del(z); /* delete, line 200 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z); /* delete, line 214 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit;
+ }
+ return 1;
+}
+
+static int r_vowel_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c; /* [, line 219 */
+ among_var = find_among_b(z, a_5, 5); /* substring, line 219 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 219 */
+ { int ret = r_RV(z);
+ if (ret == 0) return 0; /* call RV, line 219 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 220 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int romanian_ISO_8859_2_stem(struct SN_env * z) {
+ { int c1 = z->c; /* do, line 226 */
+ { int ret = r_prelude(z);
+ if (ret == 0) goto lab0; /* call prelude, line 226 */
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c; /* do, line 227 */
+ { int ret = r_mark_regions(z);
+ if (ret == 0) goto lab1; /* call mark_regions, line 227 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = c2;
+ }
+ z->lb = z->c; z->c = z->l; /* backwards, line 228 */
+
+ { int m3 = z->l - z->c; (void)m3; /* do, line 229 */
+ { int ret = r_step_0(z);
+ if (ret == 0) goto lab2; /* call step_0, line 229 */
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4; /* do, line 230 */
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab3; /* call standard_suffix, line 230 */
+ if (ret < 0) return ret;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5; /* do, line 231 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 231 */
+ if (!(z->B[0])) goto lab6; /* Boolean test standard_suffix_removed, line 231 */
+ goto lab5;
+ lab6:
+ z->c = z->l - m6;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ lab4:
+ z->c = z->l - m5;
+ }
+ { int m7 = z->l - z->c; (void)m7; /* do, line 232 */
+ { int ret = r_vowel_suffix(z);
+ if (ret == 0) goto lab7; /* call vowel_suffix, line 232 */
+ if (ret < 0) return ret;
+ }
+ lab7:
+ z->c = z->l - m7;
+ }
+ z->c = z->lb;
+ { int c8 = z->c; /* do, line 234 */
+ { int ret = r_postlude(z);
+ if (ret == 0) goto lab8; /* call postlude, line 234 */
+ if (ret < 0) return ret;
+ }
+ lab8:
+ z->c = c8;
+ }
+ return 1;
+}
+
+extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 3, 1); }
+
+extern void romanian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/libstemmer_c/src_c/stem_ISO_8859_2_romanian.h b/libstemmer_c/src_c/stem_ISO_8859_2_romanian.h
new file mode 100644
index 0000000..931f269
--- /dev/null
+++ b/libstemmer_c/src_c/stem_ISO_8859_2_romanian.h
@@ -0,0 +1,16 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * romanian_ISO_8859_2_create_env(void);
+extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
+
+extern int romanian_ISO_8859_2_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/libstemmer_c/src_c/stem_KOI8_R_russian.c b/libstemmer_c/src_c/stem_KOI8_R_russian.c
index 0a68a3b..3d93a9c 100644
--- a/libstemmer_c/src_c/stem_KOI8_R_russian.c
+++ b/libstemmer_c/src_c/stem_KOI8_R_russian.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int russian_KOI8_R_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_tidy_up(struct SN_env * z);
static int r_derivational(struct SN_env * z);
static int r_noun(struct SN_env * z);
@@ -14,21 +20,29 @@ static int r_adjective(struct SN_env * z);
static int r_perfective_gerund(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 * russian_KOI8_R_create_env(void);
extern void russian_KOI8_R_close_env(struct SN_env * z);
-static symbol s_0_0[3] = { 0xD7, 0xDB, 0xC9 };
-static symbol s_0_1[4] = { 0xC9, 0xD7, 0xDB, 0xC9 };
-static symbol s_0_2[4] = { 0xD9, 0xD7, 0xDB, 0xC9 };
-static symbol s_0_3[1] = { 0xD7 };
-static symbol s_0_4[2] = { 0xC9, 0xD7 };
-static symbol s_0_5[2] = { 0xD9, 0xD7 };
-static symbol s_0_6[5] = { 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
-static symbol s_0_7[6] = { 0xC9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
-static symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
-
-static struct among a_0[9] =
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 0xD7, 0xDB, 0xC9 };
+static const symbol s_0_1[4] = { 0xC9, 0xD7, 0xDB, 0xC9 };
+static const symbol s_0_2[4] = { 0xD9, 0xD7, 0xDB, 0xC9 };
+static const symbol s_0_3[1] = { 0xD7 };
+static const symbol s_0_4[2] = { 0xC9, 0xD7 };
+static const symbol s_0_5[2] = { 0xD9, 0xD7 };
+static const symbol s_0_6[5] = { 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
+static const symbol s_0_7[6] = { 0xC9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
+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},
@@ -41,34 +55,34 @@ static struct among a_0[9] =
/* 8 */ { 6, s_0_8, 6, 2, 0}
};
-static symbol s_1_0[2] = { 0xC0, 0xC0 };
-static symbol s_1_1[2] = { 0xC5, 0xC0 };
-static symbol s_1_2[2] = { 0xCF, 0xC0 };
-static symbol s_1_3[2] = { 0xD5, 0xC0 };
-static symbol s_1_4[2] = { 0xC5, 0xC5 };
-static symbol s_1_5[2] = { 0xC9, 0xC5 };
-static symbol s_1_6[2] = { 0xCF, 0xC5 };
-static symbol s_1_7[2] = { 0xD9, 0xC5 };
-static symbol s_1_8[2] = { 0xC9, 0xC8 };
-static symbol s_1_9[2] = { 0xD9, 0xC8 };
-static symbol s_1_10[3] = { 0xC9, 0xCD, 0xC9 };
-static symbol s_1_11[3] = { 0xD9, 0xCD, 0xC9 };
-static symbol s_1_12[2] = { 0xC5, 0xCA };
-static symbol s_1_13[2] = { 0xC9, 0xCA };
-static symbol s_1_14[2] = { 0xCF, 0xCA };
-static symbol s_1_15[2] = { 0xD9, 0xCA };
-static symbol s_1_16[2] = { 0xC5, 0xCD };
-static symbol s_1_17[2] = { 0xC9, 0xCD };
-static symbol s_1_18[2] = { 0xCF, 0xCD };
-static symbol s_1_19[2] = { 0xD9, 0xCD };
-static symbol s_1_20[3] = { 0xC5, 0xC7, 0xCF };
-static symbol s_1_21[3] = { 0xCF, 0xC7, 0xCF };
-static symbol s_1_22[2] = { 0xC1, 0xD1 };
-static symbol s_1_23[2] = { 0xD1, 0xD1 };
-static symbol s_1_24[3] = { 0xC5, 0xCD, 0xD5 };
-static symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 };
-
-static struct among a_1[26] =
+static const symbol s_1_0[2] = { 0xC0, 0xC0 };
+static const symbol s_1_1[2] = { 0xC5, 0xC0 };
+static const symbol s_1_2[2] = { 0xCF, 0xC0 };
+static const symbol s_1_3[2] = { 0xD5, 0xC0 };
+static const symbol s_1_4[2] = { 0xC5, 0xC5 };
+static const symbol s_1_5[2] = { 0xC9, 0xC5 };
+static const symbol s_1_6[2] = { 0xCF, 0xC5 };
+static const symbol s_1_7[2] = { 0xD9, 0xC5 };
+static const symbol s_1_8[2] = { 0xC9, 0xC8 };
+static const symbol s_1_9[2] = { 0xD9, 0xC8 };
+static const symbol s_1_10[3] = { 0xC9, 0xCD, 0xC9 };
+static const symbol s_1_11[3] = { 0xD9, 0xCD, 0xC9 };
+static const symbol s_1_12[2] = { 0xC5, 0xCA };
+static const symbol s_1_13[2] = { 0xC9, 0xCA };
+static const symbol s_1_14[2] = { 0xCF, 0xCA };
+static const symbol s_1_15[2] = { 0xD9, 0xCA };
+static const symbol s_1_16[2] = { 0xC5, 0xCD };
+static const symbol s_1_17[2] = { 0xC9, 0xCD };
+static const symbol s_1_18[2] = { 0xCF, 0xCD };
+static const symbol s_1_19[2] = { 0xD9, 0xCD };
+static const symbol s_1_20[3] = { 0xC5, 0xC7, 0xCF };
+static const symbol s_1_21[3] = { 0xCF, 0xC7, 0xCF };
+static const symbol s_1_22[2] = { 0xC1, 0xD1 };
+static const symbol s_1_23[2] = { 0xD1, 0xD1 };
+static const symbol s_1_24[3] = { 0xC5, 0xCD, 0xD5 };
+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},
@@ -98,16 +112,16 @@ static struct among a_1[26] =
/* 25 */ { 3, s_1_25, -1, 1, 0}
};
-static symbol s_2_0[2] = { 0xC5, 0xCD };
-static symbol s_2_1[2] = { 0xCE, 0xCE };
-static symbol s_2_2[2] = { 0xD7, 0xDB };
-static symbol s_2_3[3] = { 0xC9, 0xD7, 0xDB };
-static symbol s_2_4[3] = { 0xD9, 0xD7, 0xDB };
-static symbol s_2_5[1] = { 0xDD };
-static symbol s_2_6[2] = { 0xC0, 0xDD };
-static symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
+static const symbol s_2_0[2] = { 0xC5, 0xCD };
+static const symbol s_2_1[2] = { 0xCE, 0xCE };
+static const symbol s_2_2[2] = { 0xD7, 0xDB };
+static const symbol s_2_3[3] = { 0xC9, 0xD7, 0xDB };
+static const symbol s_2_4[3] = { 0xD9, 0xD7, 0xDB };
+static const symbol s_2_5[1] = { 0xDD };
+static const symbol s_2_6[2] = { 0xC0, 0xDD };
+static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
-static struct among a_2[8] =
+static const struct among a_2[8] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 2, s_2_1, -1, 1, 0},
@@ -119,63 +133,63 @@ static struct among a_2[8] =
/* 7 */ { 3, s_2_7, 6, 2, 0}
};
-static symbol s_3_0[2] = { 0xD3, 0xD1 };
-static symbol s_3_1[2] = { 0xD3, 0xD8 };
+static const symbol s_3_0[2] = { 0xD3, 0xD1 };
+static const symbol s_3_1[2] = { 0xD3, 0xD8 };
-static struct among a_3[2] =
+static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 2, s_3_1, -1, 1, 0}
};
-static symbol s_4_0[1] = { 0xC0 };
-static symbol s_4_1[2] = { 0xD5, 0xC0 };
-static symbol s_4_2[2] = { 0xCC, 0xC1 };
-static symbol s_4_3[3] = { 0xC9, 0xCC, 0xC1 };
-static symbol s_4_4[3] = { 0xD9, 0xCC, 0xC1 };
-static symbol s_4_5[2] = { 0xCE, 0xC1 };
-static symbol s_4_6[3] = { 0xC5, 0xCE, 0xC1 };
-static symbol s_4_7[3] = { 0xC5, 0xD4, 0xC5 };
-static symbol s_4_8[3] = { 0xC9, 0xD4, 0xC5 };
-static symbol s_4_9[3] = { 0xCA, 0xD4, 0xC5 };
-static symbol s_4_10[4] = { 0xC5, 0xCA, 0xD4, 0xC5 };
-static symbol s_4_11[4] = { 0xD5, 0xCA, 0xD4, 0xC5 };
-static symbol s_4_12[2] = { 0xCC, 0xC9 };
-static symbol s_4_13[3] = { 0xC9, 0xCC, 0xC9 };
-static symbol s_4_14[3] = { 0xD9, 0xCC, 0xC9 };
-static symbol s_4_15[1] = { 0xCA };
-static symbol s_4_16[2] = { 0xC5, 0xCA };
-static symbol s_4_17[2] = { 0xD5, 0xCA };
-static symbol s_4_18[1] = { 0xCC };
-static symbol s_4_19[2] = { 0xC9, 0xCC };
-static symbol s_4_20[2] = { 0xD9, 0xCC };
-static symbol s_4_21[2] = { 0xC5, 0xCD };
-static symbol s_4_22[2] = { 0xC9, 0xCD };
-static symbol s_4_23[2] = { 0xD9, 0xCD };
-static symbol s_4_24[1] = { 0xCE };
-static symbol s_4_25[2] = { 0xC5, 0xCE };
-static symbol s_4_26[2] = { 0xCC, 0xCF };
-static symbol s_4_27[3] = { 0xC9, 0xCC, 0xCF };
-static symbol s_4_28[3] = { 0xD9, 0xCC, 0xCF };
-static symbol s_4_29[2] = { 0xCE, 0xCF };
-static symbol s_4_30[3] = { 0xC5, 0xCE, 0xCF };
-static symbol s_4_31[3] = { 0xCE, 0xCE, 0xCF };
-static symbol s_4_32[2] = { 0xC0, 0xD4 };
-static symbol s_4_33[3] = { 0xD5, 0xC0, 0xD4 };
-static symbol s_4_34[2] = { 0xC5, 0xD4 };
-static symbol s_4_35[3] = { 0xD5, 0xC5, 0xD4 };
-static symbol s_4_36[2] = { 0xC9, 0xD4 };
-static symbol s_4_37[2] = { 0xD1, 0xD4 };
-static symbol s_4_38[2] = { 0xD9, 0xD4 };
-static symbol s_4_39[2] = { 0xD4, 0xD8 };
-static symbol s_4_40[3] = { 0xC9, 0xD4, 0xD8 };
-static symbol s_4_41[3] = { 0xD9, 0xD4, 0xD8 };
-static symbol s_4_42[3] = { 0xC5, 0xDB, 0xD8 };
-static symbol s_4_43[3] = { 0xC9, 0xDB, 0xD8 };
-static symbol s_4_44[2] = { 0xCE, 0xD9 };
-static symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 };
-
-static struct among a_4[46] =
+static const symbol s_4_0[1] = { 0xC0 };
+static const symbol s_4_1[2] = { 0xD5, 0xC0 };
+static const symbol s_4_2[2] = { 0xCC, 0xC1 };
+static const symbol s_4_3[3] = { 0xC9, 0xCC, 0xC1 };
+static const symbol s_4_4[3] = { 0xD9, 0xCC, 0xC1 };
+static const symbol s_4_5[2] = { 0xCE, 0xC1 };
+static const symbol s_4_6[3] = { 0xC5, 0xCE, 0xC1 };
+static const symbol s_4_7[3] = { 0xC5, 0xD4, 0xC5 };
+static const symbol s_4_8[3] = { 0xC9, 0xD4, 0xC5 };
+static const symbol s_4_9[3] = { 0xCA, 0xD4, 0xC5 };
+static const symbol s_4_10[4] = { 0xC5, 0xCA, 0xD4, 0xC5 };
+static const symbol s_4_11[4] = { 0xD5, 0xCA, 0xD4, 0xC5 };
+static const symbol s_4_12[2] = { 0xCC, 0xC9 };
+static const symbol s_4_13[3] = { 0xC9, 0xCC, 0xC9 };
+static const symbol s_4_14[3] = { 0xD9, 0xCC, 0xC9 };
+static const symbol s_4_15[1] = { 0xCA };
+static const symbol s_4_16[2] = { 0xC5, 0xCA };
+static const symbol s_4_17[2] = { 0xD5, 0xCA };
+static const symbol s_4_18[1] = { 0xCC };
+static const symbol s_4_19[2] = { 0xC9, 0xCC };
+static const symbol s_4_20[2] = { 0xD9, 0xCC };
+static const symbol s_4_21[2] = { 0xC5, 0xCD };
+static const symbol s_4_22[2] = { 0xC9, 0xCD };
+static const symbol s_4_23[2] = { 0xD9, 0xCD };
+static const symbol s_4_24[1] = { 0xCE };
+static const symbol s_4_25[2] = { 0xC5, 0xCE };
+static const symbol s_4_26[2] = { 0xCC, 0xCF };
+static const symbol s_4_27[3] = { 0xC9, 0xCC, 0xCF };
+static const symbol s_4_28[3] = { 0xD9, 0xCC, 0xCF };
+static const symbol s_4_29[2] = { 0xCE, 0xCF };
+static const symbol s_4_30[3] = { 0xC5, 0xCE, 0xCF };
+static const symbol s_4_31[3] = { 0xCE, 0xCE, 0xCF };
+static const symbol s_4_32[2] = { 0xC0, 0xD4 };
+static const symbol s_4_33[3] = { 0xD5, 0xC0, 0xD4 };
+static const symbol s_4_34[2] = { 0xC5, 0xD4 };
+static const symbol s_4_35[3] = { 0xD5, 0xC5, 0xD4 };
+static const symbol s_4_36[2] = { 0xC9, 0xD4 };
+static const symbol s_4_37[2] = { 0xD1, 0xD4 };
+static const symbol s_4_38[2] = { 0xD9, 0xD4 };
+static const symbol s_4_39[2] = { 0xD4, 0xD8 };
+static const symbol s_4_40[3] = { 0xC9, 0xD4, 0xD8 };
+static const symbol s_4_41[3] = { 0xD9, 0xD4, 0xD8 };
+static const symbol s_4_42[3] = { 0xC5, 0xDB, 0xD8 };
+static const symbol s_4_43[3] = { 0xC9, 0xDB, 0xD8 };
+static const symbol s_4_44[2] = { 0xCE, 0xD9 };
+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},
@@ -225,44 +239,44 @@ static struct among a_4[46] =
/* 45 */ { 3, s_4_45, 44, 2, 0}
};
-static symbol s_5_0[1] = { 0xC0 };
-static symbol s_5_1[2] = { 0xC9, 0xC0 };
-static symbol s_5_2[2] = { 0xD8, 0xC0 };
-static symbol s_5_3[1] = { 0xC1 };
-static symbol s_5_4[1] = { 0xC5 };
-static symbol s_5_5[2] = { 0xC9, 0xC5 };
-static symbol s_5_6[2] = { 0xD8, 0xC5 };
-static symbol s_5_7[2] = { 0xC1, 0xC8 };
-static symbol s_5_8[2] = { 0xD1, 0xC8 };
-static symbol s_5_9[3] = { 0xC9, 0xD1, 0xC8 };
-static symbol s_5_10[1] = { 0xC9 };
-static symbol s_5_11[2] = { 0xC5, 0xC9 };
-static symbol s_5_12[2] = { 0xC9, 0xC9 };
-static symbol s_5_13[3] = { 0xC1, 0xCD, 0xC9 };
-static symbol s_5_14[3] = { 0xD1, 0xCD, 0xC9 };
-static symbol s_5_15[4] = { 0xC9, 0xD1, 0xCD, 0xC9 };
-static symbol s_5_16[1] = { 0xCA };
-static symbol s_5_17[2] = { 0xC5, 0xCA };
-static symbol s_5_18[3] = { 0xC9, 0xC5, 0xCA };
-static symbol s_5_19[2] = { 0xC9, 0xCA };
-static symbol s_5_20[2] = { 0xCF, 0xCA };
-static symbol s_5_21[2] = { 0xC1, 0xCD };
-static symbol s_5_22[2] = { 0xC5, 0xCD };
-static symbol s_5_23[3] = { 0xC9, 0xC5, 0xCD };
-static symbol s_5_24[2] = { 0xCF, 0xCD };
-static symbol s_5_25[2] = { 0xD1, 0xCD };
-static symbol s_5_26[3] = { 0xC9, 0xD1, 0xCD };
-static symbol s_5_27[1] = { 0xCF };
-static symbol s_5_28[1] = { 0xD1 };
-static symbol s_5_29[2] = { 0xC9, 0xD1 };
-static symbol s_5_30[2] = { 0xD8, 0xD1 };
-static symbol s_5_31[1] = { 0xD5 };
-static symbol s_5_32[2] = { 0xC5, 0xD7 };
-static symbol s_5_33[2] = { 0xCF, 0xD7 };
-static symbol s_5_34[1] = { 0xD8 };
-static symbol s_5_35[1] = { 0xD9 };
-
-static struct among a_5[36] =
+static const symbol s_5_0[1] = { 0xC0 };
+static const symbol s_5_1[2] = { 0xC9, 0xC0 };
+static const symbol s_5_2[2] = { 0xD8, 0xC0 };
+static const symbol s_5_3[1] = { 0xC1 };
+static const symbol s_5_4[1] = { 0xC5 };
+static const symbol s_5_5[2] = { 0xC9, 0xC5 };
+static const symbol s_5_6[2] = { 0xD8, 0xC5 };
+static const symbol s_5_7[2] = { 0xC1, 0xC8 };
+static const symbol s_5_8[2] = { 0xD1, 0xC8 };
+static const symbol s_5_9[3] = { 0xC9, 0xD1, 0xC8 };
+static const symbol s_5_10[1] = { 0xC9 };
+static const symbol s_5_11[2] = { 0xC5, 0xC9 };
+static const symbol s_5_12[2] = { 0xC9, 0xC9 };
+static const symbol s_5_13[3] = { 0xC1, 0xCD, 0xC9 };
+static const symbol s_5_14[3] = { 0xD1, 0xCD, 0xC9 };
+static const symbol s_5_15[4] = { 0xC9, 0xD1, 0xCD, 0xC9 };
+static const symbol s_5_16[1] = { 0xCA };
+static const symbol s_5_17[2] = { 0xC5, 0xCA };
+static const symbol s_5_18[3] = { 0xC9, 0xC5, 0xCA };
+static const symbol s_5_19[2] = { 0xC9, 0xCA };
+static const symbol s_5_20[2] = { 0xCF, 0xCA };
+static const symbol s_5_21[2] = { 0xC1, 0xCD };
+static const symbol s_5_22[2] = { 0xC5, 0xCD };
+static const symbol s_5_23[3] = { 0xC9, 0xC5, 0xCD };
+static const symbol s_5_24[2] = { 0xCF, 0xCD };
+static const symbol s_5_25[2] = { 0xD1, 0xCD };
+static const symbol s_5_26[3] = { 0xC9, 0xD1, 0xCD };
+static const symbol s_5_27[1] = { 0xCF };
+static const symbol s_5_28[1] = { 0xD1 };
+static const symbol s_5_29[2] = { 0xC9, 0xD1 };
+static const symbol s_5_30[2] = { 0xD8, 0xD1 };
+static const symbol s_5_31[1] = { 0xD5 };
+static const symbol s_5_32[2] = { 0xC5, 0xD7 };
+static const symbol s_5_33[2] = { 0xCF, 0xD7 };
+static const symbol s_5_34[1] = { 0xD8 };
+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},
@@ -302,21 +316,21 @@ static struct among a_5[36] =
/* 35 */ { 1, s_5_35, -1, 1, 0}
};
-static symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
-static symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
+static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
+static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
-static struct among a_6[2] =
+static const struct among a_6[2] =
{
/* 0 */ { 3, s_6_0, -1, 1, 0},
/* 1 */ { 4, s_6_1, -1, 1, 0}
};
-static symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
-static symbol s_7_1[1] = { 0xCE };
-static symbol s_7_2[1] = { 0xD8 };
-static symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
+static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
+static const symbol s_7_1[1] = { 0xCE };
+static const symbol s_7_2[1] = { 0xD8 };
+static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
-static struct among a_7[4] =
+static const struct among a_7[4] =
{
/* 0 */ { 4, s_7_0, -1, 1, 0},
/* 1 */ { 1, s_7_1, -1, 2, 0},
@@ -324,55 +338,47 @@ static struct among a_7[4] =
/* 3 */ { 3, s_7_3, -1, 1, 0}
};
-static unsigned char g_v[] = { 35, 130, 34, 18 };
+static const unsigned char g_v[] = { 35, 130, 34, 18 };
-static symbol s_0[] = { 0xC1 };
-static symbol s_1[] = { 0xD1 };
-static symbol s_2[] = { 0xC1 };
-static symbol s_3[] = { 0xD1 };
-static symbol s_4[] = { 0xC1 };
-static symbol s_5[] = { 0xD1 };
-static symbol s_6[] = { 0xCE };
-static symbol s_7[] = { 0xCE };
-static symbol s_8[] = { 0xCE };
-static symbol s_9[] = { 0xC9 };
+static const symbol s_0[] = { 0xC1 };
+static const symbol s_1[] = { 0xD1 };
+static const symbol s_2[] = { 0xC1 };
+static const symbol s_3[] = { 0xD1 };
+static const symbol s_4[] = { 0xC1 };
+static const symbol s_5[] = { 0xD1 };
+static const symbol s_6[] = { 0xCE };
+static const symbol s_7[] = { 0xCE };
+static const symbol s_8[] = { 0xCE };
+static const symbol s_9[] = { 0xC9 };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- { int c = z->c; /* do, line 63 */
- while(1) { /* gopast, line 64 */
- if (!(in_grouping(z, g_v, 192, 220))) goto lab1;
- break;
- lab1:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 64 */
+ { int c1 = z->c; /* do, line 63 */
+ { /* gopast */ /* grouping v, line 64 */
+ 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 */
- while(1) { /* gopast, line 64 */
- if (!(out_grouping(z, g_v, 192, 220))) goto lab2;
- break;
- lab2:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 64 */
+ { /* gopast */ /* non v, line 64 */
+ int ret = in_grouping(z, g_v, 192, 220, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
}
- while(1) { /* gopast, line 65 */
- if (!(in_grouping(z, g_v, 192, 220))) goto lab3;
- break;
- lab3:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 65 */
+ { /* gopast */ /* grouping v, line 65 */
+ int ret = out_grouping(z, g_v, 192, 220, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
}
- while(1) { /* gopast, line 65 */
- if (!(out_grouping(z, g_v, 192, 220))) goto lab4;
- break;
- lab4:
- if (z->c >= z->l) goto lab0;
- z->c++; /* gopast, line 65 */
+ { /* 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 */
lab0:
- z->c = c;
+ z->c = c1;
}
return 1;
}
@@ -385,28 +391,27 @@ static int r_R2(struct SN_env * z) {
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;
among_var = find_among_b(z, a_0, 9); /* substring, line 74 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 74 */
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 78 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 78 */
if (!(eq_s_b(z, 1, s_0))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_1))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 85 */
+ { int ret = slice_del(z); /* delete, line 85 */
if (ret < 0) return ret;
}
break;
@@ -417,14 +422,14 @@ static int r_perfective_gerund(struct SN_env * z) {
static int r_adjective(struct SN_env * z) {
int among_var;
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;
among_var = find_among_b(z, a_1, 26); /* substring, line 90 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 90 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 99 */
+ { int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
@@ -438,30 +443,29 @@ static int r_adjectival(struct SN_env * z) {
if (ret == 0) return 0; /* call adjective, line 104 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 111 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab0; }
among_var = find_among_b(z, a_2, 8); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m; goto lab0; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 112 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab0; }
+ case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 117 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 117 */
if (!(eq_s_b(z, 1, s_2))) goto lab2;
goto lab1;
lab2:
- z->c = z->l - m;
- if (!(eq_s_b(z, 1, s_3))) { z->c = z->l - m; goto lab0; }
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 1, s_3))) { z->c = z->l - m_keep; goto lab0; }
}
lab1:
- { int ret;
- ret = slice_del(z); /* delete, line 117 */
+ { int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 124 */
+ { int ret = slice_del(z); /* delete, line 124 */
if (ret < 0) return ret;
}
break;
@@ -475,14 +479,14 @@ static int r_adjectival(struct SN_env * z) {
static int r_reflexive(struct SN_env * z) {
int among_var;
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;
among_var = find_among_b(z, a_3, 2); /* substring, line 131 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 131 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 134 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
break;
@@ -493,28 +497,27 @@ static int r_reflexive(struct SN_env * z) {
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;
among_var = find_among_b(z, a_4, 46); /* substring, line 139 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 139 */
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 145 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 1, s_4))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_5))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 145 */
+ { int ret = slice_del(z); /* delete, line 145 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 153 */
+ { int ret = slice_del(z); /* delete, line 153 */
if (ret < 0) return ret;
}
break;
@@ -525,14 +528,14 @@ static int r_verb(struct SN_env * z) {
static int r_noun(struct SN_env * z) {
int among_var;
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;
among_var = find_among_b(z, a_5, 36); /* substring, line 162 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 162 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 169 */
+ { int ret = slice_del(z); /* delete, line 169 */
if (ret < 0) return ret;
}
break;
@@ -543,6 +546,7 @@ static int r_noun(struct SN_env * z) {
static int r_derivational(struct SN_env * z) {
int among_var;
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;
among_var = find_among_b(z, a_6, 2); /* substring, line 178 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 178 */
@@ -553,8 +557,7 @@ static int r_derivational(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 181 */
+ { int ret = slice_del(z); /* delete, line 181 */
if (ret < 0) return ret;
}
break;
@@ -565,35 +568,32 @@ static int r_derivational(struct SN_env * z) {
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;
among_var = find_among_b(z, a_7, 4); /* substring, line 186 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 186 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 190 */
+ { int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 191 */
if (!(eq_s_b(z, 1, s_6))) return 0;
z->bra = z->c; /* ], line 191 */
if (!(eq_s_b(z, 1, s_7))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 191 */
+ { int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 1, s_8))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 194 */
+ { int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 196 */
+ { int ret = slice_del(z); /* delete, line 196 */
if (ret < 0) return ret;
}
break;
@@ -602,54 +602,54 @@ static int r_tidy_up(struct SN_env * z) {
}
extern int russian_KOI8_R_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 203 */
+ { int c1 = z->c; /* do, line 203 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 203 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
- { int m3; /* setlimit, line 204 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 204 */
+ int m2 = z->l - z->c; (void)m2;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 204 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 205 */
- { int m = z->l - z->c; (void) m; /* or, line 206 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m2;
+ { int m3 = z->l - z->c; (void)m3; /* do, line 205 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 206 */
{ int ret = r_perfective_gerund(z);
if (ret == 0) goto lab3; /* call perfective_gerund, line 206 */
if (ret < 0) return ret;
}
goto lab2;
lab3:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* try, line 207 */
+ z->c = z->l - m4;
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 207 */
{ int ret = r_reflexive(z);
- if (ret == 0) { z->c = z->l - m; goto lab4; } /* call reflexive, line 207 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call reflexive, line 207 */
if (ret < 0) return ret;
}
lab4:
;
}
- { int m = z->l - z->c; (void) m; /* or, line 208 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 208 */
{ int ret = r_adjectival(z);
if (ret == 0) goto lab6; /* call adjectival, line 208 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m5;
{ int ret = r_verb(z);
if (ret == 0) goto lab7; /* call verb, line 208 */
if (ret < 0) return ret;
}
goto lab5;
lab7:
- z->c = z->l - m;
+ z->c = z->l - m5;
{ int ret = r_noun(z);
if (ret == 0) goto lab1; /* call noun, line 208 */
if (ret < 0) return ret;
@@ -660,36 +660,35 @@ extern int russian_KOI8_R_stem(struct SN_env * z) {
}
lab2:
lab1:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* try, line 211 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 211 */
z->ket = z->c; /* [, line 211 */
- if (!(eq_s_b(z, 1, s_9))) { z->c = z->l - m; goto lab8; }
+ if (!(eq_s_b(z, 1, s_9))) { z->c = z->l - m_keep; goto lab8; }
z->bra = z->c; /* ], line 211 */
- { int ret;
- ret = slice_del(z); /* delete, line 211 */
+ { int ret = slice_del(z); /* delete, line 211 */
if (ret < 0) return ret;
}
lab8:
;
}
- { int m = z->l - z->c; (void) m; /* do, line 214 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 214 */
{ int ret = r_derivational(z);
if (ret == 0) goto lab9; /* call derivational, line 214 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m6;
}
- { int m = z->l - z->c; (void) m; /* do, line 215 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 215 */
{ int ret = r_tidy_up(z);
if (ret == 0) goto lab10; /* call tidy_up, line 215 */
if (ret < 0) return ret;
}
lab10:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- z->lb = m3;
+ z->lb = mlimit;
}
z->c = z->lb;
return 1;
@@ -697,5 +696,5 @@ extern int russian_KOI8_R_stem(struct SN_env * z) {
extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2, 0); }
-extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_danish.c b/libstemmer_c/src_c/stem_UTF_8_danish.c
index bb98298..e470542 100644
--- a/libstemmer_c/src_c/stem_UTF_8_danish.c
+++ b/libstemmer_c/src_c/stem_UTF_8_danish.c
@@ -3,50 +3,64 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int danish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_undouble(struct SN_env * z);
static int r_other_suffix(struct SN_env * z);
static int r_consonant_pair(struct SN_env * z);
static int r_main_suffix(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * danish_UTF_8_create_env(void);
extern void danish_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[3] = { 'h', 'e', 'd' };
-static symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' };
-static symbol s_0_2[4] = { 'e', 'r', 'e', 'd' };
-static symbol s_0_3[1] = { 'e' };
-static symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' };
-static symbol s_0_5[4] = { 'e', 'n', 'd', 'e' };
-static symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' };
-static symbol s_0_7[3] = { 'e', 'n', 'e' };
-static symbol s_0_8[4] = { 'e', 'r', 'n', 'e' };
-static symbol s_0_9[3] = { 'e', 'r', 'e' };
-static symbol s_0_10[2] = { 'e', 'n' };
-static symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' };
-static symbol s_0_12[4] = { 'e', 'r', 'e', 'n' };
-static symbol s_0_13[2] = { 'e', 'r' };
-static symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' };
-static symbol s_0_15[4] = { 'e', 'r', 'e', 'r' };
-static symbol s_0_16[1] = { 's' };
-static symbol s_0_17[4] = { 'h', 'e', 'd', 's' };
-static symbol s_0_18[2] = { 'e', 's' };
-static symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' };
-static symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' };
-static symbol s_0_21[4] = { 'e', 'n', 'e', 's' };
-static symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' };
-static symbol s_0_23[4] = { 'e', 'r', 'e', 's' };
-static symbol s_0_24[3] = { 'e', 'n', 's' };
-static symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' };
-static symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' };
-static symbol s_0_27[3] = { 'e', 'r', 's' };
-static symbol s_0_28[3] = { 'e', 't', 's' };
-static symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' };
-static symbol s_0_30[2] = { 'e', 't' };
-static symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
-static struct among a_0[32] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'h', 'e', 'd' };
+static const symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' };
+static const symbol s_0_2[4] = { 'e', 'r', 'e', 'd' };
+static const symbol s_0_3[1] = { 'e' };
+static const symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' };
+static const symbol s_0_5[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' };
+static const symbol s_0_7[3] = { 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 'n', 'e' };
+static const symbol s_0_9[3] = { 'e', 'r', 'e' };
+static const symbol s_0_10[2] = { 'e', 'n' };
+static const symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_0_12[4] = { 'e', 'r', 'e', 'n' };
+static const symbol s_0_13[2] = { 'e', 'r' };
+static const symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' };
+static const symbol s_0_15[4] = { 'e', 'r', 'e', 'r' };
+static const symbol s_0_16[1] = { 's' };
+static const symbol s_0_17[4] = { 'h', 'e', 'd', 's' };
+static const symbol s_0_18[2] = { 'e', 's' };
+static const symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_21[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' };
+static const symbol s_0_23[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_0_24[3] = { 'e', 'n', 's' };
+static const symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' };
+static const symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' };
+static const symbol s_0_27[3] = { 'e', 'r', 's' };
+static const symbol s_0_28[3] = { 'e', 't', 's' };
+static const symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' };
+static const symbol s_0_30[2] = { 'e', 't' };
+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},
@@ -82,12 +96,12 @@ static struct among a_0[32] =
/* 31 */ { 4, s_0_31, 30, 1, 0}
};
-static symbol s_1_0[2] = { 'g', 'd' };
-static symbol s_1_1[2] = { 'd', 't' };
-static symbol s_1_2[2] = { 'g', 't' };
-static symbol s_1_3[2] = { 'k', 't' };
+static const symbol s_1_0[2] = { 'g', 'd' };
+static const symbol s_1_1[2] = { 'd', 't' };
+static const symbol s_1_2[2] = { 'g', 't' };
+static const symbol s_1_3[2] = { 'k', 't' };
-static struct among a_1[4] =
+static const struct among a_1[4] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
@@ -95,13 +109,13 @@ static struct among a_1[4] =
/* 3 */ { 2, s_1_3, -1, -1, 0}
};
-static symbol s_2_0[2] = { 'i', 'g' };
-static symbol s_2_1[3] = { 'l', 'i', 'g' };
-static symbol s_2_2[4] = { 'e', 'l', 'i', 'g' };
-static symbol s_2_3[3] = { 'e', 'l', 's' };
-static symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' };
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'l', 's' };
+static const symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' };
-static struct among a_2[5] =
+static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
@@ -110,79 +124,63 @@ static struct among a_2[5] =
/* 4 */ { 5, s_2_4, -1, 2, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
+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 };
-static unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
+static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
-static symbol s_0[] = { 's', 't' };
-static symbol s_1[] = { 'i', 'g' };
-static symbol s_2[] = { 'l', 0xC3, 0xB8, 's' };
+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) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 33 */
- { int c = skip_utf8(z->p, z->c, 0, z->l, + 3);
- if (c < 0) return 0;
- z->c = c; /* hop, line 33 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+ if (ret < 0) return 0;
+ z->c = ret; /* hop, line 33 */
}
z->I[1] = z->c; /* setmark x, line 33 */
z->c = c_test;
}
- while(1) { /* goto, line 34 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 248))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* goto, line 34 */
- }
- }
- while(1) { /* gopast, line 34 */
- if (!(out_grouping_U(z, g_v, 97, 248))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 34 */
- }
+ if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
+ { /* gopast */ /* non v, line 34 */
+ 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 34 */
/* try, line 35 */
- if (!(z->I[0] < z->I[1])) goto lab2;
+ if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
-lab2:
+lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 41 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 41 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 41 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 41 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_0, 32); /* substring, line 41 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 41 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 48 */
+ { int ret = slice_del(z); /* delete, line 48 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b_U(z, g_s_ending, 97, 229))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 50 */
+ if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0;
+ { int ret = slice_del(z); /* delete, line 50 */
if (ret < 0) return ret;
}
break;
@@ -192,26 +190,26 @@ static int r_main_suffix(struct SN_env * z) {
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 55 */
- { int m3; /* setlimit, line 56 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 56 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 56 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 56 */
- if (!(find_among_b(z, a_1, 4))) { z->lb = m3; return 0; } /* substring, line 56 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit; return 0; } /* substring, line 56 */
z->bra = z->c; /* ], line 56 */
- z->lb = m3;
+ z->lb = mlimit;
}
z->c = z->l - m_test;
}
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 62 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 62 */
}
z->bra = z->c; /* ], line 62 */
- { int ret;
- ret = slice_del(z); /* delete, line 62 */
+ { int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
return 1;
@@ -219,49 +217,47 @@ static int r_consonant_pair(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* do, line 66 */
+ { int m1 = z->l - z->c; (void)m1; /* do, line 66 */
z->ket = z->c; /* [, line 66 */
if (!(eq_s_b(z, 2, s_0))) goto lab0;
z->bra = z->c; /* ], line 66 */
if (!(eq_s_b(z, 2, s_1))) goto lab0;
- { int ret;
- ret = slice_del(z); /* delete, line 66 */
+ { int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m1;
}
- { int m3; /* setlimit, line 67 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 67 */
+ int m2 = z->l - z->c; (void)m2;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 67 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m2;
z->ket = z->c; /* [, line 67 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 67 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 67 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 70 */
+ { int ret = slice_del(z); /* delete, line 70 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* do, line 70 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 70 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab1; /* call consonant_pair, line 70 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 4, s_2); /* <-, line 72 */
+ { int ret = slice_from_s(z, 4, s_2); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
@@ -270,69 +266,68 @@ static int r_other_suffix(struct SN_env * z) {
}
static int r_undouble(struct SN_env * z) {
- { int m3; /* setlimit, line 76 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 76 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 76 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 76 */
- if (!(out_grouping_b_U(z, g_v, 97, 248))) { z->lb = m3; return 0; }
+ if (out_grouping_b_U(z, g_v, 97, 248, 0)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 76 */
z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
if (z->S[0] == 0) return -1; /* -> ch, line 76 */
- z->lb = m3;
+ z->lb = mlimit;
}
if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
- { int ret;
- ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 78 */
if (ret < 0) return ret;
}
return 1;
}
extern int danish_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 84 */
+ { int c1 = z->c; /* do, line 84 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 84 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 85 */
- { int m = z->l - z->c; (void) m; /* do, line 86 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 86 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 86 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 87 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 87 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 87 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 88 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 88 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 88 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 89 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 89 */
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 89 */
if (ret < 0) return ret;
}
lab4:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
z->c = z->lb;
return 1;
@@ -340,5 +335,5 @@ extern int danish_UTF_8_stem(struct SN_env * z) {
extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2, 0); }
-extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_dutch.c b/libstemmer_c/src_c/stem_UTF_8_dutch.c
index 3de469b..06cb812 100644
--- a/libstemmer_c/src_c/stem_UTF_8_dutch.c
+++ b/libstemmer_c/src_c/stem_UTF_8_dutch.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int dutch_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_standard_suffix(struct SN_env * z);
static int r_undouble(struct SN_env * z);
static int r_R2(struct SN_env * z);
@@ -13,22 +19,30 @@ static int r_en_ending(struct SN_env * z);
static int r_e_ending(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * dutch_UTF_8_create_env(void);
extern void dutch_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_1[2] = { 0xC3, 0xA1 };
-static symbol s_0_2[2] = { 0xC3, 0xA4 };
-static symbol s_0_3[2] = { 0xC3, 0xA9 };
-static symbol s_0_4[2] = { 0xC3, 0xAB };
-static symbol s_0_5[2] = { 0xC3, 0xAD };
-static symbol s_0_6[2] = { 0xC3, 0xAF };
-static symbol s_0_7[2] = { 0xC3, 0xB3 };
-static symbol s_0_8[2] = { 0xC3, 0xB6 };
-static symbol s_0_9[2] = { 0xC3, 0xBA };
-static symbol s_0_10[2] = { 0xC3, 0xBC };
-
-static struct among a_0[11] =
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC3, 0xA1 };
+static const symbol s_0_2[2] = { 0xC3, 0xA4 };
+static const symbol s_0_3[2] = { 0xC3, 0xA9 };
+static const symbol s_0_4[2] = { 0xC3, 0xAB };
+static const symbol s_0_5[2] = { 0xC3, 0xAD };
+static const symbol s_0_6[2] = { 0xC3, 0xAF };
+static const symbol s_0_7[2] = { 0xC3, 0xB3 };
+static const symbol s_0_8[2] = { 0xC3, 0xB6 };
+static const symbol s_0_9[2] = { 0xC3, 0xBA };
+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},
@@ -43,34 +57,34 @@ static struct among a_0[11] =
/* 10 */ { 2, s_0_10, 0, 5, 0}
};
-static symbol s_1_1[1] = { 'I' };
-static symbol s_1_2[1] = { 'Y' };
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'Y' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[2] = { 'd', 'd' };
-static symbol s_2_1[2] = { 'k', 'k' };
-static symbol s_2_2[2] = { 't', 't' };
+static const symbol s_2_0[2] = { 'd', 'd' };
+static const symbol s_2_1[2] = { 'k', 'k' };
+static const symbol s_2_2[2] = { 't', 't' };
-static struct among a_2[3] =
+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}
};
-static symbol s_3_0[3] = { 'e', 'n', 'e' };
-static symbol s_3_1[2] = { 's', 'e' };
-static symbol s_3_2[2] = { 'e', 'n' };
-static symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
-static symbol s_3_4[1] = { 's' };
+static const symbol s_3_0[3] = { 'e', 'n', 'e' };
+static const symbol s_3_1[2] = { 's', 'e' };
+static const symbol s_3_2[2] = { 'e', 'n' };
+static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_3_4[1] = { 's' };
-static struct among a_3[5] =
+static const struct among a_3[5] =
{
/* 0 */ { 3, s_3_0, -1, 2, 0},
/* 1 */ { 2, s_3_1, -1, 3, 0},
@@ -79,14 +93,14 @@ static struct among a_3[5] =
/* 4 */ { 1, s_3_4, -1, 3, 0}
};
-static symbol s_4_0[3] = { 'e', 'n', 'd' };
-static symbol s_4_1[2] = { 'i', 'g' };
-static symbol s_4_2[3] = { 'i', 'n', 'g' };
-static symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
-static symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
-static symbol s_4_5[3] = { 'b', 'a', 'r' };
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
+static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
+static const symbol s_4_5[3] = { 'b', 'a', 'r' };
-static struct among a_4[6] =
+static const struct among a_4[6] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
@@ -96,12 +110,12 @@ static struct among a_4[6] =
/* 5 */ { 3, s_4_5, -1, 5, 0}
};
-static symbol s_5_0[2] = { 'a', 'a' };
-static symbol s_5_1[2] = { 'e', 'e' };
-static symbol s_5_2[2] = { 'o', 'o' };
-static symbol s_5_3[2] = { 'u', 'u' };
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'o', 'o' };
+static const symbol s_5_3[2] = { 'u', 'u' };
-static struct among a_5[4] =
+static const struct among a_5[4] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
@@ -109,138 +123,131 @@ static struct among a_5[4] =
/* 3 */ { 2, s_5_3, -1, -1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-
-static unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-
-static unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
-
-static symbol s_0[] = { 'a' };
-static symbol s_1[] = { 'e' };
-static symbol s_2[] = { 'i' };
-static symbol s_3[] = { 'o' };
-static symbol s_4[] = { 'u' };
-static symbol s_5[] = { 'y' };
-static symbol s_6[] = { 'Y' };
-static symbol s_7[] = { 'i' };
-static symbol s_8[] = { 'I' };
-static symbol s_9[] = { 'y' };
-static symbol s_10[] = { 'Y' };
-static symbol s_11[] = { 'y' };
-static symbol s_12[] = { 'i' };
-static symbol s_13[] = { 'e' };
-static symbol s_14[] = { 'g', 'e', 'm' };
-static symbol s_15[] = { 'h', 'e', 'i', 'd' };
-static symbol s_16[] = { 'h', 'e', 'i', 'd' };
-static symbol s_17[] = { 'c' };
-static symbol s_18[] = { 'e', 'n' };
-static symbol s_19[] = { 'i', 'g' };
-static symbol s_20[] = { 'e' };
-static symbol s_21[] = { 'e' };
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'y' };
+static const symbol s_6[] = { 'Y' };
+static const symbol s_7[] = { 'i' };
+static const symbol s_8[] = { 'I' };
+static const symbol s_9[] = { 'y' };
+static const symbol s_10[] = { 'Y' };
+static const symbol s_11[] = { 'y' };
+static const symbol s_12[] = { 'i' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'g', 'e', 'm' };
+static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_17[] = { 'c' };
+static const symbol s_18[] = { 'e', 'n' };
+static const symbol s_19[] = { 'i', 'g' };
+static const symbol s_20[] = { 'e' };
+static const symbol s_21[] = { 'e' };
static int r_prelude(struct SN_env * z) {
int among_var;
{ int c_test = z->c; /* test, line 42 */
while(1) { /* repeat, line 42 */
- int c = z->c;
+ int c1 = 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
among_var = find_among(z, a_0, 11); /* substring, line 43 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 43 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
if (ret < 0) return ret;
}
break;
case 6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 54 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 54 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
z->c = c_test;
}
- { int c = z->c; /* try, line 57 */
+ { int c_keep = z->c; /* try, line 57 */
z->bra = z->c; /* [, line 57 */
- if (!(eq_s(z, 1, s_5))) { z->c = c; goto lab1; }
+ if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
z->ket = z->c; /* ], line 57 */
- { int ret;
- ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
if (ret < 0) return ret;
}
lab1:
;
}
while(1) { /* repeat, line 58 */
- int c = z->c;
+ int c2 = z->c;
while(1) { /* goto, line 58 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 232))) goto lab3;
+ int c3 = z->c;
+ if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3;
z->bra = z->c; /* [, line 59 */
- { int c = z->c; /* or, line 59 */
+ { int c4 = z->c; /* or, line 59 */
if (!(eq_s(z, 1, s_7))) goto lab5;
z->ket = z->c; /* ], line 59 */
- if (!(in_grouping_U(z, g_v, 97, 232))) goto lab5;
- { int ret;
- ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
+ if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_9))) goto lab3;
z->ket = z->c; /* ], line 60 */
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
if (ret < 0) return ret;
}
}
lab4:
- z->c = c;
+ z->c = c3;
break;
lab3:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab2;
- z->c = c; /* goto, line 58 */
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret; /* goto, line 58 */
}
}
continue;
lab2:
- z->c = c;
+ z->c = c2;
break;
}
return 1;
@@ -249,46 +256,30 @@ static int r_prelude(struct SN_env * z) {
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- while(1) { /* gopast, line 69 */
- if (!(in_grouping_U(z, g_v, 97, 232))) goto lab0;
- break;
- lab0:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 69 */
- }
+ { /* gopast */ /* grouping v, line 69 */
+ int ret = out_grouping_U(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 69 */
- if (!(out_grouping_U(z, g_v, 97, 232))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 69 */
- }
+ { /* 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 lab2;
+ if (!(z->I[0] < 3)) goto lab0;
z->I[0] = 3;
-lab2:
- while(1) { /* gopast, line 71 */
- if (!(in_grouping_U(z, g_v, 97, 232))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 71 */
- }
+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;
}
- while(1) { /* gopast, line 71 */
- if (!(out_grouping_U(z, g_v, 97, 232))) goto lab4;
- break;
- lab4:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 71 */
- }
+ { /* 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 */
return 1;
@@ -297,35 +288,34 @@ lab2:
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 75 */
- int c = z->c;
+ 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
among_var = find_among(z, a_1, 3); /* substring, line 77 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 77 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 80 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 80 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -343,17 +333,17 @@ static int r_R2(struct SN_env * z) {
static int r_undouble(struct SN_env * z) {
{ int m_test = 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;
if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
z->c = z->l - m_test;
}
z->ket = z->c; /* [, line 91 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 91 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 91 */
}
z->bra = z->c; /* ], line 91 */
- { int ret;
- ret = slice_del(z); /* delete, line 91 */
+ { int ret = slice_del(z); /* delete, line 91 */
if (ret < 0) return ret;
}
return 1;
@@ -369,11 +359,10 @@ static int r_e_ending(struct SN_env * z) {
if (ret < 0) return ret;
}
{ int m_test = z->l - z->c; /* test, line 96 */
- if (!(out_grouping_b_U(z, g_v, 97, 232))) return 0;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 96 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set e_found, line 97 */
@@ -389,18 +378,17 @@ static int r_en_ending(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* and, line 102 */
- if (!(out_grouping_b_U(z, g_v, 97, 232))) return 0;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* not, line 102 */
+ { int m1 = z->l - z->c; (void)m1; /* and, line 102 */
+ 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_14))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
}
- { int ret;
- ret = slice_del(z); /* delete, line 102 */
+ { int ret = slice_del(z); /* delete, line 102 */
if (ret < 0) return ret;
}
{ int ret = r_undouble(z);
@@ -412,8 +400,9 @@ static int r_en_ending(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* do, line 107 */
+ { 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;
among_var = find_among_b(z, a_3, 5); /* substring, line 108 */
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 108 */
@@ -424,8 +413,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab0; /* call R1, line 110 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
+ { int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
@@ -440,25 +428,24 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab0; /* call R1, line 116 */
if (ret < 0) return ret;
}
- if (!(out_grouping_b_U(z, g_v_j, 97, 232))) goto lab0;
- { int ret;
- 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); /* delete, line 116 */
if (ret < 0) return ret;
}
break;
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m1;
}
- { int m = z->l - z->c; (void) m; /* do, line 120 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 120 */
{ int ret = r_e_ending(z);
if (ret == 0) goto lab1; /* call e_ending, line 120 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 122 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 122 */
z->ket = z->c; /* [, line 122 */
if (!(eq_s_b(z, 4, s_16))) goto lab2;
z->bra = z->c; /* ], line 122 */
@@ -466,14 +453,13 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab2; /* call R2, line 122 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 122 */
+ { int m4 = z->l - z->c; (void)m4; /* not, line 122 */
if (!(eq_s_b(z, 1, s_17))) goto lab3;
goto lab2;
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int ret;
- ret = slice_del(z); /* delete, line 122 */
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 123 */
@@ -484,10 +470,11 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 126 */
+ { 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 lab4;
among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
if (!(among_var)) goto lab4;
z->bra = z->c; /* ], line 127 */
@@ -498,11 +485,10 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 129 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 129 */
+ { int ret = slice_del(z); /* delete, line 129 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* or, line 130 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 130 */
z->ket = z->c; /* [, line 130 */
if (!(eq_s_b(z, 2, s_19))) goto lab6;
z->bra = z->c; /* ], line 130 */
@@ -510,19 +496,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab6; /* call R2, line 130 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 130 */
+ { int m7 = z->l - z->c; (void)m7; /* not, line 130 */
if (!(eq_s_b(z, 1, s_20))) goto lab7;
goto lab6;
lab7:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- { int ret;
- ret = slice_del(z); /* delete, line 130 */
+ { int ret = slice_del(z); /* delete, line 130 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_undouble(z);
if (ret == 0) goto lab4; /* call undouble, line 130 */
if (ret < 0) return ret;
@@ -535,14 +520,13 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 133 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 133 */
+ { int m8 = z->l - z->c; (void)m8; /* not, line 133 */
if (!(eq_s_b(z, 1, s_21))) goto lab8;
goto lab4;
lab8:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 133 */
if (ret < 0) return ret;
}
break;
@@ -551,8 +535,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 136 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 136 */
+ { int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
{ int ret = r_e_ending(z);
@@ -565,8 +548,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) goto lab4; /* call R2, line 139 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 139 */
+ { int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
break;
@@ -576,78 +558,77 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
- { int ret;
- ret = slice_del(z); /* delete, line 142 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
break;
}
lab4:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* do, line 146 */
- if (!(out_grouping_b_U(z, g_v_I, 73, 232))) goto lab9;
+ { int m9 = z->l - z->c; (void)m9; /* do, line 146 */
+ if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab9;
{ int m_test = 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 lab9;
if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
- if (!(out_grouping_b_U(z, g_v, 97, 232))) goto lab9;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab9;
z->c = z->l - m_test;
}
z->ket = z->c; /* [, line 152 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) goto lab9;
- z->c = c; /* next, line 152 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab9;
+ z->c = ret; /* next, line 152 */
}
z->bra = z->c; /* ], line 152 */
- { int ret;
- ret = slice_del(z); /* delete, line 152 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
return 1;
}
extern int dutch_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 159 */
+ { int c1 = z->c; /* do, line 159 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 159 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 160 */
+ { int c2 = z->c; /* do, line 160 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 160 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 161 */
- { int m = z->l - z->c; (void) m; /* do, line 162 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 162 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
z->c = z->lb;
- { int c = z->c; /* do, line 163 */
+ { int c4 = z->c; /* do, line 163 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 163 */
if (ret < 0) return ret;
}
lab3:
- z->c = c;
+ z->c = c4;
}
return 1;
}
extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
-extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_english.c b/libstemmer_c/src_c/stem_UTF_8_english.c
index 1452eea..a00f721 100644
--- a/libstemmer_c/src_c/stem_UTF_8_english.c
+++ b/libstemmer_c/src_c/stem_UTF_8_english.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int english_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_exception2(struct SN_env * z);
static int r_exception1(struct SN_env * z);
static int r_Step_5(struct SN_env * z);
@@ -19,38 +25,48 @@ static int r_shortv(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * english_UTF_8_create_env(void);
extern void english_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
-static symbol s_0_1[5] = { 'g', 'e', 'n', 'e', 'r' };
-static struct among a_0[2] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' };
+static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
+static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' };
+
+static const struct among a_0[3] =
{
-/* 0 */ { 6, s_0_0, -1, -1, 0},
-/* 1 */ { 5, s_0_1, -1, -1, 0}
+/* 0 */ { 5, s_0_0, -1, -1, 0},
+/* 1 */ { 6, s_0_1, -1, -1, 0},
+/* 2 */ { 5, s_0_2, -1, -1, 0}
};
-static symbol s_1_0[1] = { '\'' };
-static symbol s_1_1[3] = { '\'', 's', '\'' };
-static symbol s_1_2[2] = { '\'', 's' };
+static const symbol s_1_0[1] = { '\'' };
+static const symbol s_1_1[3] = { '\'', 's', '\'' };
+static const symbol s_1_2[2] = { '\'', 's' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[3] = { 'i', 'e', 'd' };
-static symbol s_2_1[1] = { 's' };
-static symbol s_2_2[3] = { 'i', 'e', 's' };
-static symbol s_2_3[4] = { 's', 's', 'e', 's' };
-static symbol s_2_4[2] = { 's', 's' };
-static symbol s_2_5[2] = { 'u', 's' };
+static const symbol s_2_0[3] = { 'i', 'e', 'd' };
+static const symbol s_2_1[1] = { 's' };
+static const symbol s_2_2[3] = { 'i', 'e', 's' };
+static const symbol s_2_3[4] = { 's', 's', 'e', 's' };
+static const symbol s_2_4[2] = { 's', 's' };
+static const symbol s_2_5[2] = { 'u', 's' };
-static struct among a_2[6] =
+static const struct among a_2[6] =
{
/* 0 */ { 3, s_2_0, -1, 2, 0},
/* 1 */ { 1, s_2_1, -1, 3, 0},
@@ -60,20 +76,20 @@ static struct among a_2[6] =
/* 5 */ { 2, s_2_5, 1, -1, 0}
};
-static symbol s_3_1[2] = { 'b', 'b' };
-static symbol s_3_2[2] = { 'd', 'd' };
-static symbol s_3_3[2] = { 'f', 'f' };
-static symbol s_3_4[2] = { 'g', 'g' };
-static symbol s_3_5[2] = { 'b', 'l' };
-static symbol s_3_6[2] = { 'm', 'm' };
-static symbol s_3_7[2] = { 'n', 'n' };
-static symbol s_3_8[2] = { 'p', 'p' };
-static symbol s_3_9[2] = { 'r', 'r' };
-static symbol s_3_10[2] = { 'a', 't' };
-static symbol s_3_11[2] = { 't', 't' };
-static symbol s_3_12[2] = { 'i', 'z' };
+static const symbol s_3_1[2] = { 'b', 'b' };
+static const symbol s_3_2[2] = { 'd', 'd' };
+static const symbol s_3_3[2] = { 'f', 'f' };
+static const symbol s_3_4[2] = { 'g', 'g' };
+static const symbol s_3_5[2] = { 'b', 'l' };
+static const symbol s_3_6[2] = { 'm', 'm' };
+static const symbol s_3_7[2] = { 'n', 'n' };
+static const symbol s_3_8[2] = { 'p', 'p' };
+static const symbol s_3_9[2] = { 'r', 'r' };
+static const symbol s_3_10[2] = { 'a', 't' };
+static const symbol s_3_11[2] = { 't', 't' };
+static const symbol s_3_12[2] = { 'i', 'z' };
-static struct among a_3[13] =
+static const struct among a_3[13] =
{
/* 0 */ { 0, 0, -1, 3, 0},
/* 1 */ { 2, s_3_1, 0, 2, 0},
@@ -90,14 +106,14 @@ static struct among a_3[13] =
/* 12 */ { 2, s_3_12, 0, 1, 0}
};
-static symbol s_4_0[2] = { 'e', 'd' };
-static symbol s_4_1[3] = { 'e', 'e', 'd' };
-static symbol s_4_2[3] = { 'i', 'n', 'g' };
-static symbol s_4_3[4] = { 'e', 'd', 'l', 'y' };
-static symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' };
-static symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
+static const symbol s_4_0[2] = { 'e', 'd' };
+static const symbol s_4_1[3] = { 'e', 'e', 'd' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'e', 'd', 'l', 'y' };
+static const symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' };
+static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
-static struct among a_4[6] =
+static const struct among a_4[6] =
{
/* 0 */ { 2, s_4_0, -1, 2, 0},
/* 1 */ { 3, s_4_1, 0, 1, 0},
@@ -107,32 +123,32 @@ static struct among a_4[6] =
/* 5 */ { 5, s_4_5, -1, 2, 0}
};
-static symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
-static symbol s_5_1[4] = { 'e', 'n', 'c', 'i' };
-static symbol s_5_2[3] = { 'o', 'g', 'i' };
-static symbol s_5_3[2] = { 'l', 'i' };
-static symbol s_5_4[3] = { 'b', 'l', 'i' };
-static symbol s_5_5[4] = { 'a', 'b', 'l', 'i' };
-static symbol s_5_6[4] = { 'a', 'l', 'l', 'i' };
-static symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' };
-static symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
-static symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' };
-static symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' };
-static symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' };
-static symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
-static symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' };
-static symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' };
-static symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' };
-static symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
-static symbol s_5_19[4] = { 'i', 'z', 'e', 'r' };
-static symbol s_5_20[4] = { 'a', 't', 'o', 'r' };
-static symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
-static symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
-static symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
+static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_5_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_5_2[3] = { 'o', 'g', 'i' };
+static const symbol s_5_3[2] = { 'l', 'i' };
+static const symbol s_5_4[3] = { 'b', 'l', 'i' };
+static const symbol s_5_5[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_5_6[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' };
+static const symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
+static const symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_19[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_5_20[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
-static struct among a_5[24] =
+static const struct among a_5[24] =
{
/* 0 */ { 4, s_5_0, -1, 3, 0},
/* 1 */ { 4, s_5_1, -1, 2, 0},
@@ -160,17 +176,17 @@ static struct among a_5[24] =
/* 23 */ { 7, s_5_23, -1, 10, 0}
};
-static symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
-static symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' };
-static symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' };
-static symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' };
-static symbol s_6_4[4] = { 'i', 'c', 'a', 'l' };
-static symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_6_7[3] = { 'f', 'u', 'l' };
-static symbol s_6_8[4] = { 'n', 'e', 's', 's' };
+static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_6_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_7[3] = { 'f', 'u', 'l' };
+static const symbol s_6_8[4] = { 'n', 'e', 's', 's' };
-static struct among a_6[9] =
+static const struct among a_6[9] =
{
/* 0 */ { 5, s_6_0, -1, 4, 0},
/* 1 */ { 5, s_6_1, -1, 6, 0},
@@ -183,26 +199,26 @@ static struct among a_6[9] =
/* 8 */ { 4, s_6_8, -1, 5, 0}
};
-static symbol s_7_0[2] = { 'i', 'c' };
-static symbol s_7_1[4] = { 'a', 'n', 'c', 'e' };
-static symbol s_7_2[4] = { 'e', 'n', 'c', 'e' };
-static symbol s_7_3[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_7_4[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_7_5[3] = { 'a', 't', 'e' };
-static symbol s_7_6[3] = { 'i', 'v', 'e' };
-static symbol s_7_7[3] = { 'i', 'z', 'e' };
-static symbol s_7_8[3] = { 'i', 't', 'i' };
-static symbol s_7_9[2] = { 'a', 'l' };
-static symbol s_7_10[3] = { 'i', 's', 'm' };
-static symbol s_7_11[3] = { 'i', 'o', 'n' };
-static symbol s_7_12[2] = { 'e', 'r' };
-static symbol s_7_13[3] = { 'o', 'u', 's' };
-static symbol s_7_14[3] = { 'a', 'n', 't' };
-static symbol s_7_15[3] = { 'e', 'n', 't' };
-static symbol s_7_16[4] = { 'm', 'e', 'n', 't' };
-static symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_7_0[2] = { 'i', 'c' };
+static const symbol s_7_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_7_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_7_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_7_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_7_5[3] = { 'a', 't', 'e' };
+static const symbol s_7_6[3] = { 'i', 'v', 'e' };
+static const symbol s_7_7[3] = { 'i', 'z', 'e' };
+static const symbol s_7_8[3] = { 'i', 't', 'i' };
+static const symbol s_7_9[2] = { 'a', 'l' };
+static const symbol s_7_10[3] = { 'i', 's', 'm' };
+static const symbol s_7_11[3] = { 'i', 'o', 'n' };
+static const symbol s_7_12[2] = { 'e', 'r' };
+static const symbol s_7_13[3] = { 'o', 'u', 's' };
+static const symbol s_7_14[3] = { 'a', 'n', 't' };
+static const symbol s_7_15[3] = { 'e', 'n', 't' };
+static const symbol s_7_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
-static struct among a_7[18] =
+static const struct among a_7[18] =
{
/* 0 */ { 2, s_7_0, -1, 1, 0},
/* 1 */ { 4, s_7_1, -1, 1, 0},
@@ -224,25 +240,25 @@ static struct among a_7[18] =
/* 17 */ { 5, s_7_17, 16, 1, 0}
};
-static symbol s_8_0[1] = { 'e' };
-static symbol s_8_1[1] = { 'l' };
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[1] = { 'l' };
-static struct among a_8[2] =
+static const struct among a_8[2] =
{
/* 0 */ { 1, s_8_0, -1, 1, 0},
/* 1 */ { 1, s_8_1, -1, 2, 0}
};
-static symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
-static symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' };
-static symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' };
-static symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' };
-static symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' };
-static symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' };
-static symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' };
-static symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
+static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
+static const symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' };
+static const symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' };
+static const symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
-static struct among a_9[8] =
+static const struct among a_9[8] =
{
/* 0 */ { 7, s_9_0, -1, -1, 0},
/* 1 */ { 7, s_9_1, -1, -1, 0},
@@ -254,26 +270,26 @@ static struct among a_9[8] =
/* 7 */ { 6, s_9_7, -1, -1, 0}
};
-static symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
-static symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' };
-static symbol s_10_2[4] = { 'b', 'i', 'a', 's' };
-static symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
-static symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' };
-static symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' };
-static symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
-static symbol s_10_7[4] = { 'h', 'o', 'w', 'e' };
-static symbol s_10_8[4] = { 'i', 'd', 'l', 'y' };
-static symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' };
-static symbol s_10_10[4] = { 'n', 'e', 'w', 's' };
-static symbol s_10_11[4] = { 'o', 'n', 'l', 'y' };
-static symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
-static symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' };
-static symbol s_10_14[4] = { 's', 'k', 'i', 's' };
-static symbol s_10_15[3] = { 's', 'k', 'y' };
-static symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' };
-static symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
+static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' };
+static const symbol s_10_2[4] = { 'b', 'i', 'a', 's' };
+static const symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
+static const symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' };
+static const symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' };
+static const symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
+static const symbol s_10_7[4] = { 'h', 'o', 'w', 'e' };
+static const symbol s_10_8[4] = { 'i', 'd', 'l', 'y' };
+static const symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' };
+static const symbol s_10_10[4] = { 'n', 'e', 'w', 's' };
+static const symbol s_10_11[4] = { 'o', 'n', 'l', 'y' };
+static const symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
+static const symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' };
+static const symbol s_10_14[4] = { 's', 'k', 'i', 's' };
+static const symbol s_10_15[3] = { 's', 'k', 'y' };
+static const symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' };
+static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
-static struct among a_10[18] =
+static const struct among a_10[18] =
{
/* 0 */ { 5, s_10_0, -1, -1, 0},
/* 1 */ { 5, s_10_1, -1, -1, 0},
@@ -295,117 +311,114 @@ static struct among a_10[18] =
/* 17 */ { 4, s_10_17, -1, 8, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1 };
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
-static unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
-static unsigned char g_valid_LI[] = { 55, 141, 2 };
+static const unsigned char g_valid_LI[] = { 55, 141, 2 };
-static symbol s_0[] = { '\'' };
-static symbol s_1[] = { 'y' };
-static symbol s_2[] = { 'Y' };
-static symbol s_3[] = { 'y' };
-static symbol s_4[] = { 'Y' };
-static symbol s_5[] = { 's', 's' };
-static symbol s_6[] = { 'i' };
-static symbol s_7[] = { 'i', 'e' };
-static symbol s_8[] = { 'e', 'e' };
-static symbol s_9[] = { 'e' };
-static symbol s_10[] = { 'e' };
-static symbol s_11[] = { 'y' };
-static symbol s_12[] = { 'Y' };
-static symbol s_13[] = { 'i' };
-static symbol s_14[] = { 't', 'i', 'o', 'n' };
-static symbol s_15[] = { 'e', 'n', 'c', 'e' };
-static symbol s_16[] = { 'a', 'n', 'c', 'e' };
-static symbol s_17[] = { 'a', 'b', 'l', 'e' };
-static symbol s_18[] = { 'e', 'n', 't' };
-static symbol s_19[] = { 'i', 'z', 'e' };
-static symbol s_20[] = { 'a', 't', 'e' };
-static symbol s_21[] = { 'a', 'l' };
-static symbol s_22[] = { 'f', 'u', 'l' };
-static symbol s_23[] = { 'o', 'u', 's' };
-static symbol s_24[] = { 'i', 'v', 'e' };
-static symbol s_25[] = { 'b', 'l', 'e' };
-static symbol s_26[] = { 'l' };
-static symbol s_27[] = { 'o', 'g' };
-static symbol s_28[] = { 'f', 'u', 'l' };
-static symbol s_29[] = { 'l', 'e', 's', 's' };
-static symbol s_30[] = { 't', 'i', 'o', 'n' };
-static symbol s_31[] = { 'a', 't', 'e' };
-static symbol s_32[] = { 'a', 'l' };
-static symbol s_33[] = { 'i', 'c' };
-static symbol s_34[] = { 's' };
-static symbol s_35[] = { 't' };
-static symbol s_36[] = { 'l' };
-static symbol s_37[] = { 's', 'k', 'i' };
-static symbol s_38[] = { 's', 'k', 'y' };
-static symbol s_39[] = { 'd', 'i', 'e' };
-static symbol s_40[] = { 'l', 'i', 'e' };
-static symbol s_41[] = { 't', 'i', 'e' };
-static symbol s_42[] = { 'i', 'd', 'l' };
-static symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
-static symbol s_44[] = { 'u', 'g', 'l', 'i' };
-static symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
-static symbol s_46[] = { 'o', 'n', 'l', 'i' };
-static symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
-static symbol s_48[] = { 'Y' };
-static symbol s_49[] = { 'y' };
+static const symbol s_0[] = { '\'' };
+static const symbol s_1[] = { 'y' };
+static const symbol s_2[] = { 'Y' };
+static const symbol s_3[] = { 'y' };
+static const symbol s_4[] = { 'Y' };
+static const symbol s_5[] = { 's', 's' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'i', 'e' };
+static const symbol s_8[] = { 'e', 'e' };
+static const symbol s_9[] = { 'e' };
+static const symbol s_10[] = { 'e' };
+static const symbol s_11[] = { 'y' };
+static const symbol s_12[] = { 'Y' };
+static const symbol s_13[] = { 'i' };
+static const symbol s_14[] = { 't', 'i', 'o', 'n' };
+static const symbol s_15[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_16[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_17[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_18[] = { 'e', 'n', 't' };
+static const symbol s_19[] = { 'i', 'z', 'e' };
+static const symbol s_20[] = { 'a', 't', 'e' };
+static const symbol s_21[] = { 'a', 'l' };
+static const symbol s_22[] = { 'f', 'u', 'l' };
+static const symbol s_23[] = { 'o', 'u', 's' };
+static const symbol s_24[] = { 'i', 'v', 'e' };
+static const symbol s_25[] = { 'b', 'l', 'e' };
+static const symbol s_26[] = { 'l' };
+static const symbol s_27[] = { 'o', 'g' };
+static const symbol s_28[] = { 'f', 'u', 'l' };
+static const symbol s_29[] = { 'l', 'e', 's', 's' };
+static const symbol s_30[] = { 't', 'i', 'o', 'n' };
+static const symbol s_31[] = { 'a', 't', 'e' };
+static const symbol s_32[] = { 'a', 'l' };
+static const symbol s_33[] = { 'i', 'c' };
+static const symbol s_34[] = { 's' };
+static const symbol s_35[] = { 't' };
+static const symbol s_36[] = { 'l' };
+static const symbol s_37[] = { 's', 'k', 'i' };
+static const symbol s_38[] = { 's', 'k', 'y' };
+static const symbol s_39[] = { 'd', 'i', 'e' };
+static const symbol s_40[] = { 'l', 'i', 'e' };
+static const symbol s_41[] = { 't', 'i', 'e' };
+static const symbol s_42[] = { 'i', 'd', 'l' };
+static const symbol s_43[] = { 'g', 'e', 'n', 't', 'l' };
+static const symbol s_44[] = { 'u', 'g', 'l', 'i' };
+static const symbol s_45[] = { 'e', 'a', 'r', 'l', 'i' };
+static const symbol s_46[] = { 'o', 'n', 'l', 'i' };
+static const symbol s_47[] = { 's', 'i', 'n', 'g', 'l' };
+static const symbol s_48[] = { 'Y' };
+static const symbol s_49[] = { 'y' };
static int r_prelude(struct SN_env * z) {
z->B[0] = 0; /* unset Y_found, line 26 */
- { int c = z->c; /* do, line 27 */
+ { int c1 = z->c; /* do, line 27 */
z->bra = z->c; /* [, line 27 */
if (!(eq_s(z, 1, s_0))) goto lab0;
z->ket = z->c; /* ], line 27 */
- { int ret;
- ret = slice_del(z); /* delete, line 27 */
+ { int ret = slice_del(z); /* delete, line 27 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 28 */
+ { int c2 = z->c; /* do, line 28 */
z->bra = z->c; /* [, line 28 */
if (!(eq_s(z, 1, s_1))) goto lab1;
z->ket = z->c; /* ], line 28 */
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 28 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 28 */
lab1:
- z->c = c;
+ z->c = c2;
}
- { int c = z->c; /* do, line 29 */
+ { int c3 = z->c; /* do, line 29 */
while(1) { /* repeat, line 29 */
- int c = z->c;
+ int c4 = z->c;
while(1) { /* goto, line 29 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 121))) goto lab4;
+ int c5 = z->c;
+ if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4;
z->bra = z->c; /* [, line 29 */
if (!(eq_s(z, 1, s_3))) goto lab4;
z->ket = z->c; /* ], line 29 */
- z->c = c;
+ z->c = c5;
break;
lab4:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab3;
- z->c = c; /* goto, line 29 */
+ z->c = c5;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab3;
+ z->c = ret; /* goto, line 29 */
}
}
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 29 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 29 */
continue;
lab3:
- z->c = c;
+ z->c = c4;
break;
}
- z->c = c;
+ z->c = c3;
}
return 1;
}
@@ -413,69 +426,54 @@ static int r_prelude(struct SN_env * z) {
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- { int c = z->c; /* do, line 35 */
- { int c = z->c; /* or, line 40 */
- if (!(find_among(z, a_0, 2))) goto lab2; /* among, line 36 */
+ { 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;
+ if (!(find_among(z, a_0, 3))) goto lab2; /* among, line 36 */
goto lab1;
lab2:
- z->c = c;
- while(1) { /* gopast, line 40 */
- if (!(in_grouping_U(z, g_v, 97, 121))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 40 */
- }
+ 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;
}
- while(1) { /* gopast, line 40 */
- if (!(out_grouping_U(z, g_v, 97, 121))) goto lab4;
- break;
- lab4:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 40 */
- }
+ { /* 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 41 */
- while(1) { /* gopast, line 42 */
- if (!(in_grouping_U(z, g_v, 97, 121))) goto lab5;
- break;
- lab5:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 42 */
- }
+ z->I[0] = z->c; /* setmark p1, line 42 */
+ { /* gopast */ /* grouping v, line 43 */
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
}
- while(1) { /* gopast, line 42 */
- if (!(out_grouping_U(z, g_v, 97, 121))) goto lab6;
- break;
- lab6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 42 */
- }
+ { /* 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 42 */
+ z->I[1] = z->c; /* setmark p2, line 43 */
lab0:
- z->c = c;
+ z->c = c1;
}
return 1;
}
static int r_shortv(struct SN_env * z) {
- { int m = z->l - z->c; (void) m; /* or, line 50 */
- if (!(out_grouping_b_U(z, g_v_WXY, 89, 121))) goto lab1;
- if (!(in_grouping_b_U(z, g_v, 97, 121))) goto lab1;
- if (!(out_grouping_b_U(z, g_v, 97, 121))) goto lab1;
+ { 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;
+ 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 - m;
- if (!(out_grouping_b_U(z, g_v, 97, 121))) return 0;
- if (!(in_grouping_b_U(z, g_v, 97, 121))) return 0;
- if (z->c > z->lb) return 0; /* atlimit, line 51 */
+ z->c = z->l - m1;
+ 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; /* atlimit, line 52 */
}
lab0:
return 1;
@@ -493,16 +491,16 @@ static int r_R2(struct SN_env * z) {
static int r_Step_1a(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* try, line 58 */
- z->ket = z->c; /* [, line 59 */
- among_var = find_among_b(z, a_1, 3); /* substring, line 59 */
- if (!(among_var)) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 59 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab0; }
+ among_var = find_among_b(z, a_1, 3); /* substring, line 60 */
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 60 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab0; }
+ case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 61 */
+ { int ret = slice_del(z); /* delete, line 62 */
if (ret < 0) return ret;
}
break;
@@ -510,54 +508,47 @@ static int r_Step_1a(struct SN_env * z) {
lab0:
;
}
- z->ket = z->c; /* [, line 64 */
- among_var = find_among_b(z, a_2, 6); /* substring, line 64 */
+ 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;
+ among_var = find_among_b(z, a_2, 6); /* substring, line 65 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 64 */
+ z->bra = z->c; /* ], line 65 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_5); /* <-, line 65 */
+ { int ret = slice_from_s(z, 2, s_5); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 67 */
- { int c = skip_utf8(z->p, z->c, z->lb, z->l, - 2);
- if (c < 0) goto lab2;
- z->c = c; /* hop, line 67 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 68 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2);
+ if (ret < 0) goto lab2;
+ z->c = ret; /* hop, line 68 */
}
- { int ret;
- ret = slice_from_s(z, 1, s_6); /* <-, line 67 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 68 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 2, s_7); /* <-, line 67 */
+ z->c = z->l - m1;
+ { int ret = slice_from_s(z, 2, s_7); /* <-, line 68 */
if (ret < 0) return ret;
}
}
lab1:
break;
case 3:
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 68 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 69 */
}
- while(1) { /* gopast, line 68 */
- if (!(in_grouping_b_U(z, g_v, 97, 121))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 68 */
- }
+ { /* 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;
- ret = slice_del(z); /* delete, line 68 */
+ { int ret = slice_del(z); /* delete, line 69 */
if (ret < 0) return ret;
}
break;
@@ -567,81 +558,72 @@ static int r_Step_1a(struct SN_env * z) {
static int r_Step_1b(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 74 */
- among_var = find_among_b(z, a_4, 6); /* substring, line 74 */
+ 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;
+ among_var = find_among_b(z, a_4, 6); /* substring, line 75 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 74 */
+ z->bra = z->c; /* ], line 75 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 76 */
+ if (ret == 0) return 0; /* call R1, line 77 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
+ { int ret = slice_from_s(z, 2, s_8); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m_test = z->l - z->c; /* test, line 79 */
- while(1) { /* gopast, line 79 */
- if (!(in_grouping_b_U(z, g_v, 97, 121))) goto lab0;
- break;
- lab0:
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 79 */
- }
+ { int m_test = z->l - z->c; /* test, line 80 */
+ { /* gopast */ /* grouping v, line 80 */
+ 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_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 79 */
+ { int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
- { int m_test = z->l - z->c; /* test, line 80 */
- among_var = find_among_b(z, a_3, 13); /* substring, line 80 */
+ { int m_test = 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
+ among_var = find_among_b(z, a_3, 13); /* substring, line 81 */
if (!(among_var)) return 0;
z->c = z->l - m_test;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 82 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_9); /* <+, line 83 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
case 2:
- z->ket = z->c; /* [, line 85 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 85 */
+ z->ket = z->c; /* [, line 86 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 86 */
}
- z->bra = z->c; /* ], line 85 */
- { int ret;
- ret = slice_del(z); /* delete, line 85 */
+ z->bra = z->c; /* ], line 86 */
+ { int ret = slice_del(z); /* delete, line 86 */
if (ret < 0) return ret;
}
break;
case 3:
- if (z->c != z->I[0]) return 0; /* atmark, line 86 */
- { int m_test = z->l - z->c; /* test, line 86 */
+ if (z->c != z->I[0]) return 0; /* atmark, line 87 */
+ { int m_test = z->l - z->c; /* test, line 87 */
{ int ret = r_shortv(z);
- if (ret == 0) return 0; /* call shortv, line 86 */
+ if (ret == 0) return 0; /* call shortv, line 87 */
if (ret < 0) return ret;
}
z->c = z->l - m_test;
}
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 86 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_10); /* <+, line 87 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
@@ -652,25 +634,24 @@ static int r_Step_1b(struct SN_env * z) {
}
static int r_Step_1c(struct SN_env * z) {
- z->ket = z->c; /* [, line 93 */
- { int m = z->l - z->c; (void) m; /* or, line 93 */
+ z->ket = z->c; /* [, line 94 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 94 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_12))) return 0;
}
lab0:
- z->bra = z->c; /* ], line 93 */
- if (!(out_grouping_b_U(z, g_v, 97, 121))) return 0;
- { int m = z->l - z->c; (void) m; /* not, line 94 */
- if (z->c > z->lb) goto lab2; /* atlimit, line 94 */
+ z->bra = z->c; /* ], line 94 */
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 95 */
+ if (z->c > z->lb) goto lab2; /* atlimit, line 95 */
return 0;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 95 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 96 */
if (ret < 0) return ret;
}
return 1;
@@ -678,111 +659,96 @@ lab0:
static int r_Step_2(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 99 */
- among_var = find_among_b(z, a_5, 24); /* substring, line 99 */
+ 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;
+ among_var = find_among_b(z, a_5, 24); /* substring, line 100 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 99 */
+ z->bra = z->c; /* ], line 100 */
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 99 */
+ if (ret == 0) return 0; /* call R1, line 100 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 4, s_14); /* <-, line 100 */
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 101 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 4, s_15); /* <-, line 101 */
+ { int ret = slice_from_s(z, 4, s_15); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 4, s_16); /* <-, line 102 */
+ { int ret = slice_from_s(z, 4, s_16); /* <-, line 103 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 4, s_17); /* <-, line 103 */
+ { int ret = slice_from_s(z, 4, s_17); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 3, s_18); /* <-, line 104 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 105 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 3, s_19); /* <-, line 106 */
+ { int ret = slice_from_s(z, 3, s_19); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret;
- ret = slice_from_s(z, 3, s_20); /* <-, line 108 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret;
- ret = slice_from_s(z, 2, s_21); /* <-, line 110 */
+ { int ret = slice_from_s(z, 2, s_21); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 3, s_22); /* <-, line 111 */
+ { int ret = slice_from_s(z, 3, s_22); /* <-, line 112 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret;
- ret = slice_from_s(z, 3, s_23); /* <-, line 113 */
+ { int ret = slice_from_s(z, 3, s_23); /* <-, line 114 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret;
- ret = slice_from_s(z, 3, s_24); /* <-, line 115 */
+ { int ret = slice_from_s(z, 3, s_24); /* <-, line 116 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret;
- ret = slice_from_s(z, 3, s_25); /* <-, line 117 */
+ { int ret = slice_from_s(z, 3, s_25); /* <-, line 118 */
if (ret < 0) return ret;
}
break;
case 13:
if (!(eq_s_b(z, 1, s_26))) return 0;
- { int ret;
- ret = slice_from_s(z, 2, s_27); /* <-, line 118 */
+ { int ret = slice_from_s(z, 2, s_27); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
case 14:
- { int ret;
- ret = slice_from_s(z, 3, s_28); /* <-, line 119 */
+ { int ret = slice_from_s(z, 3, s_28); /* <-, line 120 */
if (ret < 0) return ret;
}
break;
case 15:
- { int ret;
- ret = slice_from_s(z, 4, s_29); /* <-, line 120 */
+ { int ret = slice_from_s(z, 4, s_29); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
case 16:
- if (!(in_grouping_b_U(z, g_valid_LI, 99, 116))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 121 */
+ if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0;
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
break;
@@ -792,53 +758,48 @@ static int r_Step_2(struct SN_env * z) {
static int r_Step_3(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 126 */
- among_var = find_among_b(z, a_6, 9); /* substring, line 126 */
+ 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;
+ among_var = find_among_b(z, a_6, 9); /* substring, line 127 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 126 */
+ z->bra = z->c; /* ], line 127 */
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 126 */
+ if (ret == 0) return 0; /* call R1, line 127 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 4, s_30); /* <-, line 127 */
+ { int ret = slice_from_s(z, 4, s_30); /* <-, line 128 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 3, s_31); /* <-, line 128 */
+ { int ret = slice_from_s(z, 3, s_31); /* <-, line 129 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 2, s_32); /* <-, line 129 */
+ { int ret = slice_from_s(z, 2, s_32); /* <-, line 130 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 2, s_33); /* <-, line 131 */
+ { int ret = slice_from_s(z, 2, s_33); /* <-, line 132 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 135 */
+ if (ret == 0) return 0; /* call R2, line 136 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 135 */
+ { int ret = slice_del(z); /* delete, line 136 */
if (ret < 0) return ret;
}
break;
@@ -848,33 +809,32 @@ static int r_Step_3(struct SN_env * z) {
static int r_Step_4(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 140 */
- among_var = find_among_b(z, a_7, 18); /* substring, line 140 */
+ 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;
+ among_var = find_among_b(z, a_7, 18); /* substring, line 141 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 140 */
+ z->bra = z->c; /* ], line 141 */
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 140 */
+ if (ret == 0) return 0; /* call R2, line 141 */
if (ret < 0) return ret;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 144 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 144 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 145 */
if (!(eq_s_b(z, 1, s_34))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_35))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 144 */
+ { int ret = slice_del(z); /* delete, line 145 */
if (ret < 0) return ret;
}
break;
@@ -884,49 +844,48 @@ static int r_Step_4(struct SN_env * z) {
static int r_Step_5(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 149 */
- among_var = find_among_b(z, a_8, 2); /* substring, line 149 */
+ 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;
+ among_var = find_among_b(z, a_8, 2); /* substring, line 150 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 149 */
+ z->bra = z->c; /* ], line 150 */
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 150 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 151 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab1; /* call R2, line 150 */
+ if (ret == 0) goto lab1; /* call R2, line 151 */
if (ret < 0) return ret;
}
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 150 */
+ if (ret == 0) return 0; /* call R1, line 151 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 150 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 151 */
{ int ret = r_shortv(z);
- if (ret == 0) goto lab2; /* call shortv, line 150 */
+ if (ret == 0) goto lab2; /* call shortv, line 151 */
if (ret < 0) return ret;
}
return 0;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 150 */
+ { int ret = slice_del(z); /* delete, line 151 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 151 */
+ if (ret == 0) return 0; /* call R2, line 152 */
if (ret < 0) return ret;
}
if (!(eq_s_b(z, 1, s_36))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
break;
@@ -935,85 +894,76 @@ static int r_Step_5(struct SN_env * z) {
}
static int r_exception2(struct SN_env * z) {
- z->ket = z->c; /* [, line 157 */
- if (!(find_among_b(z, a_9, 8))) return 0; /* substring, line 157 */
- z->bra = z->c; /* ], line 157 */
- if (z->c > z->lb) return 0; /* atlimit, line 157 */
+ 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;
+ if (!(find_among_b(z, a_9, 8))) return 0; /* substring, line 158 */
+ z->bra = z->c; /* ], line 158 */
+ if (z->c > z->lb) return 0; /* atlimit, line 158 */
return 1;
}
static int r_exception1(struct SN_env * z) {
int among_var;
- z->bra = z->c; /* [, line 169 */
- among_var = find_among(z, a_10, 18); /* substring, line 169 */
+ 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;
+ among_var = find_among(z, a_10, 18); /* substring, line 170 */
if (!(among_var)) return 0;
- z->ket = z->c; /* ], line 169 */
- if (z->c < z->l) return 0; /* atlimit, line 169 */
+ z->ket = z->c; /* ], line 170 */
+ if (z->c < z->l) return 0; /* atlimit, line 170 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 3, s_37); /* <-, line 173 */
+ { int ret = slice_from_s(z, 3, s_37); /* <-, line 174 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 3, s_38); /* <-, line 174 */
+ { int ret = slice_from_s(z, 3, s_38); /* <-, line 175 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 3, s_39); /* <-, line 175 */
+ { int ret = slice_from_s(z, 3, s_39); /* <-, line 176 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 3, s_40); /* <-, line 176 */
+ { int ret = slice_from_s(z, 3, s_40); /* <-, line 177 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 3, s_41); /* <-, line 177 */
+ { int ret = slice_from_s(z, 3, s_41); /* <-, line 178 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 3, s_42); /* <-, line 181 */
+ { int ret = slice_from_s(z, 3, s_42); /* <-, line 182 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret;
- ret = slice_from_s(z, 5, s_43); /* <-, line 182 */
+ { int ret = slice_from_s(z, 5, s_43); /* <-, line 183 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret;
- ret = slice_from_s(z, 4, s_44); /* <-, line 183 */
+ { int ret = slice_from_s(z, 4, s_44); /* <-, line 184 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 5, s_45); /* <-, line 184 */
+ { int ret = slice_from_s(z, 5, s_45); /* <-, line 185 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret;
- ret = slice_from_s(z, 4, s_46); /* <-, line 185 */
+ { int ret = slice_from_s(z, 4, s_46); /* <-, line 186 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret;
- ret = slice_from_s(z, 5, s_47); /* <-, line 186 */
+ { int ret = slice_from_s(z, 5, s_47); /* <-, line 187 */
if (ret < 0) return ret;
}
break;
@@ -1022,148 +972,147 @@ static int r_exception1(struct SN_env * z) {
}
static int r_postlude(struct SN_env * z) {
- if (!(z->B[0])) return 0; /* Boolean test Y_found, line 202 */
- while(1) { /* repeat, line 202 */
- int c = z->c;
- while(1) { /* goto, line 202 */
- int c = z->c;
- z->bra = z->c; /* [, line 202 */
+ if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */
+ while(1) { /* repeat, line 203 */
+ int c1 = z->c;
+ while(1) { /* goto, line 203 */
+ int c2 = z->c;
+ z->bra = z->c; /* [, line 203 */
if (!(eq_s(z, 1, s_48))) goto lab1;
- z->ket = z->c; /* ], line 202 */
- z->c = c;
+ z->ket = z->c; /* ], line 203 */
+ z->c = c2;
break;
lab1:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* goto, line 202 */
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* goto, line 203 */
}
}
- { int ret;
- ret = slice_from_s(z, 1, s_49); /* <-, line 202 */
+ { int ret = slice_from_s(z, 1, s_49); /* <-, line 203 */
if (ret < 0) return ret;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
}
extern int english_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* or, line 206 */
+ { int c1 = z->c; /* or, line 207 */
{ int ret = r_exception1(z);
- if (ret == 0) goto lab1; /* call exception1, line 206 */
+ if (ret == 0) goto lab1; /* call exception1, line 207 */
if (ret < 0) return ret;
}
goto lab0;
lab1:
- z->c = c;
- { int c = z->c; /* not, line 207 */
- { int c = skip_utf8(z->p, z->c, 0, z->l, + 3);
- if (c < 0) goto lab3;
- z->c = c; /* hop, line 207 */
+ z->c = c1;
+ { int c2 = z->c; /* not, line 208 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+ if (ret < 0) goto lab3;
+ z->c = ret; /* hop, line 208 */
}
goto lab2;
lab3:
- z->c = c;
+ z->c = c2;
}
goto lab0;
lab2:
- z->c = c;
- { int c = z->c; /* do, line 208 */
+ z->c = c1;
+ { int c3 = z->c; /* do, line 209 */
{ int ret = r_prelude(z);
- if (ret == 0) goto lab4; /* call prelude, line 208 */
+ if (ret == 0) goto lab4; /* call prelude, line 209 */
if (ret < 0) return ret;
}
lab4:
- z->c = c;
+ z->c = c3;
}
- { int c = z->c; /* do, line 209 */
+ { int c4 = z->c; /* do, line 210 */
{ int ret = r_mark_regions(z);
- if (ret == 0) goto lab5; /* call mark_regions, line 209 */
+ if (ret == 0) goto lab5; /* call mark_regions, line 210 */
if (ret < 0) return ret;
}
lab5:
- z->c = c;
+ z->c = c4;
}
- z->lb = z->c; z->c = z->l; /* backwards, line 210 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 211 */
- { int m = z->l - z->c; (void) m; /* do, line 212 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 213 */
{ int ret = r_Step_1a(z);
- if (ret == 0) goto lab6; /* call Step_1a, line 212 */
+ if (ret == 0) goto lab6; /* call Step_1a, line 213 */
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* or, line 214 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 215 */
{ int ret = r_exception2(z);
- if (ret == 0) goto lab8; /* call exception2, line 214 */
+ if (ret == 0) goto lab8; /* call exception2, line 215 */
if (ret < 0) return ret;
}
goto lab7;
lab8:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 216 */
+ z->c = z->l - m6;
+ { int m7 = z->l - z->c; (void)m7; /* do, line 217 */
{ int ret = r_Step_1b(z);
- if (ret == 0) goto lab9; /* call Step_1b, line 216 */
+ if (ret == 0) goto lab9; /* call Step_1b, line 217 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- { int m = z->l - z->c; (void) m; /* do, line 217 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 218 */
{ int ret = r_Step_1c(z);
- if (ret == 0) goto lab10; /* call Step_1c, line 217 */
+ if (ret == 0) goto lab10; /* call Step_1c, line 218 */
if (ret < 0) return ret;
}
lab10:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
- { int m = z->l - z->c; (void) m; /* do, line 219 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 220 */
{ int ret = r_Step_2(z);
- if (ret == 0) goto lab11; /* call Step_2, line 219 */
+ if (ret == 0) goto lab11; /* call Step_2, line 220 */
if (ret < 0) return ret;
}
lab11:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
- { int m = z->l - z->c; (void) m; /* do, line 220 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 221 */
{ int ret = r_Step_3(z);
- if (ret == 0) goto lab12; /* call Step_3, line 220 */
+ if (ret == 0) goto lab12; /* call Step_3, line 221 */
if (ret < 0) return ret;
}
lab12:
- z->c = z->l - m;
+ z->c = z->l - m10;
}
- { int m = z->l - z->c; (void) m; /* do, line 221 */
+ { int m11 = z->l - z->c; (void)m11; /* do, line 222 */
{ int ret = r_Step_4(z);
- if (ret == 0) goto lab13; /* call Step_4, line 221 */
+ if (ret == 0) goto lab13; /* call Step_4, line 222 */
if (ret < 0) return ret;
}
lab13:
- z->c = z->l - m;
+ z->c = z->l - m11;
}
- { int m = z->l - z->c; (void) m; /* do, line 223 */
+ { int m12 = z->l - z->c; (void)m12; /* do, line 224 */
{ int ret = r_Step_5(z);
- if (ret == 0) goto lab14; /* call Step_5, line 223 */
+ if (ret == 0) goto lab14; /* call Step_5, line 224 */
if (ret < 0) return ret;
}
lab14:
- z->c = z->l - m;
+ z->c = z->l - m12;
}
}
lab7:
z->c = z->lb;
- { int c = z->c; /* do, line 226 */
+ { int c13 = z->c; /* do, line 227 */
{ int ret = r_postlude(z);
- if (ret == 0) goto lab15; /* call postlude, line 226 */
+ if (ret == 0) goto lab15; /* call postlude, line 227 */
if (ret < 0) return ret;
}
lab15:
- z->c = c;
+ z->c = c13;
}
}
lab0:
@@ -1172,5 +1121,5 @@ lab0:
extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
-extern void english_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void english_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_finnish.c b/libstemmer_c/src_c/stem_UTF_8_finnish.c
index a221be6..65a432a 100644
--- a/libstemmer_c/src_c/stem_UTF_8_finnish.c
+++ b/libstemmer_c/src_c/stem_UTF_8_finnish.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int finnish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_tidy(struct SN_env * z);
static int r_other_endings(struct SN_env * z);
static int r_t_plural(struct SN_env * z);
@@ -15,22 +21,30 @@ static int r_possessive(struct SN_env * z);
static int r_particle_etc(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 * finnish_UTF_8_create_env(void);
extern void finnish_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[2] = { 'p', 'a' };
-static symbol s_0_1[3] = { 's', 't', 'i' };
-static symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
-static symbol s_0_3[3] = { 'h', 'a', 'n' };
-static symbol s_0_4[3] = { 'k', 'i', 'n' };
-static symbol s_0_5[4] = { 'h', 0xC3, 0xA4, 'n' };
-static symbol s_0_6[6] = { 'k', 0xC3, 0xA4, 0xC3, 0xA4, 'n' };
-static symbol s_0_7[2] = { 'k', 'o' };
-static symbol s_0_8[3] = { 'p', 0xC3, 0xA4 };
-static symbol s_0_9[3] = { 'k', 0xC3, 0xB6 };
-
-static struct among a_0[10] =
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'p', 'a' };
+static const symbol s_0_1[3] = { 's', 't', 'i' };
+static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
+static const symbol s_0_3[3] = { 'h', 'a', 'n' };
+static const symbol s_0_4[3] = { 'k', 'i', 'n' };
+static const symbol s_0_5[4] = { 'h', 0xC3, 0xA4, 'n' };
+static const symbol s_0_6[6] = { 'k', 0xC3, 0xA4, 0xC3, 0xA4, 'n' };
+static const symbol s_0_7[2] = { 'k', 'o' };
+static const symbol s_0_8[3] = { 'p', 0xC3, 0xA4 };
+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},
@@ -44,14 +58,14 @@ static struct among a_0[10] =
/* 9 */ { 3, s_0_9, -1, 1, 0}
};
-static symbol s_1_0[3] = { 'l', 'l', 'a' };
-static symbol s_1_1[2] = { 'n', 'a' };
-static symbol s_1_2[3] = { 's', 's', 'a' };
-static symbol s_1_3[2] = { 't', 'a' };
-static symbol s_1_4[3] = { 'l', 't', 'a' };
-static symbol s_1_5[3] = { 's', 't', 'a' };
+static const symbol s_1_0[3] = { 'l', 'l', 'a' };
+static const symbol s_1_1[2] = { 'n', 'a' };
+static const symbol s_1_2[3] = { 's', 's', 'a' };
+static const symbol s_1_3[2] = { 't', 'a' };
+static const symbol s_1_4[3] = { 'l', 't', 'a' };
+static const symbol s_1_5[3] = { 's', 't', 'a' };
-static struct among a_1[6] =
+static const struct among a_1[6] =
{
/* 0 */ { 3, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
@@ -61,14 +75,14 @@ static struct among a_1[6] =
/* 5 */ { 3, s_1_5, 3, -1, 0}
};
-static symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 };
-static symbol s_2_1[3] = { 'n', 0xC3, 0xA4 };
-static symbol s_2_2[4] = { 's', 's', 0xC3, 0xA4 };
-static symbol s_2_3[3] = { 't', 0xC3, 0xA4 };
-static symbol s_2_4[4] = { 'l', 't', 0xC3, 0xA4 };
-static symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 };
+static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 };
+static const symbol s_2_1[3] = { 'n', 0xC3, 0xA4 };
+static const symbol s_2_2[4] = { 's', 's', 0xC3, 0xA4 };
+static const symbol s_2_3[3] = { 't', 0xC3, 0xA4 };
+static const symbol s_2_4[4] = { 'l', 't', 0xC3, 0xA4 };
+static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 };
-static struct among a_2[6] =
+static const struct among a_2[6] =
{
/* 0 */ { 4, s_2_0, -1, -1, 0},
/* 1 */ { 3, s_2_1, -1, -1, 0},
@@ -78,26 +92,26 @@ static struct among a_2[6] =
/* 5 */ { 4, s_2_5, 3, -1, 0}
};
-static symbol s_3_0[3] = { 'l', 'l', 'e' };
-static symbol s_3_1[3] = { 'i', 'n', 'e' };
+static const symbol s_3_0[3] = { 'l', 'l', 'e' };
+static const symbol s_3_1[3] = { 'i', 'n', 'e' };
-static struct among a_3[2] =
+static const struct among a_3[2] =
{
/* 0 */ { 3, s_3_0, -1, -1, 0},
/* 1 */ { 3, s_3_1, -1, -1, 0}
};
-static symbol s_4_0[3] = { 'n', 's', 'a' };
-static symbol s_4_1[3] = { 'm', 'm', 'e' };
-static symbol s_4_2[3] = { 'n', 'n', 'e' };
-static symbol s_4_3[2] = { 'n', 'i' };
-static symbol s_4_4[2] = { 's', 'i' };
-static symbol s_4_5[2] = { 'a', 'n' };
-static symbol s_4_6[2] = { 'e', 'n' };
-static symbol s_4_7[3] = { 0xC3, 0xA4, 'n' };
-static symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 };
-
-static struct among a_4[9] =
+static const symbol s_4_0[3] = { 'n', 's', 'a' };
+static const symbol s_4_1[3] = { 'm', 'm', 'e' };
+static const symbol s_4_2[3] = { 'n', 'n', 'e' };
+static const symbol s_4_3[2] = { 'n', 'i' };
+static const symbol s_4_4[2] = { 's', 'i' };
+static const symbol s_4_5[2] = { 'a', 'n' };
+static const symbol s_4_6[2] = { 'e', 'n' };
+static const symbol s_4_7[3] = { 0xC3, 0xA4, 'n' };
+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},
@@ -110,15 +124,15 @@ static struct among a_4[9] =
/* 8 */ { 4, s_4_8, -1, 3, 0}
};
-static symbol s_5_0[2] = { 'a', 'a' };
-static symbol s_5_1[2] = { 'e', 'e' };
-static symbol s_5_2[2] = { 'i', 'i' };
-static symbol s_5_3[2] = { 'o', 'o' };
-static symbol s_5_4[2] = { 'u', 'u' };
-static symbol s_5_5[4] = { 0xC3, 0xA4, 0xC3, 0xA4 };
-static symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'i', 'i' };
+static const symbol s_5_3[2] = { 'o', 'o' };
+static const symbol s_5_4[2] = { 'u', 'u' };
+static const symbol s_5_5[4] = { 0xC3, 0xA4, 0xC3, 0xA4 };
+static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
-static struct among a_5[7] =
+static const struct among a_5[7] =
{
/* 0 */ { 2, s_5_0, -1, -1, 0},
/* 1 */ { 2, s_5_1, -1, -1, 0},
@@ -129,38 +143,38 @@ static struct among a_5[7] =
/* 6 */ { 4, s_5_6, -1, -1, 0}
};
-static symbol s_6_0[1] = { 'a' };
-static symbol s_6_1[3] = { 'l', 'l', 'a' };
-static symbol s_6_2[2] = { 'n', 'a' };
-static symbol s_6_3[3] = { 's', 's', 'a' };
-static symbol s_6_4[2] = { 't', 'a' };
-static symbol s_6_5[3] = { 'l', 't', 'a' };
-static symbol s_6_6[3] = { 's', 't', 'a' };
-static symbol s_6_7[3] = { 't', 't', 'a' };
-static symbol s_6_8[3] = { 'l', 'l', 'e' };
-static symbol s_6_9[3] = { 'i', 'n', 'e' };
-static symbol s_6_10[3] = { 'k', 's', 'i' };
-static symbol s_6_11[1] = { 'n' };
-static symbol s_6_12[3] = { 'h', 'a', 'n' };
-static symbol s_6_13[3] = { 'd', 'e', 'n' };
-static symbol s_6_14[4] = { 's', 'e', 'e', 'n' };
-static symbol s_6_15[3] = { 'h', 'e', 'n' };
-static symbol s_6_16[4] = { 't', 't', 'e', 'n' };
-static symbol s_6_17[3] = { 'h', 'i', 'n' };
-static symbol s_6_18[4] = { 's', 'i', 'i', 'n' };
-static symbol s_6_19[3] = { 'h', 'o', 'n' };
-static symbol s_6_20[4] = { 'h', 0xC3, 0xA4, 'n' };
-static symbol s_6_21[4] = { 'h', 0xC3, 0xB6, 'n' };
-static symbol s_6_22[2] = { 0xC3, 0xA4 };
-static symbol s_6_23[4] = { 'l', 'l', 0xC3, 0xA4 };
-static symbol s_6_24[3] = { 'n', 0xC3, 0xA4 };
-static symbol s_6_25[4] = { 's', 's', 0xC3, 0xA4 };
-static symbol s_6_26[3] = { 't', 0xC3, 0xA4 };
-static symbol s_6_27[4] = { 'l', 't', 0xC3, 0xA4 };
-static symbol s_6_28[4] = { 's', 't', 0xC3, 0xA4 };
-static symbol s_6_29[4] = { 't', 't', 0xC3, 0xA4 };
-
-static struct among a_6[30] =
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'l', 'l', 'a' };
+static const symbol s_6_2[2] = { 'n', 'a' };
+static const symbol s_6_3[3] = { 's', 's', 'a' };
+static const symbol s_6_4[2] = { 't', 'a' };
+static const symbol s_6_5[3] = { 'l', 't', 'a' };
+static const symbol s_6_6[3] = { 's', 't', 'a' };
+static const symbol s_6_7[3] = { 't', 't', 'a' };
+static const symbol s_6_8[3] = { 'l', 'l', 'e' };
+static const symbol s_6_9[3] = { 'i', 'n', 'e' };
+static const symbol s_6_10[3] = { 'k', 's', 'i' };
+static const symbol s_6_11[1] = { 'n' };
+static const symbol s_6_12[3] = { 'h', 'a', 'n' };
+static const symbol s_6_13[3] = { 'd', 'e', 'n' };
+static const symbol s_6_14[4] = { 's', 'e', 'e', 'n' };
+static const symbol s_6_15[3] = { 'h', 'e', 'n' };
+static const symbol s_6_16[4] = { 't', 't', 'e', 'n' };
+static const symbol s_6_17[3] = { 'h', 'i', 'n' };
+static const symbol s_6_18[4] = { 's', 'i', 'i', 'n' };
+static const symbol s_6_19[3] = { 'h', 'o', 'n' };
+static const symbol s_6_20[4] = { 'h', 0xC3, 0xA4, 'n' };
+static const symbol s_6_21[4] = { 'h', 0xC3, 0xB6, 'n' };
+static const symbol s_6_22[2] = { 0xC3, 0xA4 };
+static const symbol s_6_23[4] = { 'l', 'l', 0xC3, 0xA4 };
+static const symbol s_6_24[3] = { 'n', 0xC3, 0xA4 };
+static const symbol s_6_25[4] = { 's', 's', 0xC3, 0xA4 };
+static const symbol s_6_26[3] = { 't', 0xC3, 0xA4 };
+static const symbol s_6_27[4] = { 'l', 't', 0xC3, 0xA4 };
+static const symbol s_6_28[4] = { 's', 't', 0xC3, 0xA4 };
+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},
@@ -194,22 +208,22 @@ static struct among a_6[30] =
/* 29 */ { 4, s_6_29, 26, 9, 0}
};
-static symbol s_7_0[3] = { 'e', 'j', 'a' };
-static symbol s_7_1[3] = { 'm', 'm', 'a' };
-static symbol s_7_2[4] = { 'i', 'm', 'm', 'a' };
-static symbol s_7_3[3] = { 'm', 'p', 'a' };
-static symbol s_7_4[4] = { 'i', 'm', 'p', 'a' };
-static symbol s_7_5[3] = { 'm', 'm', 'i' };
-static symbol s_7_6[4] = { 'i', 'm', 'm', 'i' };
-static symbol s_7_7[3] = { 'm', 'p', 'i' };
-static symbol s_7_8[4] = { 'i', 'm', 'p', 'i' };
-static symbol s_7_9[4] = { 'e', 'j', 0xC3, 0xA4 };
-static symbol s_7_10[4] = { 'm', 'm', 0xC3, 0xA4 };
-static symbol s_7_11[5] = { 'i', 'm', 'm', 0xC3, 0xA4 };
-static symbol s_7_12[4] = { 'm', 'p', 0xC3, 0xA4 };
-static symbol s_7_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 };
-
-static struct among a_7[14] =
+static const symbol s_7_0[3] = { 'e', 'j', 'a' };
+static const symbol s_7_1[3] = { 'm', 'm', 'a' };
+static const symbol s_7_2[4] = { 'i', 'm', 'm', 'a' };
+static const symbol s_7_3[3] = { 'm', 'p', 'a' };
+static const symbol s_7_4[4] = { 'i', 'm', 'p', 'a' };
+static const symbol s_7_5[3] = { 'm', 'm', 'i' };
+static const symbol s_7_6[4] = { 'i', 'm', 'm', 'i' };
+static const symbol s_7_7[3] = { 'm', 'p', 'i' };
+static const symbol s_7_8[4] = { 'i', 'm', 'p', 'i' };
+static const symbol s_7_9[4] = { 'e', 'j', 0xC3, 0xA4 };
+static const symbol s_7_10[4] = { 'm', 'm', 0xC3, 0xA4 };
+static const symbol s_7_11[5] = { 'i', 'm', 'm', 0xC3, 0xA4 };
+static const symbol s_7_12[4] = { 'm', 'p', 0xC3, 0xA4 };
+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},
@@ -227,98 +241,68 @@ static struct among a_7[14] =
/* 13 */ { 5, s_7_13, 12, -1, 0}
};
-static symbol s_8_0[1] = { 'i' };
-static symbol s_8_1[1] = { 'j' };
+static const symbol s_8_0[1] = { 'i' };
+static const symbol s_8_1[1] = { 'j' };
-static struct among a_8[2] =
+static const struct among a_8[2] =
{
/* 0 */ { 1, s_8_0, -1, -1, 0},
/* 1 */ { 1, s_8_1, -1, -1, 0}
};
-static symbol s_9_0[3] = { 'm', 'm', 'a' };
-static symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
+static const symbol s_9_0[3] = { 'm', 'm', 'a' };
+static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
-static struct among a_9[2] =
+static const struct among a_9[2] =
{
/* 0 */ { 3, s_9_0, -1, 1, 0},
/* 1 */ { 4, s_9_1, 0, -1, 0}
};
-static unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
-
-static unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-
-static unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-
-static unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
-
-static symbol s_0[] = { 'k' };
-static symbol s_1[] = { 'k', 's', 'e' };
-static symbol s_2[] = { 'k', 's', 'i' };
-static symbol s_3[] = { 'i' };
-static symbol s_4[] = { 'a' };
-static symbol s_5[] = { 'e' };
-static symbol s_6[] = { 'i' };
-static symbol s_7[] = { 'o' };
-static symbol s_8[] = { 0xC3, 0xA4 };
-static symbol s_9[] = { 0xC3, 0xB6 };
-static symbol s_10[] = { 'i', 'e' };
-static symbol s_11[] = { 'e' };
-static symbol s_12[] = { 'p', 'o' };
-static symbol s_13[] = { 't' };
-static symbol s_14[] = { 'p', 'o' };
-static symbol s_15[] = { 'j' };
-static symbol s_16[] = { 'o' };
-static symbol s_17[] = { 'u' };
-static symbol s_18[] = { 'o' };
-static symbol s_19[] = { 'j' };
+static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
+
+static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const symbol s_0[] = { 'k' };
+static const symbol s_1[] = { 'k', 's', 'e' };
+static const symbol s_2[] = { 'k', 's', 'i' };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'o' };
+static const symbol s_8[] = { 0xC3, 0xA4 };
+static const symbol s_9[] = { 0xC3, 0xB6 };
+static const symbol s_10[] = { 'i', 'e' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'p', 'o' };
+static const symbol s_13[] = { 't' };
+static const symbol s_14[] = { 'p', 'o' };
+static const symbol s_15[] = { 'j' };
+static const symbol s_16[] = { 'o' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'o' };
+static const symbol s_19[] = { 'j' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- while(1) { /* goto, line 46 */
- int c = z->c;
- if (!(in_grouping_U(z, g_V1, 97, 246))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* goto, line 46 */
- }
- }
- while(1) { /* gopast, line 46 */
- if (!(out_grouping_U(z, g_V1, 97, 246))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 46 */
- }
+ if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
+ { /* gopast */ /* non V1, line 46 */
+ 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 46 */
- while(1) { /* goto, line 47 */
- int c = z->c;
- if (!(in_grouping_U(z, g_V1, 97, 246))) goto lab2;
- z->c = c;
- break;
- lab2:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* goto, line 47 */
- }
- }
- while(1) { /* gopast, line 47 */
- if (!(out_grouping_U(z, g_V1, 97, 246))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 47 */
- }
+ if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
+ { /* gopast */ /* non V1, line 47 */
+ 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 47 */
return 1;
@@ -331,22 +315,22 @@ static int r_R2(struct SN_env * z) {
static int r_particle_etc(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 55 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 55 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 55 */
among_var = find_among_b(z, a_0, 10); /* substring, line 55 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 55 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- if (!(in_grouping_b_U(z, g_particle_end, 97, 246))) return 0;
+ if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0;
break;
case 2:
{ int ret = r_R2(z);
@@ -355,8 +339,7 @@ static int r_particle_etc(struct SN_env * z) {
}
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 66 */
+ { int ret = slice_del(z); /* delete, line 66 */
if (ret < 0) return ret;
}
return 1;
@@ -364,69 +347,65 @@ static int r_particle_etc(struct SN_env * z) {
static int r_possessive(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 69 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 69 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 69 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 69 */
among_var = find_among_b(z, a_4, 9); /* substring, line 69 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 69 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* not, line 72 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 72 */
if (!(eq_s_b(z, 1, s_0))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int ret;
- ret = slice_del(z); /* delete, line 72 */
+ { int ret = slice_del(z); /* delete, line 72 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 74 */
+ { int ret = slice_del(z); /* delete, line 74 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 74 */
if (!(eq_s_b(z, 3, s_1))) return 0;
z->bra = z->c; /* ], line 74 */
- { int ret;
- ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
+ { int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 78 */
+ { int ret = slice_del(z); /* delete, line 78 */
if (ret < 0) return ret;
}
break;
case 4:
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
if (!(find_among_b(z, a_1, 6))) return 0; /* among, line 81 */
- { int ret;
- ret = slice_del(z); /* delete, line 81 */
+ { int ret = slice_del(z); /* delete, line 81 */
if (ret < 0) return ret;
}
break;
case 5:
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
if (!(find_among_b(z, a_2, 6))) return 0; /* among, line 83 */
- { int ret;
- ret = slice_del(z); /* delete, line 84 */
+ { int ret = slice_del(z); /* delete, line 84 */
if (ret < 0) return ret;
}
break;
case 6:
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
if (!(find_among_b(z, a_3, 2))) return 0; /* among, line 86 */
- { int ret;
- ret = slice_del(z); /* delete, line 86 */
+ { int ret = slice_del(z); /* delete, line 86 */
if (ret < 0) return ret;
}
break;
@@ -441,23 +420,23 @@ static int r_LONG(struct SN_env * z) {
static int r_VI(struct SN_env * z) {
if (!(eq_s_b(z, 1, s_3))) return 0;
- if (!(in_grouping_b_U(z, g_V2, 97, 246))) return 0;
+ if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0;
return 1;
}
static int r_case_ending(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 96 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 96 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 96 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 96 */
among_var = find_among_b(z, a_6, 30); /* substring, line 96 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 96 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
@@ -480,23 +459,23 @@ static int r_case_ending(struct SN_env * z) {
if (!(eq_s_b(z, 2, s_9))) return 0;
break;
case 7:
- { int m = z->l - z->c; (void) m; /* try, line 111 */
- { int m = z->l - z->c; (void) m; /* and, line 113 */
- { int m = z->l - z->c; (void) m; /* or, line 112 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
+ { int m2 = z->l - z->c; (void)m2; /* and, line 113 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 112 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab2; /* call LONG, line 111 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m;
- if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m; goto lab0; }
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m_keep; goto lab0; }
}
lab1:
- z->c = z->l - m;
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) { z->c = z->l - m; goto lab0; }
- z->c = c; /* next, line 113 */
+ z->c = z->l - m2;
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) { z->c = z->l - m_keep; goto lab0; }
+ z->c = ret; /* next, line 113 */
}
}
z->bra = z->c; /* ], line 113 */
@@ -505,15 +484,14 @@ static int r_case_ending(struct SN_env * z) {
}
break;
case 8:
- if (!(in_grouping_b_U(z, g_V1, 97, 246))) return 0;
- if (!(out_grouping_b_U(z, g_V1, 97, 246))) return 0;
+ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
+ if (out_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
break;
case 9:
if (!(eq_s_b(z, 1, s_11))) return 0;
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 138 */
+ { int ret = slice_del(z); /* delete, line 138 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set ending_removed, line 139 */
@@ -522,50 +500,49 @@ static int r_case_ending(struct SN_env * z) {
static int r_other_endings(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 142 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 142 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 142 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 142 */
among_var = find_among_b(z, a_7, 14); /* substring, line 142 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 142 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* not, line 146 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 146 */
if (!(eq_s_b(z, 2, s_12))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 151 */
if (ret < 0) return ret;
}
return 1;
}
static int r_i_plural(struct SN_env * z) {
- { int m3; /* setlimit, line 154 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 154 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 154 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 154 */
- if (!(find_among_b(z, a_8, 2))) { z->lb = m3; return 0; } /* substring, line 154 */
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit; return 0; } /* substring, line 154 */
z->bra = z->c; /* ], line 154 */
- z->lb = m3;
+ z->lb = mlimit;
}
- { int ret;
- ret = slice_del(z); /* delete, line 158 */
+ { int ret = slice_del(z); /* delete, line 158 */
if (ret < 0) return ret;
}
return 1;
@@ -573,230 +550,213 @@ static int r_i_plural(struct SN_env * z) {
static int r_t_plural(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 161 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 161 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 161 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 162 */
- if (!(eq_s_b(z, 1, s_13))) { z->lb = m3; return 0; }
+ if (!(eq_s_b(z, 1, s_13))) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 162 */
{ int m_test = z->l - z->c; /* test, line 162 */
- if (!(in_grouping_b_U(z, g_V1, 97, 246))) { z->lb = m3; return 0; }
+ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit; return 0; }
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
- z->lb = m3;
+ z->lb = mlimit;
}
- { int m3; /* setlimit, line 165 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 165 */
+ int m2 = z->l - z->c; (void)m2;
if (z->c < z->I[1]) return 0;
z->c = z->I[1]; /* tomark, line 165 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m2;
z->ket = z->c; /* [, line 165 */
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit; return 0; }
among_var = find_among_b(z, a_9, 2); /* substring, line 165 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 165 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* not, line 167 */
+ { int m3 = z->l - z->c; (void)m3; /* not, line 167 */
if (!(eq_s_b(z, 2, s_14))) goto lab0;
return 0;
lab0:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
break;
}
- { int ret;
- ret = slice_del(z); /* delete, line 170 */
+ { int ret = slice_del(z); /* delete, line 170 */
if (ret < 0) return ret;
}
return 1;
}
static int r_tidy(struct SN_env * z) {
- { int m3; /* setlimit, line 173 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 173 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 173 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 174 */
- { int m = z->l - z->c; (void) m; /* and, line 174 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2; /* do, line 174 */
+ { int m3 = z->l - z->c; (void)m3; /* and, line 174 */
{ int ret = r_LONG(z);
if (ret == 0) goto lab0; /* call LONG, line 174 */
if (ret < 0) return ret;
}
- z->c = z->l - m;
+ z->c = z->l - m3;
z->ket = z->c; /* [, line 174 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 174 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 174 */
}
z->bra = z->c; /* ], line 174 */
- { int ret;
- ret = slice_del(z); /* delete, line 174 */
+ { int ret = slice_del(z); /* delete, line 174 */
if (ret < 0) return ret;
}
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 175 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 175 */
z->ket = z->c; /* [, line 175 */
- if (!(in_grouping_b_U(z, g_AEI, 97, 228))) goto lab1;
+ if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1;
z->bra = z->c; /* ], line 175 */
- if (!(out_grouping_b_U(z, g_V1, 97, 246))) goto lab1;
- { int ret;
- ret = slice_del(z); /* delete, line 175 */
+ if (out_grouping_b_U(z, g_V1, 97, 246, 0)) goto lab1;
+ { int ret = slice_del(z); /* delete, line 175 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 176 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 176 */
z->ket = z->c; /* [, line 176 */
if (!(eq_s_b(z, 1, s_15))) goto lab2;
z->bra = z->c; /* ], line 176 */
- { int m = z->l - z->c; (void) m; /* or, line 176 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 176 */
if (!(eq_s_b(z, 1, s_16))) goto lab4;
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m6;
if (!(eq_s_b(z, 1, s_17))) goto lab2;
}
lab3:
- { int ret;
- ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* do, line 177 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 177 */
z->ket = z->c; /* [, line 177 */
if (!(eq_s_b(z, 1, s_18))) goto lab5;
z->bra = z->c; /* ], line 177 */
if (!(eq_s_b(z, 1, s_19))) goto lab5;
- { int ret;
- ret = slice_del(z); /* delete, line 177 */
+ { int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
lab5:
- z->c = z->l - m;
- }
- z->lb = m3;
- }
- while(1) { /* goto, line 179 */
- int m = z->l - z->c; (void) m;
- if (!(out_grouping_b_U(z, g_V1, 97, 246))) goto lab6;
- z->c = z->l - m;
- break;
- lab6:
- z->c = z->l - m;
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* goto, line 179 */
+ z->c = z->l - m7;
}
+ z->lb = mlimit;
}
+ if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
z->ket = z->c; /* [, line 179 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 179 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 179 */
}
z->bra = z->c; /* ], line 179 */
z->S[0] = slice_to(z, z->S[0]); /* -> x, line 179 */
if (z->S[0] == 0) return -1; /* -> x, line 179 */
if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 179 */
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
return 1;
}
extern int finnish_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 185 */
+ { int c1 = z->c; /* do, line 185 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 185 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->B[0] = 0; /* unset ending_removed, line 186 */
z->lb = z->c; z->c = z->l; /* backwards, line 187 */
- { int m = z->l - z->c; (void) m; /* do, line 188 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 188 */
{ int ret = r_particle_etc(z);
if (ret == 0) goto lab1; /* call particle_etc, line 188 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 189 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 189 */
{ int ret = r_possessive(z);
if (ret == 0) goto lab2; /* call possessive, line 189 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 190 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 190 */
{ int ret = r_case_ending(z);
if (ret == 0) goto lab3; /* call case_ending, line 190 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 191 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 191 */
{ int ret = r_other_endings(z);
if (ret == 0) goto lab4; /* call other_endings, line 191 */
if (ret < 0) return ret;
}
lab4:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int m = z->l - z->c; (void) m; /* or, line 192 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 192 */
if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
- { int m = z->l - z->c; (void) m; /* do, line 192 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 192 */
{ int ret = r_i_plural(z);
if (ret == 0) goto lab7; /* call i_plural, line 192 */
if (ret < 0) return ret;
}
lab7:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
goto lab5;
lab6:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 192 */
+ z->c = z->l - m6;
+ { int m8 = z->l - z->c; (void)m8; /* do, line 192 */
{ int ret = r_t_plural(z);
if (ret == 0) goto lab8; /* call t_plural, line 192 */
if (ret < 0) return ret;
}
lab8:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
}
lab5:
- { int m = z->l - z->c; (void) m; /* do, line 193 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 193 */
{ int ret = r_tidy(z);
if (ret == 0) goto lab9; /* call tidy, line 193 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
z->c = z->lb;
return 1;
@@ -804,5 +764,5 @@ lab5:
extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 2, 1); }
-extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_french.c b/libstemmer_c/src_c/stem_UTF_8_french.c
index 1f95c7c..55b5fbf 100644
--- a/libstemmer_c/src_c/stem_UTF_8_french.c
+++ b/libstemmer_c/src_c/stem_UTF_8_french.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int french_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_un_accent(struct SN_env * z);
static int r_un_double(struct SN_env * z);
static int r_residual_suffix(struct SN_env * z);
@@ -16,454 +22,468 @@ static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * french_UTF_8_create_env(void);
extern void french_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 'I' };
-static symbol s_0_2[1] = { 'U' };
-static symbol s_0_3[1] = { 'Y' };
-static struct among a_0[4] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'c', 'o', 'l' };
+static const symbol s_0_1[3] = { 'p', 'a', 'r' };
+static const symbol s_0_2[3] = { 't', 'a', 'p' };
+
+static const struct among a_0[3] =
{
-/* 0 */ { 0, 0, -1, 4, 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}
+/* 0 */ { 3, s_0_0, -1, -1, 0},
+/* 1 */ { 3, s_0_1, -1, -1, 0},
+/* 2 */ { 3, s_0_2, -1, -1, 0}
};
-static symbol s_1_0[3] = { 'i', 'q', 'U' };
-static symbol s_1_1[3] = { 'a', 'b', 'l' };
-static symbol s_1_2[4] = { 'I', 0xC3, 0xA8, 'r' };
-static symbol s_1_3[4] = { 'i', 0xC3, 0xA8, 'r' };
-static symbol s_1_4[3] = { 'e', 'u', 's' };
-static symbol s_1_5[2] = { 'i', 'v' };
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
+static const symbol s_1_3[1] = { 'Y' };
-static struct among a_1[6] =
+static const struct among a_1[4] =
{
-/* 0 */ { 3, s_1_0, -1, 3, 0},
-/* 1 */ { 3, s_1_1, -1, 3, 0},
-/* 2 */ { 4, s_1_2, -1, 4, 0},
-/* 3 */ { 4, s_1_3, -1, 4, 0},
-/* 4 */ { 3, s_1_4, -1, 2, 0},
-/* 5 */ { 2, s_1_5, -1, 1, 0}
+/* 0 */ { 0, 0, -1, 4, 0},
+/* 1 */ { 1, s_1_1, 0, 1, 0},
+/* 2 */ { 1, s_1_2, 0, 2, 0},
+/* 3 */ { 1, s_1_3, 0, 3, 0}
};
-static symbol s_2_0[2] = { 'i', 'c' };
-static symbol s_2_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_2_2[2] = { 'i', 'v' };
+static const symbol s_2_0[3] = { 'i', 'q', 'U' };
+static const symbol s_2_1[3] = { 'a', 'b', 'l' };
+static const symbol s_2_2[4] = { 'I', 0xC3, 0xA8, 'r' };
+static const symbol s_2_3[4] = { 'i', 0xC3, 0xA8, 'r' };
+static const symbol s_2_4[3] = { 'e', 'u', 's' };
+static const symbol s_2_5[2] = { 'i', 'v' };
-static struct among a_2[3] =
+static const struct among a_2[6] =
{
-/* 0 */ { 2, s_2_0, -1, 2, 0},
-/* 1 */ { 4, s_2_1, -1, 1, 0},
-/* 2 */ { 2, s_2_2, -1, 3, 0}
+/* 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}
};
-static symbol s_3_0[4] = { 'i', 'q', 'U', 'e' };
-static symbol s_3_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
-static symbol s_3_2[4] = { 'a', 'n', 'c', 'e' };
-static symbol s_3_3[4] = { 'e', 'n', 'c', 'e' };
-static symbol s_3_4[5] = { 'l', 'o', 'g', 'i', 'e' };
-static symbol s_3_5[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_3_6[4] = { 'i', 's', 'm', 'e' };
-static symbol s_3_7[4] = { 'e', 'u', 's', 'e' };
-static symbol s_3_8[4] = { 'i', 's', 't', 'e' };
-static symbol s_3_9[3] = { 'i', 'v', 'e' };
-static symbol s_3_10[2] = { 'i', 'f' };
-static symbol s_3_11[5] = { 'u', 's', 'i', 'o', 'n' };
-static symbol s_3_12[5] = { 'a', 't', 'i', 'o', 'n' };
-static symbol s_3_13[5] = { 'u', 't', 'i', 'o', 'n' };
-static symbol s_3_14[5] = { 'a', 't', 'e', 'u', 'r' };
-static symbol s_3_15[5] = { 'i', 'q', 'U', 'e', 's' };
-static symbol s_3_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
-static symbol s_3_17[5] = { 'a', 'n', 'c', 'e', 's' };
-static symbol s_3_18[5] = { 'e', 'n', 'c', 'e', 's' };
-static symbol s_3_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
-static symbol s_3_20[5] = { 'a', 'b', 'l', 'e', 's' };
-static symbol s_3_21[5] = { 'i', 's', 'm', 'e', 's' };
-static symbol s_3_22[5] = { 'e', 'u', 's', 'e', 's' };
-static symbol s_3_23[5] = { 'i', 's', 't', 'e', 's' };
-static symbol s_3_24[4] = { 'i', 'v', 'e', 's' };
-static symbol s_3_25[3] = { 'i', 'f', 's' };
-static symbol s_3_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
-static symbol s_3_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
-static symbol s_3_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
-static symbol s_3_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
-static symbol s_3_30[5] = { 'm', 'e', 'n', 't', 's' };
-static symbol s_3_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
-static symbol s_3_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
-static symbol s_3_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
-static symbol s_3_34[4] = { 'm', 'e', 'n', 't' };
-static symbol s_3_35[5] = { 'e', 'm', 'e', 'n', 't' };
-static symbol s_3_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
-static symbol s_3_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
-static symbol s_3_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
-static symbol s_3_39[3] = { 'a', 'u', 'x' };
-static symbol s_3_40[4] = { 'e', 'a', 'u', 'x' };
-static symbol s_3_41[3] = { 'e', 'u', 'x' };
-static symbol s_3_42[4] = { 'i', 't', 0xC3, 0xA9 };
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_2[2] = { 'i', 'v' };
-static struct among a_3[43] =
+static const struct among a_3[3] =
{
-/* 0 */ { 4, s_3_0, -1, 1, 0},
-/* 1 */ { 6, s_3_1, -1, 2, 0},
-/* 2 */ { 4, s_3_2, -1, 1, 0},
-/* 3 */ { 4, s_3_3, -1, 5, 0},
-/* 4 */ { 5, s_3_4, -1, 3, 0},
-/* 5 */ { 4, s_3_5, -1, 1, 0},
-/* 6 */ { 4, s_3_6, -1, 1, 0},
-/* 7 */ { 4, s_3_7, -1, 11, 0},
-/* 8 */ { 4, s_3_8, -1, 1, 0},
-/* 9 */ { 3, s_3_9, -1, 8, 0},
-/* 10 */ { 2, s_3_10, -1, 8, 0},
-/* 11 */ { 5, s_3_11, -1, 4, 0},
-/* 12 */ { 5, s_3_12, -1, 2, 0},
-/* 13 */ { 5, s_3_13, -1, 4, 0},
-/* 14 */ { 5, s_3_14, -1, 2, 0},
-/* 15 */ { 5, s_3_15, -1, 1, 0},
-/* 16 */ { 7, s_3_16, -1, 2, 0},
-/* 17 */ { 5, s_3_17, -1, 1, 0},
-/* 18 */ { 5, s_3_18, -1, 5, 0},
-/* 19 */ { 6, s_3_19, -1, 3, 0},
-/* 20 */ { 5, s_3_20, -1, 1, 0},
-/* 21 */ { 5, s_3_21, -1, 1, 0},
-/* 22 */ { 5, s_3_22, -1, 11, 0},
-/* 23 */ { 5, s_3_23, -1, 1, 0},
-/* 24 */ { 4, s_3_24, -1, 8, 0},
-/* 25 */ { 3, s_3_25, -1, 8, 0},
-/* 26 */ { 6, s_3_26, -1, 4, 0},
-/* 27 */ { 6, s_3_27, -1, 2, 0},
-/* 28 */ { 6, s_3_28, -1, 4, 0},
-/* 29 */ { 6, s_3_29, -1, 2, 0},
-/* 30 */ { 5, s_3_30, -1, 15, 0},
-/* 31 */ { 6, s_3_31, 30, 6, 0},
-/* 32 */ { 9, s_3_32, 31, 12, 0},
-/* 33 */ { 5, s_3_33, -1, 7, 0},
-/* 34 */ { 4, s_3_34, -1, 15, 0},
-/* 35 */ { 5, s_3_35, 34, 6, 0},
-/* 36 */ { 8, s_3_36, 35, 12, 0},
-/* 37 */ { 6, s_3_37, 34, 13, 0},
-/* 38 */ { 6, s_3_38, 34, 14, 0},
-/* 39 */ { 3, s_3_39, -1, 10, 0},
-/* 40 */ { 4, s_3_40, 39, 9, 0},
-/* 41 */ { 3, s_3_41, -1, 1, 0},
-/* 42 */ { 4, s_3_42, -1, 7, 0}
+/* 0 */ { 2, s_3_0, -1, 2, 0},
+/* 1 */ { 4, s_3_1, -1, 1, 0},
+/* 2 */ { 2, s_3_2, -1, 3, 0}
};
-static symbol s_4_0[3] = { 'i', 'r', 'a' };
-static symbol s_4_1[2] = { 'i', 'e' };
-static symbol s_4_2[4] = { 'i', 's', 's', 'e' };
-static symbol s_4_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
-static symbol s_4_4[1] = { 'i' };
-static symbol s_4_5[4] = { 'i', 'r', 'a', 'i' };
-static symbol s_4_6[2] = { 'i', 'r' };
-static symbol s_4_7[4] = { 'i', 'r', 'a', 's' };
-static symbol s_4_8[3] = { 'i', 'e', 's' };
-static symbol s_4_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
-static symbol s_4_10[5] = { 'i', 's', 's', 'e', 's' };
-static symbol s_4_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
-static symbol s_4_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
-static symbol s_4_13[2] = { 'i', 's' };
-static symbol s_4_14[5] = { 'i', 'r', 'a', 'i', 's' };
-static symbol s_4_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
-static symbol s_4_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
-static symbol s_4_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
-static symbol s_4_18[5] = { 'i', 'r', 'o', 'n', 's' };
-static symbol s_4_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
-static symbol s_4_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
-static symbol s_4_21[2] = { 'i', 't' };
-static symbol s_4_22[5] = { 'i', 'r', 'a', 'i', 't' };
-static symbol s_4_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
-static symbol s_4_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
-static symbol s_4_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
-static symbol s_4_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
-static symbol s_4_27[5] = { 'i', 'r', 'e', 'n', 't' };
-static symbol s_4_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
-static symbol s_4_29[5] = { 'i', 'r', 'o', 'n', 't' };
-static symbol s_4_30[3] = { 0xC3, 0xAE, 't' };
-static symbol s_4_31[5] = { 'i', 'r', 'i', 'e', 'z' };
-static symbol s_4_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
-static symbol s_4_33[4] = { 'i', 'r', 'e', 'z' };
-static symbol s_4_34[5] = { 'i', 's', 's', 'e', 'z' };
+static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
+static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
+static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
+static const symbol s_4_9[3] = { 'i', 'v', 'e' };
+static const symbol s_4_10[2] = { 'i', 'f' };
+static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
+static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
+static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
+static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
+static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
+static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
+static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
+static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
+static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
+static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
+static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
+static const symbol s_4_25[3] = { 'i', 'f', 's' };
+static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
+static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
+static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
+static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_39[3] = { 'a', 'u', 'x' };
+static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
+static const symbol s_4_41[3] = { 'e', 'u', 'x' };
+static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 };
-static struct among a_4[35] =
+static const struct among a_4[43] =
{
-/* 0 */ { 3, s_4_0, -1, 1, 0},
-/* 1 */ { 2, s_4_1, -1, 1, 0},
+/* 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 */ { 7, s_4_3, -1, 1, 0},
-/* 4 */ { 1, s_4_4, -1, 1, 0},
-/* 5 */ { 4, s_4_5, 4, 1, 0},
-/* 6 */ { 2, s_4_6, -1, 1, 0},
-/* 7 */ { 4, s_4_7, -1, 1, 0},
-/* 8 */ { 3, s_4_8, -1, 1, 0},
-/* 9 */ { 5, s_4_9, -1, 1, 0},
-/* 10 */ { 5, s_4_10, -1, 1, 0},
-/* 11 */ { 8, s_4_11, -1, 1, 0},
-/* 12 */ { 5, s_4_12, -1, 1, 0},
-/* 13 */ { 2, s_4_13, -1, 1, 0},
-/* 14 */ { 5, s_4_14, 13, 1, 0},
-/* 15 */ { 6, s_4_15, 13, 1, 0},
-/* 16 */ { 6, s_4_16, -1, 1, 0},
-/* 17 */ { 7, s_4_17, -1, 1, 0},
-/* 18 */ { 5, s_4_18, -1, 1, 0},
-/* 19 */ { 6, s_4_19, -1, 1, 0},
-/* 20 */ { 7, s_4_20, -1, 1, 0},
-/* 21 */ { 2, s_4_21, -1, 1, 0},
-/* 22 */ { 5, s_4_22, 21, 1, 0},
-/* 23 */ { 6, s_4_23, 21, 1, 0},
-/* 24 */ { 6, s_4_24, -1, 1, 0},
-/* 25 */ { 7, s_4_25, -1, 1, 0},
-/* 26 */ { 8, s_4_26, -1, 1, 0},
-/* 27 */ { 5, s_4_27, -1, 1, 0},
-/* 28 */ { 6, s_4_28, -1, 1, 0},
-/* 29 */ { 5, s_4_29, -1, 1, 0},
-/* 30 */ { 3, s_4_30, -1, 1, 0},
-/* 31 */ { 5, s_4_31, -1, 1, 0},
-/* 32 */ { 6, s_4_32, -1, 1, 0},
-/* 33 */ { 4, s_4_33, -1, 1, 0},
-/* 34 */ { 5, s_4_34, -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}
};
-static symbol s_5_0[1] = { 'a' };
-static symbol s_5_1[3] = { 'e', 'r', 'a' };
-static symbol s_5_2[4] = { 'a', 's', 's', 'e' };
-static symbol s_5_3[4] = { 'a', 'n', 't', 'e' };
-static symbol s_5_4[3] = { 0xC3, 0xA9, 'e' };
-static symbol s_5_5[2] = { 'a', 'i' };
-static symbol s_5_6[4] = { 'e', 'r', 'a', 'i' };
-static symbol s_5_7[2] = { 'e', 'r' };
-static symbol s_5_8[2] = { 'a', 's' };
-static symbol s_5_9[4] = { 'e', 'r', 'a', 's' };
-static symbol s_5_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
-static symbol s_5_11[5] = { 'a', 's', 's', 'e', 's' };
-static symbol s_5_12[5] = { 'a', 'n', 't', 'e', 's' };
-static symbol s_5_13[5] = { 0xC3, 0xA2, 't', 'e', 's' };
-static symbol s_5_14[4] = { 0xC3, 0xA9, 'e', 's' };
-static symbol s_5_15[3] = { 'a', 'i', 's' };
-static symbol s_5_16[5] = { 'e', 'r', 'a', 'i', 's' };
-static symbol s_5_17[4] = { 'i', 'o', 'n', 's' };
-static symbol s_5_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
-static symbol s_5_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
-static symbol s_5_20[5] = { 'e', 'r', 'o', 'n', 's' };
-static symbol s_5_21[4] = { 'a', 'n', 't', 's' };
-static symbol s_5_22[3] = { 0xC3, 0xA9, 's' };
-static symbol s_5_23[3] = { 'a', 'i', 't' };
-static symbol s_5_24[5] = { 'e', 'r', 'a', 'i', 't' };
-static symbol s_5_25[3] = { 'a', 'n', 't' };
-static symbol s_5_26[5] = { 'a', 'I', 'e', 'n', 't' };
-static symbol s_5_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
-static symbol s_5_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
-static symbol s_5_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
-static symbol s_5_30[5] = { 'e', 'r', 'o', 'n', 't' };
-static symbol s_5_31[3] = { 0xC3, 0xA2, 't' };
-static symbol s_5_32[2] = { 'e', 'z' };
-static symbol s_5_33[3] = { 'i', 'e', 'z' };
-static symbol s_5_34[5] = { 'e', 'r', 'i', 'e', 'z' };
-static symbol s_5_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
-static symbol s_5_36[4] = { 'e', 'r', 'e', 'z' };
-static symbol s_5_37[2] = { 0xC3, 0xA9 };
+static const symbol s_5_0[3] = { 'i', 'r', 'a' };
+static const symbol s_5_1[2] = { 'i', 'e' };
+static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
+static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
+static const symbol s_5_4[1] = { 'i' };
+static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_5_6[2] = { 'i', 'r' };
+static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_8[3] = { 'i', 'e', 's' };
+static const symbol s_5_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
+static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
+static const symbol s_5_13[2] = { 'i', 's' };
+static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
+static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
+static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
+static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
+static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
+static const symbol s_5_21[2] = { 'i', 't' };
+static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
+static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
+static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
+static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
+static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
+static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
+static const symbol s_5_30[3] = { 0xC3, 0xAE, 't' };
+static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
+static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
+static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
+static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
-static struct among a_5[38] =
+static const struct among a_5[35] =
{
-/* 0 */ { 1, s_5_0, -1, 3, 0},
-/* 1 */ { 3, s_5_1, 0, 2, 0},
-/* 2 */ { 4, s_5_2, -1, 3, 0},
-/* 3 */ { 4, s_5_3, -1, 3, 0},
-/* 4 */ { 3, s_5_4, -1, 2, 0},
-/* 5 */ { 2, s_5_5, -1, 3, 0},
-/* 6 */ { 4, s_5_6, 5, 2, 0},
-/* 7 */ { 2, s_5_7, -1, 2, 0},
-/* 8 */ { 2, s_5_8, -1, 3, 0},
-/* 9 */ { 4, s_5_9, 8, 2, 0},
-/* 10 */ { 5, s_5_10, -1, 3, 0},
-/* 11 */ { 5, s_5_11, -1, 3, 0},
-/* 12 */ { 5, s_5_12, -1, 3, 0},
-/* 13 */ { 5, s_5_13, -1, 3, 0},
-/* 14 */ { 4, s_5_14, -1, 2, 0},
-/* 15 */ { 3, s_5_15, -1, 3, 0},
-/* 16 */ { 5, s_5_16, 15, 2, 0},
-/* 17 */ { 4, s_5_17, -1, 1, 0},
-/* 18 */ { 6, s_5_18, 17, 2, 0},
-/* 19 */ { 7, s_5_19, 17, 3, 0},
-/* 20 */ { 5, s_5_20, -1, 2, 0},
-/* 21 */ { 4, s_5_21, -1, 3, 0},
-/* 22 */ { 3, s_5_22, -1, 2, 0},
-/* 23 */ { 3, s_5_23, -1, 3, 0},
-/* 24 */ { 5, s_5_24, 23, 2, 0},
-/* 25 */ { 3, s_5_25, -1, 3, 0},
-/* 26 */ { 5, s_5_26, -1, 3, 0},
-/* 27 */ { 7, s_5_27, 26, 2, 0},
-/* 28 */ { 6, s_5_28, -1, 2, 0},
-/* 29 */ { 6, s_5_29, -1, 3, 0},
-/* 30 */ { 5, s_5_30, -1, 2, 0},
-/* 31 */ { 3, s_5_31, -1, 3, 0},
-/* 32 */ { 2, s_5_32, -1, 2, 0},
-/* 33 */ { 3, s_5_33, 32, 2, 0},
-/* 34 */ { 5, s_5_34, 33, 2, 0},
-/* 35 */ { 6, s_5_35, 33, 3, 0},
-/* 36 */ { 4, s_5_36, 32, 2, 0},
-/* 37 */ { 2, s_5_37, -1, 2, 0}
+/* 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}
};
-static symbol s_6_0[1] = { 'e' };
-static symbol s_6_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
-static symbol s_6_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
-static symbol s_6_3[3] = { 'i', 'o', 'n' };
-static symbol s_6_4[3] = { 'I', 'e', 'r' };
-static symbol s_6_5[3] = { 'i', 'e', 'r' };
-static symbol s_6_6[2] = { 0xC3, 0xAB };
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'e', 'r', 'a' };
+static const symbol s_6_2[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_4[3] = { 0xC3, 0xA9, 'e' };
+static const symbol s_6_5[2] = { 'a', 'i' };
+static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_6_7[2] = { 'e', 'r' };
+static const symbol s_6_8[2] = { 'a', 's' };
+static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
+static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_13[5] = { 0xC3, 0xA2, 't', 'e', 's' };
+static const symbol s_6_14[4] = { 0xC3, 0xA9, 'e', 's' };
+static const symbol s_6_15[3] = { 'a', 'i', 's' };
+static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' };
+static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' };
+static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' };
+static const symbol s_6_21[4] = { 'a', 'n', 't', 's' };
+static const symbol s_6_22[3] = { 0xC3, 0xA9, 's' };
+static const symbol s_6_23[3] = { 'a', 'i', 't' };
+static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' };
+static const symbol s_6_25[3] = { 'a', 'n', 't' };
+static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
+static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
+static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' };
+static const symbol s_6_31[3] = { 0xC3, 0xA2, 't' };
+static const symbol s_6_32[2] = { 'e', 'z' };
+static const symbol s_6_33[3] = { 'i', 'e', 'z' };
+static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' };
+static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
+static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' };
+static const symbol s_6_37[2] = { 0xC3, 0xA9 };
-static struct among a_6[7] =
+static const struct among a_6[38] =
{
/* 0 */ { 1, s_6_0, -1, 3, 0},
-/* 1 */ { 5, s_6_1, 0, 2, 0},
-/* 2 */ { 5, s_6_2, 0, 2, 0},
-/* 3 */ { 3, s_6_3, -1, 1, 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 */ { 3, s_6_5, -1, 2, 0},
-/* 6 */ { 2, s_6_6, -1, 4, 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}
};
-static symbol s_7_0[3] = { 'e', 'l', 'l' };
-static symbol s_7_1[4] = { 'e', 'i', 'l', 'l' };
-static symbol s_7_2[3] = { 'e', 'n', 'n' };
-static symbol s_7_3[3] = { 'o', 'n', 'n' };
-static symbol s_7_4[3] = { 'e', 't', 't' };
+static const symbol s_7_0[1] = { 'e' };
+static const symbol s_7_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
+static const symbol s_7_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
+static const symbol s_7_3[3] = { 'i', 'o', 'n' };
+static const symbol s_7_4[3] = { 'I', 'e', 'r' };
+static const symbol s_7_5[3] = { 'i', 'e', 'r' };
+static const symbol s_7_6[2] = { 0xC3, 0xAB };
-static struct among a_7[5] =
+static const struct among a_7[7] =
{
-/* 0 */ { 3, 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}
+/* 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},
+/* 6 */ { 2, s_7_6, -1, 4, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
+static const symbol s_8_0[3] = { 'e', 'l', 'l' };
+static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' };
+static const symbol s_8_2[3] = { 'e', 'n', 'n' };
+static const symbol s_8_3[3] = { 'o', 'n', 'n' };
+static const symbol s_8_4[3] = { 'e', 't', 't' };
-static unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+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}
+};
+
+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 };
-static symbol s_0[] = { 'u' };
-static symbol s_1[] = { 'U' };
-static symbol s_2[] = { 'i' };
-static symbol s_3[] = { 'I' };
-static symbol s_4[] = { 'y' };
-static symbol s_5[] = { 'Y' };
-static symbol s_6[] = { 'y' };
-static symbol s_7[] = { 'Y' };
-static symbol s_8[] = { 'q' };
-static symbol s_9[] = { 'u' };
-static symbol s_10[] = { 'U' };
-static symbol s_11[] = { 'i' };
-static symbol s_12[] = { 'u' };
-static symbol s_13[] = { 'y' };
-static symbol s_14[] = { 'i', 'c' };
-static symbol s_15[] = { 'i', 'q', 'U' };
-static symbol s_16[] = { 'l', 'o', 'g' };
-static symbol s_17[] = { 'u' };
-static symbol s_18[] = { 'e', 'n', 't' };
-static symbol s_19[] = { 'a', 't' };
-static symbol s_20[] = { 'e', 'u', 'x' };
-static symbol s_21[] = { 'i' };
-static symbol s_22[] = { 'a', 'b', 'l' };
-static symbol s_23[] = { 'i', 'q', 'U' };
-static symbol s_24[] = { 'a', 't' };
-static symbol s_25[] = { 'i', 'c' };
-static symbol s_26[] = { 'i', 'q', 'U' };
-static symbol s_27[] = { 'e', 'a', 'u' };
-static symbol s_28[] = { 'a', 'l' };
-static symbol s_29[] = { 'e', 'u', 'x' };
-static symbol s_30[] = { 'a', 'n', 't' };
-static symbol s_31[] = { 'e', 'n', 't' };
-static symbol s_32[] = { 'e' };
-static symbol s_33[] = { 's' };
-static symbol s_34[] = { 's' };
-static symbol s_35[] = { 't' };
-static symbol s_36[] = { 'i' };
-static symbol s_37[] = { 'g', 'u' };
-static symbol s_38[] = { 0xC3, 0xA9 };
-static symbol s_39[] = { 0xC3, 0xA8 };
-static symbol s_40[] = { 'e' };
-static symbol s_41[] = { 'Y' };
-static symbol s_42[] = { 'i' };
-static symbol s_43[] = { 0xC3, 0xA7 };
-static symbol s_44[] = { 'c' };
+static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'u' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'I' };
+static const symbol s_4[] = { 'y' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'y' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'q' };
+static const symbol s_9[] = { 'u' };
+static const symbol s_10[] = { 'U' };
+static const symbol s_11[] = { 'i' };
+static const symbol s_12[] = { 'u' };
+static const symbol s_13[] = { 'y' };
+static const symbol s_14[] = { 'i', 'c' };
+static const symbol s_15[] = { 'i', 'q', 'U' };
+static const symbol s_16[] = { 'l', 'o', 'g' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'e', 'n', 't' };
+static const symbol s_19[] = { 'a', 't' };
+static const symbol s_20[] = { 'e', 'u', 'x' };
+static const symbol s_21[] = { 'i' };
+static const symbol s_22[] = { 'a', 'b', 'l' };
+static const symbol s_23[] = { 'i', 'q', 'U' };
+static const symbol s_24[] = { 'a', 't' };
+static const symbol s_25[] = { 'i', 'c' };
+static const symbol s_26[] = { 'i', 'q', 'U' };
+static const symbol s_27[] = { 'e', 'a', 'u' };
+static const symbol s_28[] = { 'a', 'l' };
+static const symbol s_29[] = { 'e', 'u', 'x' };
+static const symbol s_30[] = { 'a', 'n', 't' };
+static const symbol s_31[] = { 'e', 'n', 't' };
+static const symbol s_32[] = { 'e' };
+static const symbol s_33[] = { 's' };
+static const symbol s_34[] = { 's' };
+static const symbol s_35[] = { 't' };
+static const symbol s_36[] = { 'i' };
+static const symbol s_37[] = { 'g', 'u' };
+static const symbol s_38[] = { 0xC3, 0xA9 };
+static const symbol s_39[] = { 0xC3, 0xA8 };
+static const symbol s_40[] = { 'e' };
+static const symbol s_41[] = { 'Y' };
+static const symbol s_42[] = { 'i' };
+static const symbol s_43[] = { 0xC3, 0xA7 };
+static const symbol s_44[] = { 'c' };
static int r_prelude(struct SN_env * z) {
while(1) { /* repeat, line 38 */
- int c = z->c;
+ int c1 = z->c;
while(1) { /* goto, line 38 */
- int c = z->c;
- { int c = z->c; /* or, line 44 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab3;
+ int c2 = z->c;
+ { int c3 = z->c; /* or, line 44 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3;
z->bra = z->c; /* [, line 40 */
- { int c = z->c; /* or, line 40 */
+ { int c4 = z->c; /* or, line 40 */
if (!(eq_s(z, 1, s_0))) goto lab5;
z->ket = z->c; /* ], line 40 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab5;
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_2))) goto lab6;
z->ket = z->c; /* ], line 41 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab6;
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
if (ret < 0) return ret;
}
goto lab4;
lab6:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_4))) goto lab3;
z->ket = z->c; /* ], line 42 */
- { int ret;
- ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
if (ret < 0) return ret;
}
}
lab4:
goto lab2;
lab3:
- z->c = c;
+ z->c = c3;
z->bra = z->c; /* [, line 45 */
if (!(eq_s(z, 1, s_6))) goto lab7;
z->ket = z->c; /* ], line 45 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab7;
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab7;
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
if (ret < 0) return ret;
}
goto lab2;
lab7:
- z->c = c;
+ z->c = c3;
if (!(eq_s(z, 1, s_8))) goto lab1;
z->bra = z->c; /* [, line 47 */
if (!(eq_s(z, 1, s_9))) goto lab1;
z->ket = z->c; /* ], line 47 */
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
if (ret < 0) return ret;
}
}
lab2:
- z->c = c;
+ z->c = c2;
break;
lab1:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* goto, line 38 */
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* goto, line 38 */
}
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -473,119 +493,102 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 56 */
- { int c = z->c; /* or, line 57 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab2;
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab2;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab2;
- z->c = c; /* next, line 57 */
+ { int c1 = z->c; /* do, line 56 */
+ { int c2 = z->c; /* or, line 58 */
+ 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, 0, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret; /* next, line 57 */
}
goto lab1;
lab2:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 57 */
+ 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;
+ if (!(find_among(z, a_0, 3))) goto lab3; /* among, line 59 */
+ goto lab1;
+ lab3:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 66 */
}
- while(1) { /* gopast, line 57 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 57 */
- }
+ { /* gopast */ /* grouping v, line 66 */
+ 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 58 */
+ z->I[0] = z->c; /* setmark pV, line 67 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 60 */
- while(1) { /* gopast, line 61 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab5;
- break;
- lab5:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 61 */
- }
+ { int c3 = z->c; /* do, line 69 */
+ { /* gopast */ /* grouping v, line 70 */
+ int ret = out_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 61 */
- if (!(out_grouping_U(z, g_v, 97, 251))) goto lab6;
- break;
- lab6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 61 */
- }
+ { /* gopast */ /* non v, line 70 */
+ 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 61 */
- while(1) { /* gopast, line 62 */
- if (!(in_grouping_U(z, g_v, 97, 251))) goto lab7;
- break;
- lab7:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 62 */
- }
+ z->I[1] = z->c; /* setmark p1, line 70 */
+ { /* gopast */ /* grouping v, line 71 */
+ int ret = out_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 62 */
- if (!(out_grouping_U(z, g_v, 97, 251))) goto lab8;
- break;
- lab8:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 62 */
- }
+ { /* gopast */ /* non v, line 71 */
+ 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 62 */
+ z->I[2] = z->c; /* setmark p2, line 71 */
lab4:
- z->c = c;
+ z->c = c3;
}
return 1;
}
static int r_postlude(struct SN_env * z) {
int among_var;
- while(1) { /* repeat, line 66 */
- int c = z->c;
- z->bra = z->c; /* [, line 68 */
- among_var = find_among(z, a_0, 4); /* substring, line 68 */
+ while(1) { /* repeat, line 75 */
+ int c1 = z->c;
+ z->bra = z->c; /* [, line 77 */
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else
+ among_var = find_among(z, a_1, 4); /* substring, line 77 */
if (!(among_var)) goto lab0;
- z->ket = z->c; /* ], line 68 */
+ z->ket = z->c; /* ], line 77 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_11); /* <-, line 69 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_12); /* <-, line 70 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 71 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 80 */
if (ret < 0) return ret;
}
break;
case 4:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 72 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 81 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -608,49 +611,45 @@ static int r_R2(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) {
int among_var;
- z->ket = z->c; /* [, line 83 */
- among_var = find_among_b(z, a_3, 43); /* substring, line 83 */
+ z->ket = z->c; /* [, line 92 */
+ among_var = find_among_b(z, a_4, 43); /* substring, line 92 */
if (!(among_var)) return 0;
- z->bra = z->c; /* ], line 83 */
+ z->bra = z->c; /* ], line 92 */
switch(among_var) {
case 0: return 0;
case 1:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 87 */
+ if (ret == 0) return 0; /* call R2, line 96 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 87 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
break;
case 2:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 90 */
+ if (ret == 0) return 0; /* call R2, line 99 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 90 */
+ { int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 91 */
- z->ket = z->c; /* [, line 91 */
- if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 91 */
- { int m = z->l - z->c; (void) m; /* or, line 91 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 100 */
+ z->ket = z->c; /* [, line 100 */
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 100 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 100 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab2; /* call R2, line 91 */
+ if (ret == 0) goto lab2; /* call R2, line 100 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 91 */
+ { int ret = slice_del(z); /* delete, line 100 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_15); /* <-, line 91 */
+ z->c = z->l - m1;
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 100 */
if (ret < 0) return ret;
}
}
@@ -661,90 +660,82 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 3:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 95 */
+ if (ret == 0) return 0; /* call R2, line 104 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_16); /* <-, line 95 */
+ { int ret = slice_from_s(z, 3, s_16); /* <-, line 104 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 98 */
+ if (ret == 0) return 0; /* call R2, line 107 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_17); /* <-, line 98 */
+ { int ret = slice_from_s(z, 1, s_17); /* <-, line 107 */
if (ret < 0) return ret;
}
break;
case 5:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 101 */
+ if (ret == 0) return 0; /* call R2, line 110 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_18); /* <-, line 101 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 110 */
if (ret < 0) return ret;
}
break;
case 6:
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 105 */
+ if (ret == 0) return 0; /* call RV, line 114 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 105 */
+ { int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 106 */
- z->ket = z->c; /* [, line 107 */
- among_var = find_among_b(z, a_1, 6); /* substring, line 107 */
- if (!(among_var)) { z->c = z->l - m; goto lab3; }
- z->bra = z->c; /* ], line 107 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 115 */
+ z->ket = z->c; /* [, line 116 */
+ among_var = find_among_b(z, a_2, 6); /* substring, line 116 */
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
+ z->bra = z->c; /* ], line 116 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab3; }
+ case 0: { z->c = z->l - m_keep; goto lab3; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 108 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 108 */
+ { int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
- z->ket = z->c; /* [, line 108 */
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m; goto lab3; }
- z->bra = z->c; /* ], line 108 */
+ z->ket = z->c; /* [, line 117 */
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
+ z->bra = z->c; /* ], line 117 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 108 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 108 */
+ { int ret = slice_del(z); /* delete, line 117 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 109 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 118 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab5; /* call R2, line 109 */
+ if (ret == 0) goto lab5; /* call R2, line 118 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 109 */
+ { int ret = slice_del(z); /* delete, line 118 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m2;
{ int ret = r_R1(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R1, line 109 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R1, line 118 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_20); /* <-, line 109 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
if (ret < 0) return ret;
}
}
@@ -752,21 +743,19 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 3:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 111 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 120 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 111 */
+ { int ret = slice_del(z); /* delete, line 120 */
if (ret < 0) return ret;
}
break;
case 4:
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call RV, line 113 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call RV, line 122 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_21); /* <-, line 113 */
+ { int ret = slice_from_s(z, 1, s_21); /* <-, line 122 */
if (ret < 0) return ret;
}
break;
@@ -777,55 +766,51 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 7:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 120 */
+ if (ret == 0) return 0; /* call R2, line 129 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 120 */
+ { int ret = slice_del(z); /* delete, line 129 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 121 */
- z->ket = z->c; /* [, line 122 */
- among_var = find_among_b(z, a_2, 3); /* substring, line 122 */
- if (!(among_var)) { z->c = z->l - m; goto lab6; }
- z->bra = z->c; /* ], line 122 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 130 */
+ z->ket = z->c; /* [, line 131 */
+ 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 - m_keep; goto lab6; }
+ among_var = find_among_b(z, a_3, 3); /* substring, line 131 */
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab6; }
+ z->bra = z->c; /* ], line 131 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab6; }
+ case 0: { z->c = z->l - m_keep; goto lab6; }
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 123 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 132 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab8; /* call R2, line 123 */
+ if (ret == 0) goto lab8; /* call R2, line 132 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 123 */
+ { int ret = slice_del(z); /* delete, line 132 */
if (ret < 0) return ret;
}
goto lab7;
lab8:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_22); /* <-, line 123 */
+ z->c = z->l - m3;
+ { int ret = slice_from_s(z, 3, s_22); /* <-, line 132 */
if (ret < 0) return ret;
}
}
lab7:
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 124 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 133 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab10; /* call R2, line 124 */
+ if (ret == 0) goto lab10; /* call R2, line 133 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 124 */
+ { int ret = slice_del(z); /* delete, line 133 */
if (ret < 0) return ret;
}
goto lab9;
lab10:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_23); /* <-, line 124 */
+ z->c = z->l - m4;
+ { int ret = slice_from_s(z, 3, s_23); /* <-, line 133 */
if (ret < 0) return ret;
}
}
@@ -833,11 +818,10 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 3:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab6; } /* call R2, line 125 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R2, line 134 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 125 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
break;
@@ -848,42 +832,38 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 8:
{ int ret = r_R2(z);
- if (ret == 0) return 0; /* call R2, line 132 */
+ if (ret == 0) return 0; /* call R2, line 141 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 132 */
+ { int ret = slice_del(z); /* delete, line 141 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 133 */
- z->ket = z->c; /* [, line 133 */
- if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m; goto lab11; }
- z->bra = z->c; /* ], line 133 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 142 */
+ z->ket = z->c; /* [, line 142 */
+ if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m_keep; goto lab11; }
+ z->bra = z->c; /* ], line 142 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab11; } /* call R2, line 133 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab11; } /* call R2, line 142 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
- z->ket = z->c; /* [, line 133 */
- if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m; goto lab11; }
- z->bra = z->c; /* ], line 133 */
- { int m = z->l - z->c; (void) m; /* or, line 133 */
+ z->ket = z->c; /* [, line 142 */
+ if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m_keep; goto lab11; }
+ z->bra = z->c; /* ], line 142 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 142 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab13; /* call R2, line 133 */
+ if (ret == 0) goto lab13; /* call R2, line 142 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 133 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
goto lab12;
lab13:
- z->c = z->l - m;
- { int ret;
- ret = slice_from_s(z, 3, s_26); /* <-, line 133 */
+ z->c = z->l - m5;
+ { int ret = slice_from_s(z, 3, s_26); /* <-, line 142 */
if (ret < 0) return ret;
}
}
@@ -893,40 +873,36 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 3, s_27); /* <-, line 135 */
+ { int ret = slice_from_s(z, 3, s_27); /* <-, line 144 */
if (ret < 0) return ret;
}
break;
case 10:
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 136 */
+ if (ret == 0) return 0; /* call R1, line 145 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 2, s_28); /* <-, line 136 */
+ { int ret = slice_from_s(z, 2, s_28); /* <-, line 145 */
if (ret < 0) return ret;
}
break;
case 11:
- { int m = z->l - z->c; (void) m; /* or, line 138 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 147 */
{ int ret = r_R2(z);
- if (ret == 0) goto lab15; /* call R2, line 138 */
+ if (ret == 0) goto lab15; /* call R2, line 147 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 138 */
+ { int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
goto lab14;
lab15:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 138 */
+ if (ret == 0) return 0; /* call R1, line 147 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_29); /* <-, line 138 */
+ { int ret = slice_from_s(z, 3, s_29); /* <-, line 147 */
if (ret < 0) return ret;
}
}
@@ -934,51 +910,47 @@ static int r_standard_suffix(struct SN_env * z) {
break;
case 12:
{ int ret = r_R1(z);
- if (ret == 0) return 0; /* call R1, line 141 */
+ if (ret == 0) return 0; /* call R1, line 150 */
if (ret < 0) return ret;
}
- if (!(out_grouping_b_U(z, g_v, 97, 251))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 141 */
+ if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
+ { int ret = slice_del(z); /* delete, line 150 */
if (ret < 0) return ret;
}
break;
case 13:
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 146 */
+ if (ret == 0) return 0; /* call RV, line 155 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_30); /* <-, line 146 */
+ { int ret = slice_from_s(z, 3, s_30); /* <-, line 155 */
if (ret < 0) return ret;
}
- return 0; /* fail, line 146 */
+ return 0; /* fail, line 155 */
break;
case 14:
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 147 */
+ if (ret == 0) return 0; /* call RV, line 156 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_31); /* <-, line 147 */
+ { int ret = slice_from_s(z, 3, s_31); /* <-, line 156 */
if (ret < 0) return ret;
}
- return 0; /* fail, line 147 */
+ return 0; /* fail, line 156 */
break;
case 15:
- { int m_test = z->l - z->c; /* test, line 149 */
- if (!(in_grouping_b_U(z, g_v, 97, 251))) return 0;
+ { int m_test = z->l - z->c; /* test, line 158 */
+ if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
{ int ret = r_RV(z);
- if (ret == 0) return 0; /* call RV, line 149 */
+ if (ret == 0) return 0; /* call RV, line 158 */
if (ret < 0) return ret;
}
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 149 */
+ { int ret = slice_del(z); /* delete, line 158 */
if (ret < 0) return ret;
}
- return 0; /* fail, line 149 */
+ return 0; /* fail, line 158 */
break;
}
return 1;
@@ -986,72 +958,68 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_i_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 154 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 163 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 154 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- z->ket = z->c; /* [, line 155 */
- among_var = find_among_b(z, a_4, 35); /* substring, line 155 */
- if (!(among_var)) { z->lb = m3; return 0; }
- z->bra = z->c; /* ], line 155 */
+ z->c = z->I[0]; /* tomark, line 163 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 164 */
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
+ among_var = find_among_b(z, a_5, 35); /* substring, line 164 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 164 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- if (!(out_grouping_b_U(z, g_v, 97, 251))) { z->lb = m3; return 0; }
- { int ret;
- ret = slice_del(z); /* delete, line 161 */
+ if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit; return 0; }
+ { int ret = slice_del(z); /* delete, line 170 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 165 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 174 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 165 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- z->ket = z->c; /* [, line 166 */
- among_var = find_among_b(z, a_5, 38); /* substring, line 166 */
- if (!(among_var)) { z->lb = m3; return 0; }
- z->bra = z->c; /* ], line 166 */
+ z->c = z->I[0]; /* tomark, line 174 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 175 */
+ among_var = find_among_b(z, a_6, 38); /* substring, line 175 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 175 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 168 */
+ if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 177 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 168 */
+ { int ret = slice_del(z); /* delete, line 177 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 185 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 181 */
+ { int ret = slice_del(z); /* delete, line 190 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 182 */
- z->ket = z->c; /* [, line 182 */
- if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 182 */
- { int ret;
- ret = slice_del(z); /* delete, line 182 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 191 */
+ z->ket = z->c; /* [, line 191 */
+ if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 191 */
+ { int ret = slice_del(z); /* delete, line 191 */
if (ret < 0) return ret;
}
lab0:
@@ -1059,96 +1027,91 @@ static int r_verb_suffix(struct SN_env * z) {
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_residual_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* try, line 190 */
- z->ket = z->c; /* [, line 190 */
- if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m; goto lab0; }
- z->bra = z->c; /* ], line 190 */
- { int m_test = z->l - z->c; /* test, line 190 */
- if (!(out_grouping_b_U(z, g_keep_with_s, 97, 232))) { z->c = z->l - m; goto lab0; }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 199 */
+ z->ket = z->c; /* [, line 199 */
+ if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m_keep; goto lab0; }
+ z->bra = z->c; /* ], line 199 */
+ { int m_test = z->l - z->c; /* test, line 199 */
+ if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 190 */
+ { int ret = slice_del(z); /* delete, line 199 */
if (ret < 0) return ret;
}
lab0:
;
}
- { int m3; /* setlimit, line 191 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 200 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
- z->c = z->I[0]; /* tomark, line 191 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- z->ket = z->c; /* [, line 192 */
- among_var = find_among_b(z, a_6, 7); /* substring, line 192 */
- if (!(among_var)) { z->lb = m3; return 0; }
- z->bra = z->c; /* ], line 192 */
+ z->c = z->I[0]; /* tomark, line 200 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 201 */
+ among_var = find_among_b(z, a_7, 7); /* substring, line 201 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 201 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->lb = m3; return 0; } /* call R2, line 193 */
+ if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 202 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* or, line 193 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 202 */
if (!(eq_s_b(z, 1, s_34))) goto lab2;
goto lab1;
lab2:
- z->c = z->l - m;
- if (!(eq_s_b(z, 1, s_35))) { z->lb = m3; return 0; }
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 1, s_35))) { z->lb = mlimit; return 0; }
}
lab1:
- { int ret;
- ret = slice_del(z); /* delete, line 193 */
+ { int ret = slice_del(z); /* delete, line 202 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_36); /* <-, line 195 */
+ { int ret = slice_from_s(z, 1, s_36); /* <-, line 204 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 196 */
+ { int ret = slice_del(z); /* delete, line 205 */
if (ret < 0) return ret;
}
break;
case 4:
- if (!(eq_s_b(z, 2, s_37))) { z->lb = m3; return 0; }
- { int ret;
- ret = slice_del(z); /* delete, line 197 */
+ if (!(eq_s_b(z, 2, s_37))) { z->lb = mlimit; return 0; }
+ { int ret = slice_del(z); /* delete, line 206 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_un_double(struct SN_env * z) {
- { int m_test = z->l - z->c; /* test, line 203 */
- if (!(find_among_b(z, a_7, 5))) return 0; /* among, line 203 */
+ { int m_test = z->l - z->c; /* test, line 212 */
+ 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; /* among, line 212 */
z->c = z->l - m_test;
}
- z->ket = z->c; /* [, line 203 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 203 */
+ z->ket = z->c; /* [, line 212 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 212 */
}
- z->bra = z->c; /* ], line 203 */
- { int ret;
- ret = slice_del(z); /* delete, line 203 */
+ z->bra = z->c; /* ], line 212 */
+ { int ret = slice_del(z); /* delete, line 212 */
if (ret < 0) return ret;
}
return 1;
@@ -1156,8 +1119,8 @@ static int r_un_double(struct SN_env * z) {
static int r_un_accent(struct SN_env * z) {
{ int i = 1;
- while(1) { /* atleast, line 207 */
- if (!(out_grouping_b_U(z, g_v, 97, 251))) goto lab0;
+ while(1) { /* atleast, line 216 */
+ if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0;
i--;
continue;
lab0:
@@ -1165,83 +1128,80 @@ static int r_un_accent(struct SN_env * z) {
}
if (i > 0) return 0;
}
- z->ket = z->c; /* [, line 208 */
- { int m = z->l - z->c; (void) m; /* or, line 208 */
+ z->ket = z->c; /* [, line 217 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 217 */
if (!(eq_s_b(z, 2, s_38))) goto lab2;
goto lab1;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_39))) return 0;
}
lab1:
- z->bra = z->c; /* ], line 208 */
- { int ret;
- ret = slice_from_s(z, 1, s_40); /* <-, line 208 */
+ z->bra = z->c; /* ], line 217 */
+ { int ret = slice_from_s(z, 1, s_40); /* <-, line 217 */
if (ret < 0) return ret;
}
return 1;
}
extern int french_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 214 */
+ { int c1 = z->c; /* do, line 223 */
{ int ret = r_prelude(z);
- if (ret == 0) goto lab0; /* call prelude, line 214 */
+ if (ret == 0) goto lab0; /* call prelude, line 223 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 215 */
+ { int c2 = z->c; /* do, line 224 */
{ int ret = r_mark_regions(z);
- if (ret == 0) goto lab1; /* call mark_regions, line 215 */
+ if (ret == 0) goto lab1; /* call mark_regions, line 224 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
- z->lb = z->c; z->c = z->l; /* backwards, line 216 */
+ z->lb = z->c; z->c = z->l; /* backwards, line 225 */
- { int m = z->l - z->c; (void) m; /* do, line 218 */
- { int m = z->l - z->c; (void) m; /* or, line 228 */
- { int m = z->l - z->c; (void) m; /* and, line 224 */
- { int m = z->l - z->c; (void) m; /* or, line 220 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 227 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 237 */
+ { int m5 = z->l - z->c; (void)m5; /* and, line 233 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 229 */
{ int ret = r_standard_suffix(z);
- if (ret == 0) goto lab6; /* call standard_suffix, line 220 */
+ if (ret == 0) goto lab6; /* call standard_suffix, line 229 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_i_verb_suffix(z);
- if (ret == 0) goto lab7; /* call i_verb_suffix, line 221 */
+ if (ret == 0) goto lab7; /* call i_verb_suffix, line 230 */
if (ret < 0) return ret;
}
goto lab5;
lab7:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
- if (ret == 0) goto lab4; /* call verb_suffix, line 222 */
+ if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* try, line 225 */
- z->ket = z->c; /* [, line 225 */
- { int m = z->l - z->c; (void) m; /* or, line 225 */
+ z->c = z->l - m5;
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 234 */
+ z->ket = z->c; /* [, line 234 */
+ { int m7 = z->l - z->c; (void)m7; /* or, line 234 */
if (!(eq_s_b(z, 1, s_41))) goto lab10;
- z->bra = z->c; /* ], line 225 */
- { int ret;
- ret = slice_from_s(z, 1, s_42); /* <-, line 225 */
+ z->bra = z->c; /* ], line 234 */
+ { int ret = slice_from_s(z, 1, s_42); /* <-, line 234 */
if (ret < 0) return ret;
}
goto lab9;
lab10:
- z->c = z->l - m;
- if (!(eq_s_b(z, 2, s_43))) { z->c = z->l - m; goto lab8; }
- z->bra = z->c; /* ], line 226 */
- { int ret;
- ret = slice_from_s(z, 1, s_44); /* <-, line 226 */
+ z->c = z->l - m7;
+ if (!(eq_s_b(z, 2, s_43))) { z->c = z->l - m_keep; goto lab8; }
+ z->bra = z->c; /* ], line 235 */
+ { int ret = slice_from_s(z, 1, s_44); /* <-, line 235 */
if (ret < 0) return ret;
}
}
@@ -1252,45 +1212,45 @@ extern int french_UTF_8_stem(struct SN_env * z) {
}
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_residual_suffix(z);
- if (ret == 0) goto lab2; /* call residual_suffix, line 229 */
+ if (ret == 0) goto lab2; /* call residual_suffix, line 238 */
if (ret < 0) return ret;
}
}
lab3:
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 234 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 243 */
{ int ret = r_un_double(z);
- if (ret == 0) goto lab11; /* call un_double, line 234 */
+ if (ret == 0) goto lab11; /* call un_double, line 243 */
if (ret < 0) return ret;
}
lab11:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
- { int m = z->l - z->c; (void) m; /* do, line 235 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 244 */
{ int ret = r_un_accent(z);
- if (ret == 0) goto lab12; /* call un_accent, line 235 */
+ if (ret == 0) goto lab12; /* call un_accent, line 244 */
if (ret < 0) return ret;
}
lab12:
- z->c = z->l - m;
+ z->c = z->l - m9;
}
z->c = z->lb;
- { int c = z->c; /* do, line 237 */
+ { int c10 = z->c; /* do, line 246 */
{ int ret = r_postlude(z);
- if (ret == 0) goto lab13; /* call postlude, line 237 */
+ if (ret == 0) goto lab13; /* call postlude, line 246 */
if (ret < 0) return ret;
}
lab13:
- z->c = c;
+ z->c = c10;
}
return 1;
}
extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_german.c b/libstemmer_c/src_c/stem_UTF_8_german.c
index d66a137..d79281c 100644
--- a/libstemmer_c/src_c/stem_UTF_8_german.c
+++ b/libstemmer_c/src_c/stem_UTF_8_german.c
@@ -3,24 +3,38 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int german_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_standard_suffix(struct SN_env * z);
static int r_R2(struct SN_env * z);
static int r_R1(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * german_UTF_8_create_env(void);
extern void german_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_1[1] = { 'U' };
-static symbol s_0_2[1] = { 'Y' };
-static symbol s_0_3[2] = { 0xC3, 0xA4 };
-static symbol s_0_4[2] = { 0xC3, 0xB6 };
-static symbol s_0_5[2] = { 0xC3, 0xBC };
-static struct among a_0[6] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'U' };
+static const symbol s_0_2[1] = { 'Y' };
+static const symbol s_0_3[2] = { 0xC3, 0xA4 };
+static const symbol s_0_4[2] = { 0xC3, 0xB6 };
+static const symbol s_0_5[2] = { 0xC3, 0xBC };
+
+static const struct among a_0[6] =
{
/* 0 */ { 0, 0, -1, 6, 0},
/* 1 */ { 1, s_0_1, 0, 2, 0},
@@ -30,15 +44,15 @@ static struct among a_0[6] =
/* 5 */ { 2, s_0_5, 0, 5, 0}
};
-static symbol s_1_0[1] = { 'e' };
-static symbol s_1_1[2] = { 'e', 'm' };
-static symbol s_1_2[2] = { 'e', 'n' };
-static symbol s_1_3[3] = { 'e', 'r', 'n' };
-static symbol s_1_4[2] = { 'e', 'r' };
-static symbol s_1_5[1] = { 's' };
-static symbol s_1_6[2] = { 'e', 's' };
+static const symbol s_1_0[1] = { 'e' };
+static const symbol s_1_1[2] = { 'e', 'm' };
+static const symbol s_1_2[2] = { 'e', 'n' };
+static const symbol s_1_3[3] = { 'e', 'r', 'n' };
+static const symbol s_1_4[2] = { 'e', 'r' };
+static const symbol s_1_5[1] = { 's' };
+static const symbol s_1_6[2] = { 'e', 's' };
-static struct among a_1[7] =
+static const struct among a_1[7] =
{
/* 0 */ { 1, s_1_0, -1, 1, 0},
/* 1 */ { 2, s_1_1, -1, 1, 0},
@@ -49,12 +63,12 @@ static struct among a_1[7] =
/* 6 */ { 2, s_1_6, 5, 1, 0}
};
-static symbol s_2_0[2] = { 'e', 'n' };
-static symbol s_2_1[2] = { 'e', 'r' };
-static symbol s_2_2[2] = { 's', 't' };
-static symbol s_2_3[3] = { 'e', 's', 't' };
+static const symbol s_2_0[2] = { 'e', 'n' };
+static const symbol s_2_1[2] = { 'e', 'r' };
+static const symbol s_2_2[2] = { 's', 't' };
+static const symbol s_2_3[3] = { 'e', 's', 't' };
-static struct among a_2[4] =
+static const struct among a_2[4] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 2, s_2_1, -1, 1, 0},
@@ -62,25 +76,25 @@ static struct among a_2[4] =
/* 3 */ { 3, s_2_3, 2, 1, 0}
};
-static symbol s_3_0[2] = { 'i', 'g' };
-static symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_3_0[2] = { 'i', 'g' };
+static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
-static struct among a_3[2] =
+static const struct among a_3[2] =
{
/* 0 */ { 2, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0}
};
-static symbol s_4_0[3] = { 'e', 'n', 'd' };
-static symbol s_4_1[2] = { 'i', 'g' };
-static symbol s_4_2[3] = { 'u', 'n', 'g' };
-static symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
-static symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
-static symbol s_4_5[2] = { 'i', 'k' };
-static symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
-static symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'u', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
+static const symbol s_4_5[2] = { 'i', 'k' };
+static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
+static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
-static struct among a_4[8] =
+static const struct among a_4[8] =
{
/* 0 */ { 3, s_4_0, -1, 1, 0},
/* 1 */ { 2, s_4_1, -1, 2, 0},
@@ -92,95 +106,92 @@ static struct among a_4[8] =
/* 7 */ { 4, s_4_7, -1, 4, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
+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 };
-static unsigned char g_s_ending[] = { 117, 30, 5 };
+static const unsigned char g_s_ending[] = { 117, 30, 5 };
-static unsigned char g_st_ending[] = { 117, 30, 4 };
+static const unsigned char g_st_ending[] = { 117, 30, 4 };
-static symbol s_0[] = { 0xC3, 0x9F };
-static symbol s_1[] = { 's', 's' };
-static symbol s_2[] = { 'u' };
-static symbol s_3[] = { 'U' };
-static symbol s_4[] = { 'y' };
-static symbol s_5[] = { 'Y' };
-static symbol s_6[] = { 'y' };
-static symbol s_7[] = { 'u' };
-static symbol s_8[] = { 'a' };
-static symbol s_9[] = { 'o' };
-static symbol s_10[] = { 'u' };
-static symbol s_11[] = { 'i', 'g' };
-static symbol s_12[] = { 'e' };
-static symbol s_13[] = { 'e' };
-static symbol s_14[] = { 'e', 'r' };
-static symbol s_15[] = { 'e', 'n' };
+static const symbol s_0[] = { 0xC3, 0x9F };
+static const symbol s_1[] = { 's', 's' };
+static const symbol s_2[] = { 'u' };
+static const symbol s_3[] = { 'U' };
+static const symbol s_4[] = { 'y' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'y' };
+static const symbol s_7[] = { 'u' };
+static const symbol s_8[] = { 'a' };
+static const symbol s_9[] = { 'o' };
+static const symbol s_10[] = { 'u' };
+static const symbol s_11[] = { 'i', 'g' };
+static const symbol s_12[] = { 'e' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'e', 'r' };
+static const symbol s_15[] = { 'e', 'n' };
static int r_prelude(struct SN_env * z) {
{ int c_test = z->c; /* test, line 30 */
while(1) { /* repeat, line 30 */
- int c = z->c;
- { int c = z->c; /* or, line 33 */
+ int c1 = z->c;
+ { int c2 = z->c; /* or, line 33 */
z->bra = z->c; /* [, line 32 */
if (!(eq_s(z, 2, s_0))) goto lab2;
z->ket = z->c; /* ], line 32 */
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
if (ret < 0) return ret;
}
goto lab1;
lab2:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 33 */
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 33 */
}
}
lab1:
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
z->c = c_test;
}
while(1) { /* repeat, line 36 */
- int c = z->c;
+ int c3 = z->c;
while(1) { /* goto, line 36 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab4;
+ int c4 = z->c;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
z->bra = z->c; /* [, line 37 */
- { int c = z->c; /* or, line 37 */
+ { int c5 = z->c; /* or, line 37 */
if (!(eq_s(z, 1, s_2))) goto lab6;
z->ket = z->c; /* ], line 37 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab6;
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = c;
+ z->c = c5;
if (!(eq_s(z, 1, s_4))) goto lab4;
z->ket = z->c; /* ], line 38 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab4;
- { int ret;
- ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = c;
+ z->c = c4;
break;
lab4:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab3;
- z->c = c; /* goto, line 36 */
+ z->c = c4;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab3;
+ z->c = ret; /* goto, line 36 */
}
}
continue;
lab3:
- z->c = c;
+ z->c = c3;
break;
}
return 1;
@@ -190,53 +201,37 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
{ int c_test = z->c; /* test, line 47 */
- { int c = skip_utf8(z->p, z->c, 0, z->l, + 3);
- if (c < 0) return 0;
- z->c = c; /* hop, line 47 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+ if (ret < 0) return 0;
+ z->c = ret; /* hop, line 47 */
}
z->I[2] = z->c; /* setmark x, line 47 */
z->c = c_test;
}
- while(1) { /* gopast, line 49 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab0;
- break;
- lab0:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 49 */
- }
+ { /* gopast */ /* grouping v, line 49 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 49 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 49 */
- }
+ { /* gopast */ /* non v, line 49 */
+ 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 49 */
/* try, line 50 */
- if (!(z->I[0] < z->I[2])) goto lab2;
+ if (!(z->I[0] < z->I[2])) goto lab0;
z->I[0] = z->I[2];
-lab2:
- while(1) { /* gopast, line 51 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 51 */
- }
+lab0:
+ { /* gopast */ /* grouping v, line 51 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
}
- while(1) { /* gopast, line 51 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab4;
- break;
- lab4:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 51 */
- }
+ { /* gopast */ /* non v, line 51 */
+ 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 51 */
return 1;
@@ -245,7 +240,7 @@ lab2:
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 55 */
- int c = z->c;
+ int c1 = z->c;
z->bra = z->c; /* [, line 57 */
among_var = find_among(z, a_0, 6); /* substring, line 57 */
if (!(among_var)) goto lab0;
@@ -253,45 +248,40 @@ static int r_postlude(struct SN_env * z) {
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 63 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 63 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -309,8 +299,9 @@ static int r_R2(struct SN_env * z) {
static int r_standard_suffix(struct SN_env * z) {
int among_var;
- { int m = z->l - z->c; (void) m; /* do, line 74 */
+ { int m1 = z->l - z->c; (void)m1; /* do, line 74 */
z->ket = z->c; /* [, line 75 */
+ 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); /* substring, line 75 */
if (!(among_var)) goto lab0;
z->bra = z->c; /* ], line 75 */
@@ -321,24 +312,23 @@ static int r_standard_suffix(struct SN_env * z) {
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 77 */
+ { int ret = slice_del(z); /* delete, line 77 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b_U(z, g_s_ending, 98, 116))) goto lab0;
- { int ret;
- ret = slice_del(z); /* delete, line 80 */
+ if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
+ { int ret = slice_del(z); /* delete, line 80 */
if (ret < 0) return ret;
}
break;
}
lab0:
- z->c = z->l - m;
+ z->c = z->l - m1;
}
- { int m = z->l - z->c; (void) m; /* do, line 84 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 84 */
z->ket = z->c; /* [, line 85 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
if (!(among_var)) goto lab1;
z->bra = z->c; /* ], line 85 */
@@ -349,28 +339,27 @@ static int r_standard_suffix(struct SN_env * z) {
switch(among_var) {
case 0: goto lab1;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 87 */
+ { int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b_U(z, g_st_ending, 98, 116))) goto lab1;
- { int c = skip_utf8(z->p, z->c, z->lb, z->l, - 3);
- if (c < 0) goto lab1;
- z->c = c; /* hop, line 90 */
+ if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab1;
+ { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 3);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* hop, line 90 */
}
- { int ret;
- ret = slice_del(z); /* delete, line 90 */
+ { int ret = slice_del(z); /* delete, line 90 */
if (ret < 0) return ret;
}
break;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 94 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 94 */
z->ket = z->c; /* [, line 95 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
if (!(among_var)) goto lab2;
z->bra = z->c; /* ], line 95 */
@@ -381,26 +370,24 @@ static int r_standard_suffix(struct SN_env * z) {
switch(among_var) {
case 0: goto lab2;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 97 */
+ { int ret = slice_del(z); /* delete, line 97 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 98 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
z->ket = z->c; /* [, line 98 */
- if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 98 */
- { int m = z->l - z->c; (void) m; /* not, line 98 */
+ { int m4 = z->l - z->c; (void)m4; /* not, line 98 */
if (!(eq_s_b(z, 1, s_12))) goto lab4;
- { z->c = z->l - m; goto lab3; }
+ { z->c = z->l - m_keep; goto lab3; }
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 98 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 98 */
+ { int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
lab3:
@@ -408,39 +395,36 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* not, line 101 */
+ { int m5 = z->l - z->c; (void)m5; /* not, line 101 */
if (!(eq_s_b(z, 1, s_13))) goto lab5;
goto lab2;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
- { int ret;
- ret = slice_del(z); /* delete, line 101 */
+ { int ret = slice_del(z); /* delete, line 101 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 104 */
+ { int ret = slice_del(z); /* delete, line 104 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 105 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
z->ket = z->c; /* [, line 106 */
- { int m = z->l - z->c; (void) m; /* or, line 106 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 106 */
if (!(eq_s_b(z, 2, s_14))) goto lab8;
goto lab7;
lab8:
- z->c = z->l - m;
- if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m; goto lab6; }
+ z->c = z->l - m6;
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
}
lab7:
z->bra = z->c; /* ], line 106 */
{ int ret = r_R1(z);
- if (ret == 0) { z->c = z->l - m; goto lab6; } /* call R1, line 106 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 106 */
+ { int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
lab6:
@@ -448,24 +432,23 @@ static int r_standard_suffix(struct SN_env * z) {
}
break;
case 4:
- { int ret;
- ret = slice_del(z); /* delete, line 110 */
+ { int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 111 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
z->ket = z->c; /* [, line 112 */
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m; goto lab9; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab9; } /* call R2, line 112 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab9; }
+ case 0: { z->c = z->l - m_keep; goto lab9; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 114 */
+ { int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
break;
@@ -476,51 +459,51 @@ static int r_standard_suffix(struct SN_env * z) {
break;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
return 1;
}
extern int german_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 125 */
+ { int c1 = z->c; /* do, line 125 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 125 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 126 */
+ { int c2 = z->c; /* do, line 126 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 126 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 127 */
- { int m = z->l - z->c; (void) m; /* do, line 128 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 128 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
z->c = z->lb;
- { int c = z->c; /* do, line 129 */
+ { int c4 = z->c; /* do, line 129 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab3; /* call postlude, line 129 */
if (ret < 0) return ret;
}
lab3:
- z->c = c;
+ z->c = c4;
}
return 1;
}
extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_hungarian.c b/libstemmer_c/src_c/stem_UTF_8_hungarian.c
new file mode 100644
index 0000000..44a62f7
--- /dev/null
+++ b/libstemmer_c/src_c/stem_UTF_8_hungarian.c
@@ -0,0 +1,1234 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#include "../runtime/header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int hungarian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_double(struct SN_env * z);
+static int r_undouble(struct SN_env * z);
+static int r_factive(struct SN_env * z);
+static int r_instrum(struct SN_env * z);
+static int r_plur_owner(struct SN_env * z);
+static int r_sing_owner(struct SN_env * z);
+static int r_owned(struct SN_env * z);
+static int r_plural(struct SN_env * z);
+static int r_case_other(struct SN_env * z);
+static int r_case_special(struct SN_env * z);
+static int r_case(struct SN_env * z);
+static int r_v_ending(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * hungarian_UTF_8_create_env(void);
+extern void hungarian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'c', 's' };
+static const symbol s_0_1[3] = { 'd', 'z', 's' };
+static const symbol s_0_2[2] = { 'g', 'y' };
+static const symbol s_0_3[2] = { 'l', 'y' };
+static const symbol s_0_4[2] = { 'n', 'y' };
+static const symbol s_0_5[2] = { 's', 'z' };
+static const symbol s_0_6[2] = { 't', 'y' };
+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}
+};
+
+static const symbol s_1_0[2] = { 0xC3, 0xA1 };
+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}
+};
+
+static const symbol s_2_0[2] = { 'b', 'b' };
+static const symbol s_2_1[2] = { 'c', 'c' };
+static const symbol s_2_2[2] = { 'd', 'd' };
+static const symbol s_2_3[2] = { 'f', 'f' };
+static const symbol s_2_4[2] = { 'g', 'g' };
+static const symbol s_2_5[2] = { 'j', 'j' };
+static const symbol s_2_6[2] = { 'k', 'k' };
+static const symbol s_2_7[2] = { 'l', 'l' };
+static const symbol s_2_8[2] = { 'm', 'm' };
+static const symbol s_2_9[2] = { 'n', 'n' };
+static const symbol s_2_10[2] = { 'p', 'p' };
+static const symbol s_2_11[2] = { 'r', 'r' };
+static const symbol s_2_12[3] = { 'c', 'c', 's' };
+static const symbol s_2_13[2] = { 's', 's' };
+static const symbol s_2_14[3] = { 'z', 'z', 's' };
+static const symbol s_2_15[2] = { 't', 't' };
+static const symbol s_2_16[2] = { 'v', 'v' };
+static const symbol s_2_17[3] = { 'g', 'g', 'y' };
+static const symbol s_2_18[3] = { 'l', 'l', 'y' };
+static const symbol s_2_19[3] = { 'n', 'n', 'y' };
+static const symbol s_2_20[3] = { 't', 't', 'y' };
+static const symbol s_2_21[3] = { 's', 's', 'z' };
+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}
+};
+
+static const symbol s_3_0[2] = { 'a', 'l' };
+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, 2, 0}
+};
+
+static const symbol s_4_0[2] = { 'b', 'a' };
+static const symbol s_4_1[2] = { 'r', 'a' };
+static const symbol s_4_2[2] = { 'b', 'e' };
+static const symbol s_4_3[2] = { 'r', 'e' };
+static const symbol s_4_4[2] = { 'i', 'g' };
+static const symbol s_4_5[3] = { 'n', 'a', 'k' };
+static const symbol s_4_6[3] = { 'n', 'e', 'k' };
+static const symbol s_4_7[3] = { 'v', 'a', 'l' };
+static const symbol s_4_8[3] = { 'v', 'e', 'l' };
+static const symbol s_4_9[2] = { 'u', 'l' };
+static const symbol s_4_10[4] = { 'n', 0xC3, 0xA1, 'l' };
+static const symbol s_4_11[4] = { 'n', 0xC3, 0xA9, 'l' };
+static const symbol s_4_12[4] = { 'b', 0xC3, 0xB3, 'l' };
+static const symbol s_4_13[4] = { 'r', 0xC3, 0xB3, 'l' };
+static const symbol s_4_14[4] = { 't', 0xC3, 0xB3, 'l' };
+static const symbol s_4_15[4] = { 'b', 0xC3, 0xB5, 'l' };
+static const symbol s_4_16[4] = { 'r', 0xC3, 0xB5, 'l' };
+static const symbol s_4_17[4] = { 't', 0xC3, 0xB5, 'l' };
+static const symbol s_4_18[3] = { 0xC3, 0xBC, 'l' };
+static const symbol s_4_19[1] = { 'n' };
+static const symbol s_4_20[2] = { 'a', 'n' };
+static const symbol s_4_21[3] = { 'b', 'a', 'n' };
+static const symbol s_4_22[2] = { 'e', 'n' };
+static const symbol s_4_23[3] = { 'b', 'e', 'n' };
+static const symbol s_4_24[7] = { 'k', 0xC3, 0xA9, 'p', 'p', 'e', 'n' };
+static const symbol s_4_25[2] = { 'o', 'n' };
+static const symbol s_4_26[3] = { 0xC3, 0xB6, 'n' };
+static const symbol s_4_27[5] = { 'k', 0xC3, 0xA9, 'p', 'p' };
+static const symbol s_4_28[3] = { 'k', 'o', 'r' };
+static const symbol s_4_29[1] = { 't' };
+static const symbol s_4_30[2] = { 'a', 't' };
+static const symbol s_4_31[2] = { 'e', 't' };
+static const symbol s_4_32[5] = { 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_33[7] = { 'a', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_34[7] = { 'e', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_35[7] = { 'o', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_36[2] = { 'o', 't' };
+static const symbol s_4_37[4] = { 0xC3, 0xA9, 'r', 't' };
+static const symbol s_4_38[3] = { 0xC3, 0xB6, 't' };
+static const symbol s_4_39[3] = { 'h', 'e', 'z' };
+static const symbol s_4_40[3] = { 'h', 'o', 'z' };
+static const symbol s_4_41[4] = { 'h', 0xC3, 0xB6, 'z' };
+static const symbol s_4_42[3] = { 'v', 0xC3, 0xA1 };
+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}
+};
+
+static const symbol s_5_0[3] = { 0xC3, 0xA1, 'n' };
+static const symbol s_5_1[3] = { 0xC3, 0xA9, 'n' };
+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, 3, 0}
+};
+
+static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
+static const symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' };
+static const symbol s_6_2[6] = { 0xC3, 0xA1, 's', 't', 'u', 'l' };
+static const symbol s_6_3[5] = { 's', 't', 0xC3, 0xBC, 'l' };
+static const symbol s_6_4[6] = { 'e', 's', 't', 0xC3, 0xBC, 'l' };
+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, 2, 0},
+/* 1 */ { 5, s_6_1, 0, 1, 0},
+/* 2 */ { 6, s_6_2, 0, 3, 0},
+/* 3 */ { 5, s_6_3, -1, 2, 0},
+/* 4 */ { 6, s_6_4, 3, 1, 0},
+/* 5 */ { 7, s_6_5, 3, 4, 0}
+};
+
+static const symbol s_7_0[2] = { 0xC3, 0xA1 };
+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, 2, 0}
+};
+
+static const symbol s_8_0[1] = { 'k' };
+static const symbol s_8_1[2] = { 'a', 'k' };
+static const symbol s_8_2[2] = { 'e', 'k' };
+static const symbol s_8_3[2] = { 'o', 'k' };
+static const symbol s_8_4[3] = { 0xC3, 0xA1, 'k' };
+static const symbol s_8_5[3] = { 0xC3, 0xA9, 'k' };
+static const symbol s_8_6[3] = { 0xC3, 0xB6, 'k' };
+
+static const struct among a_8[7] =
+{
+/* 0 */ { 1, s_8_0, -1, 7, 0},
+/* 1 */ { 2, s_8_1, 0, 4, 0},
+/* 2 */ { 2, s_8_2, 0, 6, 0},
+/* 3 */ { 2, s_8_3, 0, 5, 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}
+};
+
+static const symbol s_9_0[3] = { 0xC3, 0xA9, 'i' };
+static const symbol s_9_1[5] = { 0xC3, 0xA1, 0xC3, 0xA9, 'i' };
+static const symbol s_9_2[5] = { 0xC3, 0xA9, 0xC3, 0xA9, 'i' };
+static const symbol s_9_3[2] = { 0xC3, 0xA9 };
+static const symbol s_9_4[3] = { 'k', 0xC3, 0xA9 };
+static const symbol s_9_5[4] = { 'a', 'k', 0xC3, 0xA9 };
+static const symbol s_9_6[4] = { 'e', 'k', 0xC3, 0xA9 };
+static const symbol s_9_7[4] = { 'o', 'k', 0xC3, 0xA9 };
+static const symbol s_9_8[5] = { 0xC3, 0xA1, 'k', 0xC3, 0xA9 };
+static const symbol s_9_9[5] = { 0xC3, 0xA9, 'k', 0xC3, 0xA9 };
+static const symbol s_9_10[5] = { 0xC3, 0xB6, 'k', 0xC3, 0xA9 };
+static const symbol s_9_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 };
+
+static const struct among a_9[12] =
+{
+/* 0 */ { 3, s_9_0, -1, 7, 0},
+/* 1 */ { 5, s_9_1, 0, 6, 0},
+/* 2 */ { 5, s_9_2, 0, 5, 0},
+/* 3 */ { 2, s_9_3, -1, 9, 0},
+/* 4 */ { 3, s_9_4, 3, 4, 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, 8, 0}
+};
+
+static const symbol s_10_0[1] = { 'a' };
+static const symbol s_10_1[2] = { 'j', 'a' };
+static const symbol s_10_2[1] = { 'd' };
+static const symbol s_10_3[2] = { 'a', 'd' };
+static const symbol s_10_4[2] = { 'e', 'd' };
+static const symbol s_10_5[2] = { 'o', 'd' };
+static const symbol s_10_6[3] = { 0xC3, 0xA1, 'd' };
+static const symbol s_10_7[3] = { 0xC3, 0xA9, 'd' };
+static const symbol s_10_8[3] = { 0xC3, 0xB6, 'd' };
+static const symbol s_10_9[1] = { 'e' };
+static const symbol s_10_10[2] = { 'j', 'e' };
+static const symbol s_10_11[2] = { 'n', 'k' };
+static const symbol s_10_12[3] = { 'u', 'n', 'k' };
+static const symbol s_10_13[4] = { 0xC3, 0xA1, 'n', 'k' };
+static const symbol s_10_14[4] = { 0xC3, 0xA9, 'n', 'k' };
+static const symbol s_10_15[4] = { 0xC3, 0xBC, 'n', 'k' };
+static const symbol s_10_16[2] = { 'u', 'k' };
+static const symbol s_10_17[3] = { 'j', 'u', 'k' };
+static const symbol s_10_18[5] = { 0xC3, 0xA1, 'j', 'u', 'k' };
+static const symbol s_10_19[3] = { 0xC3, 0xBC, 'k' };
+static const symbol s_10_20[4] = { 'j', 0xC3, 0xBC, 'k' };
+static const symbol s_10_21[6] = { 0xC3, 0xA9, 'j', 0xC3, 0xBC, 'k' };
+static const symbol s_10_22[1] = { 'm' };
+static const symbol s_10_23[2] = { 'a', 'm' };
+static const symbol s_10_24[2] = { 'e', 'm' };
+static const symbol s_10_25[2] = { 'o', 'm' };
+static const symbol s_10_26[3] = { 0xC3, 0xA1, 'm' };
+static const symbol s_10_27[3] = { 0xC3, 0xA9, 'm' };
+static const symbol s_10_28[1] = { 'o' };
+static const symbol s_10_29[2] = { 0xC3, 0xA1 };
+static const symbol s_10_30[2] = { 0xC3, 0xA9 };
+
+static const struct among a_10[31] =
+{
+/* 0 */ { 1, s_10_0, -1, 18, 0},
+/* 1 */ { 2, s_10_1, 0, 17, 0},
+/* 2 */ { 1, s_10_2, -1, 16, 0},
+/* 3 */ { 2, s_10_3, 2, 13, 0},
+/* 4 */ { 2, s_10_4, 2, 13, 0},
+/* 5 */ { 2, s_10_5, 2, 13, 0},
+/* 6 */ { 3, s_10_6, 2, 14, 0},
+/* 7 */ { 3, s_10_7, 2, 15, 0},
+/* 8 */ { 3, s_10_8, 2, 13, 0},
+/* 9 */ { 1, s_10_9, -1, 18, 0},
+/* 10 */ { 2, s_10_10, 9, 17, 0},
+/* 11 */ { 2, s_10_11, -1, 4, 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, 8, 0},
+/* 17 */ { 3, s_10_17, 16, 7, 0},
+/* 18 */ { 5, s_10_18, 17, 5, 0},
+/* 19 */ { 3, s_10_19, -1, 8, 0},
+/* 20 */ { 4, s_10_20, 19, 7, 0},
+/* 21 */ { 6, s_10_21, 20, 6, 0},
+/* 22 */ { 1, s_10_22, -1, 12, 0},
+/* 23 */ { 2, s_10_23, 22, 9, 0},
+/* 24 */ { 2, s_10_24, 22, 9, 0},
+/* 25 */ { 2, s_10_25, 22, 9, 0},
+/* 26 */ { 3, s_10_26, 22, 10, 0},
+/* 27 */ { 3, s_10_27, 22, 11, 0},
+/* 28 */ { 1, s_10_28, -1, 18, 0},
+/* 29 */ { 2, s_10_29, -1, 19, 0},
+/* 30 */ { 2, s_10_30, -1, 20, 0}
+};
+
+static const symbol s_11_0[2] = { 'i', 'd' };
+static const symbol s_11_1[3] = { 'a', 'i', 'd' };
+static const symbol s_11_2[4] = { 'j', 'a', 'i', 'd' };
+static const symbol s_11_3[3] = { 'e', 'i', 'd' };
+static const symbol s_11_4[4] = { 'j', 'e', 'i', 'd' };
+static const symbol s_11_5[4] = { 0xC3, 0xA1, 'i', 'd' };
+static const symbol s_11_6[4] = { 0xC3, 0xA9, 'i', 'd' };
+static const symbol s_11_7[1] = { 'i' };
+static const symbol s_11_8[2] = { 'a', 'i' };
+static const symbol s_11_9[3] = { 'j', 'a', 'i' };
+static const symbol s_11_10[2] = { 'e', 'i' };
+static const symbol s_11_11[3] = { 'j', 'e', 'i' };
+static const symbol s_11_12[3] = { 0xC3, 0xA1, 'i' };
+static const symbol s_11_13[3] = { 0xC3, 0xA9, 'i' };
+static const symbol s_11_14[4] = { 'i', 't', 'e', 'k' };
+static const symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_17[6] = { 0xC3, 0xA9, 'i', 't', 'e', 'k' };
+static const symbol s_11_18[2] = { 'i', 'k' };
+static const symbol s_11_19[3] = { 'a', 'i', 'k' };
+static const symbol s_11_20[4] = { 'j', 'a', 'i', 'k' };
+static const symbol s_11_21[3] = { 'e', 'i', 'k' };
+static const symbol s_11_22[4] = { 'j', 'e', 'i', 'k' };
+static const symbol s_11_23[4] = { 0xC3, 0xA1, 'i', 'k' };
+static const symbol s_11_24[4] = { 0xC3, 0xA9, 'i', 'k' };
+static const symbol s_11_25[3] = { 'i', 'n', 'k' };
+static const symbol s_11_26[4] = { 'a', 'i', 'n', 'k' };
+static const symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' };
+static const symbol s_11_28[4] = { 'e', 'i', 'n', 'k' };
+static const symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' };
+static const symbol s_11_30[5] = { 0xC3, 0xA1, 'i', 'n', 'k' };
+static const symbol s_11_31[5] = { 0xC3, 0xA9, 'i', 'n', 'k' };
+static const symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_34[6] = { 0xC3, 0xA1, 'i', 't', 'o', 'k' };
+static const symbol s_11_35[2] = { 'i', 'm' };
+static const symbol s_11_36[3] = { 'a', 'i', 'm' };
+static const symbol s_11_37[4] = { 'j', 'a', 'i', 'm' };
+static const symbol s_11_38[3] = { 'e', 'i', 'm' };
+static const symbol s_11_39[4] = { 'j', 'e', 'i', 'm' };
+static const symbol s_11_40[4] = { 0xC3, 0xA1, 'i', 'm' };
+static const symbol s_11_41[4] = { 0xC3, 0xA9, 'i', 'm' };
+
+static const struct among a_11[42] =
+{
+/* 0 */ { 2, s_11_0, -1, 10, 0},
+/* 1 */ { 3, s_11_1, 0, 9, 0},
+/* 2 */ { 4, s_11_2, 1, 6, 0},
+/* 3 */ { 3, s_11_3, 0, 9, 0},
+/* 4 */ { 4, s_11_4, 3, 6, 0},
+/* 5 */ { 4, s_11_5, 0, 7, 0},
+/* 6 */ { 4, s_11_6, 0, 8, 0},
+/* 7 */ { 1, s_11_7, -1, 15, 0},
+/* 8 */ { 2, s_11_8, 7, 14, 0},
+/* 9 */ { 3, s_11_9, 8, 11, 0},
+/* 10 */ { 2, s_11_10, 7, 14, 0},
+/* 11 */ { 3, s_11_11, 10, 11, 0},
+/* 12 */ { 3, s_11_12, 7, 12, 0},
+/* 13 */ { 3, s_11_13, 7, 13, 0},
+/* 14 */ { 4, s_11_14, -1, 24, 0},
+/* 15 */ { 5, s_11_15, 14, 21, 0},
+/* 16 */ { 6, s_11_16, 15, 20, 0},
+/* 17 */ { 6, s_11_17, 14, 23, 0},
+/* 18 */ { 2, s_11_18, -1, 29, 0},
+/* 19 */ { 3, s_11_19, 18, 26, 0},
+/* 20 */ { 4, s_11_20, 19, 25, 0},
+/* 21 */ { 3, s_11_21, 18, 26, 0},
+/* 22 */ { 4, s_11_22, 21, 25, 0},
+/* 23 */ { 4, s_11_23, 18, 27, 0},
+/* 24 */ { 4, s_11_24, 18, 28, 0},
+/* 25 */ { 3, s_11_25, -1, 20, 0},
+/* 26 */ { 4, s_11_26, 25, 17, 0},
+/* 27 */ { 5, s_11_27, 26, 16, 0},
+/* 28 */ { 4, s_11_28, 25, 17, 0},
+/* 29 */ { 5, s_11_29, 28, 16, 0},
+/* 30 */ { 5, s_11_30, 25, 18, 0},
+/* 31 */ { 5, s_11_31, 25, 19, 0},
+/* 32 */ { 5, s_11_32, -1, 21, 0},
+/* 33 */ { 6, s_11_33, 32, 20, 0},
+/* 34 */ { 6, s_11_34, -1, 22, 0},
+/* 35 */ { 2, s_11_35, -1, 5, 0},
+/* 36 */ { 3, s_11_36, 35, 4, 0},
+/* 37 */ { 4, s_11_37, 36, 1, 0},
+/* 38 */ { 3, s_11_38, 35, 4, 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}
+};
+
+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 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'e' };
+static const symbol s_3[] = { 'a' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'a' };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 'a' };
+static const symbol s_8[] = { 'e' };
+static const symbol s_9[] = { 'e' };
+static const symbol s_10[] = { 'a' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'a' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'a' };
+static const symbol s_15[] = { 'e' };
+static const symbol s_16[] = { 'a' };
+static const symbol s_17[] = { 'e' };
+static const symbol s_18[] = { 'a' };
+static const symbol s_19[] = { 'e' };
+static const symbol s_20[] = { 'a' };
+static const symbol s_21[] = { 'e' };
+static const symbol s_22[] = { 'a' };
+static const symbol s_23[] = { 'e' };
+static const symbol s_24[] = { 'a' };
+static const symbol s_25[] = { 'e' };
+static const symbol s_26[] = { 'a' };
+static const symbol s_27[] = { 'e' };
+static const symbol s_28[] = { 'a' };
+static const symbol s_29[] = { 'e' };
+static const symbol s_30[] = { 'a' };
+static const symbol s_31[] = { 'e' };
+static const symbol s_32[] = { 'a' };
+static const symbol s_33[] = { 'e' };
+static const symbol s_34[] = { 'a' };
+static const symbol s_35[] = { 'e' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[0] = z->l;
+ { int c1 = z->c; /* or, line 51 */
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab1;
+ if (in_grouping_U(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;
+ if (!(find_among(z, a_0, 8))) goto lab3; /* among, line 49 */
+ goto lab2;
+ lab3:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* next, line 49 */
+ }
+ }
+ lab2:
+ z->I[0] = z->c; /* setmark p1, line 50 */
+ goto lab0;
+ lab1:
+ z->c = c1;
+ if (out_grouping_U(z, g_v, 97, 252, 0)) return 0;
+ { /* gopast */ /* grouping v, line 53 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c; /* setmark p1, line 53 */
+ }
+lab0:
+ return 1;
+}
+
+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) {
+ 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;
+ among_var = find_among_b(z, a_1, 2); /* substring, line 61 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 61 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 61 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_double(struct SN_env * z) {
+ { int m_test = 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;
+ if (!(find_among_b(z, a_2, 23))) return 0; /* among, line 68 */
+ z->c = z->l - m_test;
+ }
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 73 */
+ }
+ z->ket = z->c; /* [, line 73 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 1);
+ if (ret < 0) return 0;
+ z->c = ret; /* hop, line 73 */
+ }
+ z->bra = z->c; /* ], line 73 */
+ { int ret = slice_del(z); /* delete, line 73 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_instrum(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c; /* [, line 77 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
+ among_var = find_among_b(z, a_3, 2); /* substring, line 77 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 77 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 77 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 78 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 79 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ { int ret = slice_del(z); /* delete, line 81 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret == 0) return 0; /* call undouble, line 82 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_case(struct SN_env * z) {
+ 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);
+ if (ret == 0) return 0; /* call R1, line 87 */
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z); /* delete, line 111 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_v_ending(z);
+ if (ret == 0) return 0; /* call v_ending, line 112 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_5, 3); /* substring, line 116 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 116 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 116 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 119 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_6, 6); /* substring, line 124 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 124 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 124 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 125 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z); /* delete, line 126 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 127 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 128 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_factive(struct SN_env * z) {
+ int among_var;
+ 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;
+ among_var = find_among_b(z, a_7, 2); /* substring, line 133 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 133 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 133 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 134 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_double(z);
+ if (ret == 0) return 0; /* call double, line 135 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ { int ret = slice_del(z); /* delete, line 137 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret == 0) return 0; /* call undouble, line 138 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_8, 7); /* substring, line 142 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 142 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 142 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 143 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 144 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z); /* delete, line 145 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 146 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_del(z); /* delete, line 147 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z); /* delete, line 148 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_del(z); /* delete, line 149 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_9, 12); /* substring, line 154 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 154 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 154 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 155 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 156 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 157 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 158 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 159 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 160 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_del(z); /* delete, line 161 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 162 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_del(z); /* delete, line 163 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 168 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 168 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 169 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_14); /* <-, line 170 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 171 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 172 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_16); /* <-, line 173 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_17); /* <-, line 174 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_del(z); /* delete, line 175 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_del(z); /* delete, line 176 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_del(z); /* delete, line 177 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_18); /* <-, line 178 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 1, s_19); /* <-, line 179 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_del(z); /* delete, line 180 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_del(z); /* delete, line 181 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 1, s_20); /* <-, line 182 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 1, s_21); /* <-, line 183 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_del(z); /* delete, line 184 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_del(z); /* delete, line 185 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_del(z); /* delete, line 186 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 1, s_22); /* <-, line 187 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 1, s_23); /* <-, line 188 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_11, 42); /* substring, line 193 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 193 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 193 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 194 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_24); /* <-, line 195 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_25); /* <-, line 196 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z); /* delete, line 197 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_del(z); /* delete, line 198 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z); /* delete, line 199 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_26); /* <-, line 200 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_27); /* <-, line 201 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_del(z); /* delete, line 202 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_del(z); /* delete, line 203 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_del(z); /* delete, line 204 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 1, s_28); /* <-, line 205 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 1, s_29); /* <-, line 206 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_del(z); /* delete, line 207 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_del(z); /* delete, line 208 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_del(z); /* delete, line 209 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_del(z); /* delete, line 210 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 1, s_30); /* <-, line 211 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 1, s_31); /* <-, line 212 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_del(z); /* delete, line 214 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_del(z); /* delete, line 215 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 1, s_32); /* <-, line 216 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 1, s_33); /* <-, line 217 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_del(z); /* delete, line 218 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_del(z); /* delete, line 219 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_del(z); /* delete, line 220 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 1, s_34); /* <-, line 221 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 1, s_35); /* <-, line 222 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_del(z); /* delete, line 223 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int hungarian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c; /* do, line 229 */
+ { int ret = r_mark_regions(z);
+ if (ret == 0) goto lab0; /* call mark_regions, line 229 */
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l; /* backwards, line 230 */
+
+ { int m2 = z->l - z->c; (void)m2; /* do, line 231 */
+ { int ret = r_instrum(z);
+ if (ret == 0) goto lab1; /* call instrum, line 231 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3; /* do, line 232 */
+ { int ret = r_case(z);
+ if (ret == 0) goto lab2; /* call case, line 232 */
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4; /* do, line 233 */
+ { int ret = r_case_special(z);
+ if (ret == 0) goto lab3; /* call case_special, line 233 */
+ if (ret < 0) return ret;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5; /* do, line 234 */
+ { int ret = r_case_other(z);
+ if (ret == 0) goto lab4; /* call case_other, line 234 */
+ if (ret < 0) return ret;
+ }
+ lab4:
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6; /* do, line 235 */
+ { int ret = r_factive(z);
+ if (ret == 0) goto lab5; /* call factive, line 235 */
+ if (ret < 0) return ret;
+ }
+ lab5:
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7; /* do, line 236 */
+ { int ret = r_owned(z);
+ if (ret == 0) goto lab6; /* call owned, line 236 */
+ if (ret < 0) return ret;
+ }
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8; /* do, line 237 */
+ { int ret = r_sing_owner(z);
+ if (ret == 0) goto lab7; /* call sing_owner, line 237 */
+ if (ret < 0) return ret;
+ }
+ lab7:
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9; /* do, line 238 */
+ { int ret = r_plur_owner(z);
+ if (ret == 0) goto lab8; /* call plur_owner, line 238 */
+ if (ret < 0) return ret;
+ }
+ lab8:
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10; /* do, line 239 */
+ { int ret = r_plural(z);
+ if (ret == 0) goto lab9; /* call plural, line 239 */
+ if (ret < 0) return ret;
+ }
+ lab9:
+ z->c = z->l - m10;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); }
+
+extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/libstemmer_c/src_c/stem_UTF_8_hungarian.h b/libstemmer_c/src_c/stem_UTF_8_hungarian.h
new file mode 100644
index 0000000..d81bd23
--- /dev/null
+++ b/libstemmer_c/src_c/stem_UTF_8_hungarian.h
@@ -0,0 +1,16 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * hungarian_UTF_8_create_env(void);
+extern void hungarian_UTF_8_close_env(struct SN_env * z);
+
+extern int hungarian_UTF_8_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/libstemmer_c/src_c/stem_UTF_8_italian.c b/libstemmer_c/src_c/stem_UTF_8_italian.c
index 5639b1c..7bb0511 100644
--- a/libstemmer_c/src_c/stem_UTF_8_italian.c
+++ b/libstemmer_c/src_c/stem_UTF_8_italian.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int italian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_vowel_suffix(struct SN_env * z);
static int r_verb_suffix(struct SN_env * z);
static int r_standard_suffix(struct SN_env * z);
@@ -14,18 +20,26 @@ static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * italian_UTF_8_create_env(void);
extern void italian_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_1[2] = { 'q', 'u' };
-static symbol s_0_2[2] = { 0xC3, 0xA1 };
-static symbol s_0_3[2] = { 0xC3, 0xA9 };
-static symbol s_0_4[2] = { 0xC3, 0xAD };
-static symbol s_0_5[2] = { 0xC3, 0xB3 };
-static symbol s_0_6[2] = { 0xC3, 0xBA };
-static struct among a_0[7] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 'q', 'u' };
+static const symbol s_0_2[2] = { 0xC3, 0xA1 };
+static const symbol s_0_3[2] = { 0xC3, 0xA9 };
+static const symbol s_0_4[2] = { 0xC3, 0xAD };
+static const symbol s_0_5[2] = { 0xC3, 0xB3 };
+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},
@@ -36,55 +50,55 @@ static struct among a_0[7] =
/* 6 */ { 2, s_0_6, 0, 5, 0}
};
-static symbol s_1_1[1] = { 'I' };
-static symbol s_1_2[1] = { 'U' };
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[2] = { 'l', 'a' };
-static symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
-static symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
-static symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
-static symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
-static symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
-static symbol s_2_6[2] = { 'l', 'e' };
-static symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
-static symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
-static symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
-static symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
-static symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
-static symbol s_2_12[2] = { 'n', 'e' };
-static symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
-static symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
-static symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
-static symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
-static symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
-static symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
-static symbol s_2_19[2] = { 'c', 'i' };
-static symbol s_2_20[2] = { 'l', 'i' };
-static symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
-static symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
-static symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
-static symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
-static symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
-static symbol s_2_26[3] = { 'g', 'l', 'i' };
-static symbol s_2_27[2] = { 'm', 'i' };
-static symbol s_2_28[2] = { 's', 'i' };
-static symbol s_2_29[2] = { 't', 'i' };
-static symbol s_2_30[2] = { 'v', 'i' };
-static symbol s_2_31[2] = { 'l', 'o' };
-static symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
-static symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
-static symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
-static symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
-static symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
+static const symbol s_2_0[2] = { 'l', 'a' };
+static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
+static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
+static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
+static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
+static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
+static const symbol s_2_6[2] = { 'l', 'e' };
+static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
+static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
+static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
+static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
+static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
+static const symbol s_2_12[2] = { 'n', 'e' };
+static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
+static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
+static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
+static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
+static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
+static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
+static const symbol s_2_19[2] = { 'c', 'i' };
+static const symbol s_2_20[2] = { 'l', 'i' };
+static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
+static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
+static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
+static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
+static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
+static const symbol s_2_26[3] = { 'g', 'l', 'i' };
+static const symbol s_2_27[2] = { 'm', 'i' };
+static const symbol s_2_28[2] = { 's', 'i' };
+static const symbol s_2_29[2] = { 't', 'i' };
+static const symbol s_2_30[2] = { 'v', 'i' };
+static const symbol s_2_31[2] = { 'l', 'o' };
+static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
+static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
+static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
+static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
+static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
-static struct among a_2[37] =
+static const struct among a_2[37] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 4, s_2_1, 0, -1, 0},
@@ -125,13 +139,13 @@ static struct among a_2[37] =
/* 36 */ { 4, s_2_36, 31, -1, 0}
};
-static symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
-static symbol s_3_2[2] = { 'a', 'r' };
-static symbol s_3_3[2] = { 'e', 'r' };
-static symbol s_3_4[2] = { 'i', 'r' };
+static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_3_2[2] = { 'a', 'r' };
+static const symbol s_3_3[2] = { 'e', 'r' };
+static const symbol s_3_4[2] = { 'i', 'r' };
-static struct among a_3[5] =
+static const struct among a_3[5] =
{
/* 0 */ { 4, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0},
@@ -140,12 +154,12 @@ static struct among a_3[5] =
/* 4 */ { 2, s_3_4, -1, 2, 0}
};
-static symbol s_4_0[2] = { 'i', 'c' };
-static symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_4_2[2] = { 'o', 's' };
-static symbol s_4_3[2] = { 'i', 'v' };
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'o', 's' };
+static const symbol s_4_3[2] = { 'i', 'v' };
-static struct among a_4[4] =
+static const struct among a_4[4] =
{
/* 0 */ { 2, s_4_0, -1, -1, 0},
/* 1 */ { 4, s_4_1, -1, -1, 0},
@@ -153,70 +167,70 @@ static struct among a_4[4] =
/* 3 */ { 2, s_4_3, -1, 1, 0}
};
-static symbol s_5_0[2] = { 'i', 'c' };
-static symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_5_2[2] = { 'i', 'v' };
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
-static struct among a_5[3] =
+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}
};
-static symbol s_6_0[3] = { 'i', 'c', 'a' };
-static symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
-static symbol s_6_2[3] = { 'o', 's', 'a' };
-static symbol s_6_3[4] = { 'i', 's', 't', 'a' };
-static symbol s_6_4[3] = { 'i', 'v', 'a' };
-static symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
-static symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
-static symbol s_6_7[3] = { 'i', 'c', 'e' };
-static symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
-static symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
-static symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
-static symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
-static symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
-static symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
-static symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
-static symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
-static symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
-static symbol s_6_17[3] = { 'o', 's', 'e' };
-static symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
-static symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_21[4] = { 'i', 's', 't', 'e' };
-static symbol s_6_22[3] = { 'i', 'v', 'e' };
-static symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
-static symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
-static symbol s_6_25[3] = { 'i', 'c', 'i' };
-static symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
-static symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
-static symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
-static symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
-static symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
-static symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
-static symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
-static symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
-static symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
-static symbol s_6_35[3] = { 'o', 's', 'i' };
-static symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
-static symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
-static symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
-static symbol s_6_39[4] = { 'i', 's', 't', 'i' };
-static symbol s_6_40[3] = { 'i', 'v', 'i' };
-static symbol s_6_41[3] = { 'i', 'c', 'o' };
-static symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
-static symbol s_6_43[3] = { 'o', 's', 'o' };
-static symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
-static symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
-static symbol s_6_46[3] = { 'i', 'v', 'o' };
-static symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 };
-static symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 };
-static symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 };
-static symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC };
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_6_2[3] = { 'o', 's', 'a' };
+static const symbol s_6_3[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_4[3] = { 'i', 'v', 'a' };
+static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
+static const symbol s_6_7[3] = { 'i', 'c', 'e' };
+static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
+static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
+static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
+static const symbol s_6_17[3] = { 'o', 's', 'e' };
+static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_22[3] = { 'i', 'v', 'e' };
+static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
+static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
+static const symbol s_6_25[3] = { 'i', 'c', 'i' };
+static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
+static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
+static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
+static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
+static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_6_35[3] = { 'o', 's', 'i' };
+static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_39[4] = { 'i', 's', 't', 'i' };
+static const symbol s_6_40[3] = { 'i', 'v', 'i' };
+static const symbol s_6_41[3] = { 'i', 'c', 'o' };
+static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_43[3] = { 'o', 's', 'o' };
+static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_46[3] = { 'i', 'v', 'o' };
+static const symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 };
+static const symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 };
+static const symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 };
+static const symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC };
-static struct among a_6[51] =
+static const struct among a_6[51] =
{
/* 0 */ { 3, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, -1, 3, 0},
@@ -271,95 +285,95 @@ static struct among a_6[51] =
/* 50 */ { 5, s_6_50, -1, 1, 0}
};
-static symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
-static symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
-static symbol s_7_2[3] = { 'a', 't', 'a' };
-static symbol s_7_3[3] = { 'i', 't', 'a' };
-static symbol s_7_4[3] = { 'u', 't', 'a' };
-static symbol s_7_5[3] = { 'a', 'v', 'a' };
-static symbol s_7_6[3] = { 'e', 'v', 'a' };
-static symbol s_7_7[3] = { 'i', 'v', 'a' };
-static symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
-static symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
-static symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
-static symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
-static symbol s_7_12[3] = { 'a', 'r', 'e' };
-static symbol s_7_13[3] = { 'e', 'r', 'e' };
-static symbol s_7_14[3] = { 'i', 'r', 'e' };
-static symbol s_7_15[4] = { 'a', 's', 's', 'e' };
-static symbol s_7_16[3] = { 'a', 't', 'e' };
-static symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
-static symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
-static symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
-static symbol s_7_20[3] = { 'e', 't', 'e' };
-static symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
-static symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
-static symbol s_7_23[3] = { 'i', 't', 'e' };
-static symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
-static symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
-static symbol s_7_26[3] = { 'u', 't', 'e' };
-static symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
-static symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
-static symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
-static symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
-static symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
-static symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
-static symbol s_7_33[4] = { 'a', 's', 's', 'i' };
-static symbol s_7_34[3] = { 'a', 't', 'i' };
-static symbol s_7_35[3] = { 'i', 't', 'i' };
-static symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
-static symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
-static symbol s_7_38[3] = { 'u', 't', 'i' };
-static symbol s_7_39[3] = { 'a', 'v', 'i' };
-static symbol s_7_40[3] = { 'e', 'v', 'i' };
-static symbol s_7_41[3] = { 'i', 'v', 'i' };
-static symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
-static symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
-static symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
-static symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
-static symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
-static symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
-static symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
-static symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
-static symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
-static symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
-static symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
-static symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
-static symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
-static symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
-static symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
-static symbol s_7_58[3] = { 'a', 'n', 'o' };
-static symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
-static symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
-static symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
-static symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
-static symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
-static symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
-static symbol s_7_65[3] = { 'o', 'n', 'o' };
-static symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
-static symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
-static symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
-static symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
-static symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
-static symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
-static symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
-static symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
-static symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
-static symbol s_7_75[3] = { 'a', 't', 'o' };
-static symbol s_7_76[3] = { 'i', 't', 'o' };
-static symbol s_7_77[3] = { 'u', 't', 'o' };
-static symbol s_7_78[3] = { 'a', 'v', 'o' };
-static symbol s_7_79[3] = { 'e', 'v', 'o' };
-static symbol s_7_80[3] = { 'i', 'v', 'o' };
-static symbol s_7_81[2] = { 'a', 'r' };
-static symbol s_7_82[2] = { 'i', 'r' };
-static symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 };
-static symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 };
-static symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 };
-static symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 };
+static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
+static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
+static const symbol s_7_2[3] = { 'a', 't', 'a' };
+static const symbol s_7_3[3] = { 'i', 't', 'a' };
+static const symbol s_7_4[3] = { 'u', 't', 'a' };
+static const symbol s_7_5[3] = { 'a', 'v', 'a' };
+static const symbol s_7_6[3] = { 'e', 'v', 'a' };
+static const symbol s_7_7[3] = { 'i', 'v', 'a' };
+static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
+static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_7_12[3] = { 'a', 'r', 'e' };
+static const symbol s_7_13[3] = { 'e', 'r', 'e' };
+static const symbol s_7_14[3] = { 'i', 'r', 'e' };
+static const symbol s_7_15[4] = { 'a', 's', 's', 'e' };
+static const symbol s_7_16[3] = { 'a', 't', 'e' };
+static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
+static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
+static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
+static const symbol s_7_20[3] = { 'e', 't', 'e' };
+static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
+static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
+static const symbol s_7_23[3] = { 'i', 't', 'e' };
+static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_26[3] = { 'u', 't', 'e' };
+static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
+static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
+static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_7_33[4] = { 'a', 's', 's', 'i' };
+static const symbol s_7_34[3] = { 'a', 't', 'i' };
+static const symbol s_7_35[3] = { 'i', 't', 'i' };
+static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_38[3] = { 'u', 't', 'i' };
+static const symbol s_7_39[3] = { 'a', 'v', 'i' };
+static const symbol s_7_40[3] = { 'e', 'v', 'i' };
+static const symbol s_7_41[3] = { 'i', 'v', 'i' };
+static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
+static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
+static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
+static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
+static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
+static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
+static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
+static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
+static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
+static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
+static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
+static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
+static const symbol s_7_58[3] = { 'a', 'n', 'o' };
+static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
+static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
+static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
+static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_65[3] = { 'o', 'n', 'o' };
+static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
+static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
+static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
+static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
+static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_75[3] = { 'a', 't', 'o' };
+static const symbol s_7_76[3] = { 'i', 't', 'o' };
+static const symbol s_7_77[3] = { 'u', 't', 'o' };
+static const symbol s_7_78[3] = { 'a', 'v', 'o' };
+static const symbol s_7_79[3] = { 'e', 'v', 'o' };
+static const symbol s_7_80[3] = { 'i', 'v', 'o' };
+static const symbol s_7_81[2] = { 'a', 'r' };
+static const symbol s_7_82[2] = { 'i', 'r' };
+static const symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 };
+static const symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 };
+static const symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 };
+static const symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 };
-static struct among a_7[87] =
+static const struct among a_7[87] =
{
/* 0 */ { 4, s_7_0, -1, 1, 0},
/* 1 */ { 4, s_7_1, -1, 1, 0},
@@ -450,40 +464,40 @@ static struct among a_7[87] =
/* 86 */ { 4, s_7_86, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
+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 };
-static unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
+static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
-static unsigned char g_CG[] = { 17 };
+static const unsigned char g_CG[] = { 17 };
-static symbol s_0[] = { 0xC3, 0xA0 };
-static symbol s_1[] = { 0xC3, 0xA8 };
-static symbol s_2[] = { 0xC3, 0xAC };
-static symbol s_3[] = { 0xC3, 0xB2 };
-static symbol s_4[] = { 0xC3, 0xB9 };
-static symbol s_5[] = { 'q', 'U' };
-static symbol s_6[] = { 'u' };
-static symbol s_7[] = { 'U' };
-static symbol s_8[] = { 'i' };
-static symbol s_9[] = { 'I' };
-static symbol s_10[] = { 'i' };
-static symbol s_11[] = { 'u' };
-static symbol s_12[] = { 'e' };
-static symbol s_13[] = { 'i', 'c' };
-static symbol s_14[] = { 'l', 'o', 'g' };
-static symbol s_15[] = { 'u' };
-static symbol s_16[] = { 'e', 'n', 't', 'e' };
-static symbol s_17[] = { 'a', 't' };
-static symbol s_18[] = { 'a', 't' };
-static symbol s_19[] = { 'i', 'c' };
-static symbol s_20[] = { 'i' };
-static symbol s_21[] = { 'h' };
+static const symbol s_0[] = { 0xC3, 0xA0 };
+static const symbol s_1[] = { 0xC3, 0xA8 };
+static const symbol s_2[] = { 0xC3, 0xAC };
+static const symbol s_3[] = { 0xC3, 0xB2 };
+static const symbol s_4[] = { 0xC3, 0xB9 };
+static const symbol s_5[] = { 'q', 'U' };
+static const symbol s_6[] = { 'u' };
+static const symbol s_7[] = { 'U' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'I' };
+static const symbol s_10[] = { 'i' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'e' };
+static const symbol s_13[] = { 'i', 'c' };
+static const symbol s_14[] = { 'l', 'o', 'g' };
+static const symbol s_15[] = { 'u' };
+static const symbol s_16[] = { 'e', 'n', 't', 'e' };
+static const symbol s_17[] = { 'a', 't' };
+static const symbol s_18[] = { 'a', 't' };
+static const symbol s_19[] = { 'i', 'c' };
+static const symbol s_20[] = { 'i' };
+static const symbol s_21[] = { 'h' };
static int r_prelude(struct SN_env * z) {
int among_var;
{ int c_test = z->c; /* test, line 35 */
while(1) { /* repeat, line 35 */
- int c = z->c;
+ int c1 = z->c;
z->bra = z->c; /* [, line 36 */
among_var = find_among(z, a_0, 7); /* substring, line 36 */
if (!(among_var)) goto lab0;
@@ -491,93 +505,85 @@ static int r_prelude(struct SN_env * z) {
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 38 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 38 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 2, s_2); /* <-, line 39 */
+ { int ret = slice_from_s(z, 2, s_2); /* <-, line 39 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 2, s_3); /* <-, line 40 */
+ { int ret = slice_from_s(z, 2, s_3); /* <-, line 40 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 2, s_4); /* <-, line 41 */
+ { int ret = slice_from_s(z, 2, s_4); /* <-, line 41 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
+ { int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */
if (ret < 0) return ret;
}
break;
case 7:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 43 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 43 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
z->c = c_test;
}
while(1) { /* repeat, line 46 */
- int c = z->c;
+ int c2 = z->c;
while(1) { /* goto, line 46 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
+ int c3 = z->c;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
z->bra = z->c; /* [, line 47 */
- { int c = z->c; /* or, line 47 */
+ { int c4 = z->c; /* or, line 47 */
if (!(eq_s(z, 1, s_6))) goto lab4;
z->ket = z->c; /* ], line 47 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab4;
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 47 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
- z->c = c;
+ z->c = c4;
if (!(eq_s(z, 1, s_8))) goto lab2;
z->ket = z->c; /* ], line 48 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
- { int ret;
- ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
+ { int ret = slice_from_s(z, 1, s_9); /* <-, line 48 */
if (ret < 0) return ret;
}
}
lab3:
- z->c = c;
+ z->c = c3;
break;
lab2:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab1;
- z->c = c; /* goto, line 46 */
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* goto, line 46 */
}
}
continue;
lab1:
- z->c = c;
+ z->c = c2;
break;
}
return 1;
@@ -587,108 +593,80 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 58 */
- { int c = z->c; /* or, line 60 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
- { int c = z->c; /* or, line 59 */
- if (!(out_grouping_U(z, g_v, 97, 249))) goto lab4;
- while(1) { /* gopast, line 59 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab5;
- break;
- lab5:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 59 */
- }
+ { 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;
+ { int c3 = z->c; /* or, line 59 */
+ if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 59 */
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
goto lab3;
lab4:
- z->c = c;
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab2;
- while(1) { /* gopast, line 59 */
- if (!(out_grouping_U(z, g_v, 97, 249))) goto lab6;
- break;
- lab6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab2;
- z->c = c; /* gopast, line 59 */
- }
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
+ { /* gopast */ /* non v, line 59 */
+ int ret = in_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
}
}
lab3:
goto lab1;
lab2:
- z->c = c;
- if (!(out_grouping_U(z, g_v, 97, 249))) goto lab0;
- { int c = z->c; /* or, line 61 */
- if (!(out_grouping_U(z, g_v, 97, 249))) goto lab8;
- while(1) { /* gopast, line 61 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab9;
- break;
- lab9:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab8;
- z->c = c; /* gopast, line 61 */
- }
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 61 */
+ if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 61 */
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
}
- goto lab7;
- lab8:
- z->c = c;
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab0;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 61 */
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 61 */
}
}
- lab7:
+ lab5:
;
}
lab1:
z->I[0] = z->c; /* setmark pV, line 62 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 64 */
- while(1) { /* gopast, line 65 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab11;
- break;
- lab11:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 65 */
- }
+ { int c5 = z->c; /* do, line 64 */
+ { /* gopast */ /* grouping v, line 65 */
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 65 */
- if (!(out_grouping_U(z, g_v, 97, 249))) goto lab12;
- break;
- lab12:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 65 */
- }
+ { /* 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 */
- while(1) { /* gopast, line 66 */
- if (!(in_grouping_U(z, g_v, 97, 249))) goto lab13;
- break;
- lab13:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 66 */
- }
+ { /* gopast */ /* grouping v, line 66 */
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 66 */
- if (!(out_grouping_U(z, g_v, 97, 249))) goto lab14;
- break;
- lab14:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 66 */
- }
+ { /* 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 */
- lab10:
- z->c = c;
+ lab7:
+ z->c = c5;
}
return 1;
}
@@ -696,35 +674,34 @@ static int r_mark_regions(struct SN_env * z) {
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 70 */
- int c = z->c;
+ 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
among_var = find_among(z, a_1, 3); /* substring, line 72 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 72 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
+ { int ret = slice_from_s(z, 1, s_11); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 75 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 75 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -748,8 +725,10 @@ static int r_R2(struct SN_env * z) {
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;
if (!(find_among_b(z, a_2, 37))) return 0; /* substring, line 87 */
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_var = find_among_b(z, a_3, 5); /* among, line 97 */
if (!(among_var)) return 0;
{ int ret = r_RV(z);
@@ -759,14 +738,12 @@ static int r_attached_pronoun(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 98 */
+ { int ret = slice_del(z); /* delete, line 98 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
+ { int ret = slice_from_s(z, 1, s_12); /* <-, line 99 */
if (ret < 0) return ret;
}
break;
@@ -787,8 +764,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 111 */
+ { int ret = slice_del(z); /* delete, line 111 */
if (ret < 0) return ret;
}
break;
@@ -797,20 +773,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 113 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 113 */
+ { int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 114 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 114 */
z->ket = z->c; /* [, line 114 */
- if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 114 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 114 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 114 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 114 */
+ { int ret = slice_del(z); /* delete, line 114 */
if (ret < 0) return ret;
}
lab0:
@@ -822,8 +796,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 117 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 117 */
if (ret < 0) return ret;
}
break;
@@ -832,8 +805,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
@@ -842,8 +814,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 121 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
+ { int ret = slice_from_s(z, 4, s_16); /* <-, line 121 */
if (ret < 0) return ret;
}
break;
@@ -852,8 +823,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 123 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 123 */
+ { int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
break;
@@ -862,35 +832,33 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 125 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 125 */
+ { int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 126 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab1; }
among_var = find_among_b(z, a_4, 4); /* substring, line 127 */
- if (!(among_var)) { z->c = z->l - m; goto lab1; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 127 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 127 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 127 */
+ { int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab1; }
+ case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
z->ket = z->c; /* [, line 128 */
- if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m; goto lab1; }
+ if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 128 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 128 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 128 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 128 */
+ { int ret = slice_del(z); /* delete, line 128 */
if (ret < 0) return ret;
}
break;
@@ -904,24 +872,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 134 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 135 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab2; }
among_var = find_among_b(z, a_5, 3); /* substring, line 136 */
- if (!(among_var)) { z->c = z->l - m; goto lab2; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab2; }
+ case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 137 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 137 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 137 */
+ { int ret = slice_del(z); /* delete, line 137 */
if (ret < 0) return ret;
}
break;
@@ -935,31 +902,28 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 142 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 142 */
+ { int ret = slice_del(z); /* delete, line 142 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 143 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 143 */
z->ket = z->c; /* [, line 143 */
- if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 143 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 143 */
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 143 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 143 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 143 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
lab3:
@@ -972,68 +936,64 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 148 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 148 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 148 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 149 */
among_var = find_among_b(z, a_7, 87); /* substring, line 149 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 149 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 163 */
+ { int ret = slice_del(z); /* delete, line 163 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_vowel_suffix(struct SN_env * z) {
- { int m = z->l - z->c; (void) m; /* try, line 171 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 171 */
z->ket = z->c; /* [, line 172 */
- if (!(in_grouping_b_U(z, g_AEIO, 97, 242))) { z->c = z->l - m; goto lab0; }
+ if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 172 */
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 172 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 172 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 172 */
+ { int ret = slice_del(z); /* delete, line 172 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 173 */
- if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 173 */
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 173 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 173 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 173 */
+ { int ret = slice_del(z); /* delete, line 173 */
if (ret < 0) return ret;
}
lab0:
;
}
- { int m = z->l - z->c; (void) m; /* try, line 175 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 175 */
z->ket = z->c; /* [, line 176 */
- if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab1; }
+ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 176 */
- if (!(in_grouping_b_U(z, g_CG, 99, 103))) { z->c = z->l - m; goto lab1; }
+ if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m_keep; goto lab1; }
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call RV, line 176 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call RV, line 176 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 176 */
+ { int ret = slice_del(z); /* delete, line 176 */
if (ret < 0) return ret;
}
lab1:
@@ -1043,41 +1003,41 @@ static int r_vowel_suffix(struct SN_env * z) {
}
extern int italian_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 182 */
+ { int c1 = z->c; /* do, line 182 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 182 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 183 */
+ { int c2 = z->c; /* do, line 183 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 183 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 184 */
- { int m = z->l - z->c; (void) m; /* do, line 185 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 185 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab2; /* call attached_pronoun, line 185 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 186 */
- { int m = z->l - z->c; (void) m; /* or, line 186 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 186 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 186 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab5; /* call standard_suffix, line 186 */
if (ret < 0) return ret;
}
goto lab4;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m5;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab3; /* call verb_suffix, line 186 */
if (ret < 0) return ret;
@@ -1085,29 +1045,29 @@ extern int italian_UTF_8_stem(struct SN_env * z) {
}
lab4:
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
- { int m = z->l - z->c; (void) m; /* do, line 187 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 187 */
{ int ret = r_vowel_suffix(z);
if (ret == 0) goto lab6; /* call vowel_suffix, line 187 */
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
}
z->c = z->lb;
- { int c = z->c; /* do, line 189 */
+ { int c7 = z->c; /* do, line 189 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 189 */
if (ret < 0) return ret;
}
lab7:
- z->c = c;
+ z->c = c7;
}
return 1;
}
extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_norwegian.c b/libstemmer_c/src_c/stem_UTF_8_norwegian.c
index 6a5ea99..6a7b5f4 100644
--- a/libstemmer_c/src_c/stem_UTF_8_norwegian.c
+++ b/libstemmer_c/src_c/stem_UTF_8_norwegian.c
@@ -3,46 +3,60 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int norwegian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_other_suffix(struct SN_env * z);
static int r_consonant_pair(struct SN_env * z);
static int r_main_suffix(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * norwegian_UTF_8_create_env(void);
extern void norwegian_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[1] = { 'a' };
-static symbol s_0_1[1] = { 'e' };
-static symbol s_0_2[3] = { 'e', 'd', 'e' };
-static symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
-static symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
-static symbol s_0_5[3] = { 'a', 'n', 'e' };
-static symbol s_0_6[3] = { 'e', 'n', 'e' };
-static symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
-static symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
-static symbol s_0_9[2] = { 'e', 'n' };
-static symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
-static symbol s_0_11[2] = { 'a', 'r' };
-static symbol s_0_12[2] = { 'e', 'r' };
-static symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
-static symbol s_0_14[1] = { 's' };
-static symbol s_0_15[2] = { 'a', 's' };
-static symbol s_0_16[2] = { 'e', 's' };
-static symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
-static symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
-static symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
-static symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
-static symbol s_0_21[3] = { 'e', 'n', 's' };
-static symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
-static symbol s_0_23[3] = { 'e', 'r', 's' };
-static symbol s_0_24[3] = { 'e', 't', 's' };
-static symbol s_0_25[2] = { 'e', 't' };
-static symbol s_0_26[3] = { 'h', 'e', 't' };
-static symbol s_0_27[3] = { 'e', 'r', 't' };
-static symbol s_0_28[3] = { 'a', 's', 't' };
-static struct among a_0[29] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[1] = { 'e' };
+static const symbol s_0_2[3] = { 'e', 'd', 'e' };
+static const symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_5[3] = { 'a', 'n', 'e' };
+static const symbol s_0_6[3] = { 'e', 'n', 'e' };
+static const symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
+static const symbol s_0_9[2] = { 'e', 'n' };
+static const symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_11[2] = { 'a', 'r' };
+static const symbol s_0_12[2] = { 'e', 'r' };
+static const symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_14[1] = { 's' };
+static const symbol s_0_15[2] = { 'a', 's' };
+static const symbol s_0_16[2] = { 'e', 's' };
+static const symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
+static const symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
+static const symbol s_0_21[3] = { 'e', 'n', 's' };
+static const symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_23[3] = { 'e', 'r', 's' };
+static const symbol s_0_24[3] = { 'e', 't', 's' };
+static const symbol s_0_25[2] = { 'e', 't' };
+static const symbol s_0_26[3] = { 'h', 'e', 't' };
+static const symbol s_0_27[3] = { 'e', 'r', 't' };
+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},
@@ -75,28 +89,28 @@ static struct among a_0[29] =
/* 28 */ { 3, s_0_28, -1, 1, 0}
};
-static symbol s_1_0[2] = { 'd', 't' };
-static symbol s_1_1[2] = { 'v', 't' };
+static const symbol s_1_0[2] = { 'd', 't' };
+static const symbol s_1_1[2] = { 'v', 't' };
-static struct among a_1[2] =
+static const struct among a_1[2] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0}
};
-static symbol s_2_0[3] = { 'l', 'e', 'g' };
-static symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
-static symbol s_2_2[2] = { 'i', 'g' };
-static symbol s_2_3[3] = { 'e', 'i', 'g' };
-static symbol s_2_4[3] = { 'l', 'i', 'g' };
-static symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
-static symbol s_2_6[3] = { 'e', 'l', 's' };
-static symbol s_2_7[3] = { 'l', 'o', 'v' };
-static symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
-static symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
-static symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
+static const symbol s_2_0[3] = { 'l', 'e', 'g' };
+static const symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
+static const symbol s_2_2[2] = { 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'i', 'g' };
+static const symbol s_2_4[3] = { 'l', 'i', 'g' };
+static const symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_6[3] = { 'e', 'l', 's' };
+static const symbol s_2_7[3] = { 'l', 'o', 'v' };
+static const symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
+static const symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
+static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
-static struct among a_2[11] =
+static const struct among a_2[11] =
{
/* 0 */ { 3, s_2_0, -1, 1, 0},
/* 1 */ { 4, s_2_1, 0, 1, 0},
@@ -111,92 +125,75 @@ static struct among a_2[11] =
/* 10 */ { 7, s_2_10, 9, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
+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 };
-static unsigned char g_s_ending[] = { 119, 125, 149, 1 };
+static const unsigned char g_s_ending[] = { 119, 125, 149, 1 };
-static symbol s_0[] = { 'k' };
-static symbol s_1[] = { 'e', 'r' };
+static const symbol s_0[] = { 'k' };
+static const symbol s_1[] = { 'e', 'r' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 30 */
- { int c = skip_utf8(z->p, z->c, 0, z->l, + 3);
- if (c < 0) return 0;
- z->c = c; /* hop, line 30 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+ if (ret < 0) return 0;
+ z->c = ret; /* hop, line 30 */
}
z->I[1] = z->c; /* setmark x, line 30 */
z->c = c_test;
}
- while(1) { /* goto, line 31 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 248))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* goto, line 31 */
- }
- }
- while(1) { /* gopast, line 31 */
- if (!(out_grouping_U(z, g_v, 97, 248))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 31 */
- }
+ if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */
+ { /* gopast */ /* non v, line 31 */
+ 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 lab2;
+ if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
-lab2:
+lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 38 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 38 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 38 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_0, 29); /* substring, line 38 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 38 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 44 */
+ { int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 46 */
- if (!(in_grouping_b_U(z, g_s_ending, 98, 122))) goto lab1;
+ { 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;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
if (!(eq_s_b(z, 1, s_0))) return 0;
- if (!(out_grouping_b_U(z, g_v, 97, 248))) return 0;
+ if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 46 */
+ { int ret = slice_del(z); /* delete, line 46 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 48 */
if (ret < 0) return ret;
}
break;
@@ -206,26 +203,26 @@ static int r_main_suffix(struct SN_env * z) {
static int r_consonant_pair(struct SN_env * z) {
{ int m_test = z->l - z->c; /* test, line 53 */
- { int m3; /* setlimit, line 54 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 54 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 54 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 54 */
- if (!(find_among_b(z, a_1, 2))) { z->lb = m3; return 0; } /* substring, line 54 */
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit; return 0; }
+ if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit; return 0; } /* substring, line 54 */
z->bra = z->c; /* ], line 54 */
- z->lb = m3;
+ z->lb = mlimit;
}
z->c = z->l - m_test;
}
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 59 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 59 */
}
z->bra = z->c; /* ], line 59 */
- { int ret;
- ret = slice_del(z); /* delete, line 59 */
+ { int ret = slice_del(z); /* delete, line 59 */
if (ret < 0) return ret;
}
return 1;
@@ -233,23 +230,23 @@ static int r_consonant_pair(struct SN_env * z) {
static int r_other_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 63 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 63 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 63 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_2, 11); /* substring, line 63 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 63 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 67 */
+ { int ret = slice_del(z); /* delete, line 67 */
if (ret < 0) return ret;
}
break;
@@ -258,39 +255,39 @@ static int r_other_suffix(struct SN_env * z) {
}
extern int norwegian_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 74 */
+ { int c1 = z->c; /* do, line 74 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 74 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 75 */
- { int m = z->l - z->c; (void) m; /* do, line 76 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 76 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 76 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 77 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 77 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 77 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 78 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 78 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 78 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
z->c = z->lb;
return 1;
@@ -298,5 +295,5 @@ extern int norwegian_UTF_8_stem(struct SN_env * z) {
extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
-extern void norwegian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void norwegian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_porter.c b/libstemmer_c/src_c/stem_UTF_8_porter.c
index 1d22e71..0c4813f 100644
--- a/libstemmer_c/src_c/stem_UTF_8_porter.c
+++ b/libstemmer_c/src_c/stem_UTF_8_porter.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int porter_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_Step_5b(struct SN_env * z);
static int r_Step_5a(struct SN_env * z);
static int r_Step_4(struct SN_env * z);
@@ -15,16 +21,24 @@ static int r_Step_1a(struct SN_env * z);
static int r_R2(struct SN_env * z);
static int r_R1(struct SN_env * z);
static int r_shortv(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * porter_UTF_8_create_env(void);
extern void porter_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[1] = { 's' };
-static symbol s_0_1[3] = { 'i', 'e', 's' };
-static symbol s_0_2[4] = { 's', 's', 'e', 's' };
-static symbol s_0_3[2] = { 's', 's' };
-static struct among a_0[4] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 's' };
+static const symbol s_0_1[3] = { 'i', 'e', 's' };
+static const symbol s_0_2[4] = { 's', 's', 'e', 's' };
+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},
@@ -32,20 +46,20 @@ static struct among a_0[4] =
/* 3 */ { 2, s_0_3, 0, -1, 0}
};
-static symbol s_1_1[2] = { 'b', 'b' };
-static symbol s_1_2[2] = { 'd', 'd' };
-static symbol s_1_3[2] = { 'f', 'f' };
-static symbol s_1_4[2] = { 'g', 'g' };
-static symbol s_1_5[2] = { 'b', 'l' };
-static symbol s_1_6[2] = { 'm', 'm' };
-static symbol s_1_7[2] = { 'n', 'n' };
-static symbol s_1_8[2] = { 'p', 'p' };
-static symbol s_1_9[2] = { 'r', 'r' };
-static symbol s_1_10[2] = { 'a', 't' };
-static symbol s_1_11[2] = { 't', 't' };
-static symbol s_1_12[2] = { 'i', 'z' };
-
-static struct among a_1[13] =
+static const symbol s_1_1[2] = { 'b', 'b' };
+static const symbol s_1_2[2] = { 'd', 'd' };
+static const symbol s_1_3[2] = { 'f', 'f' };
+static const symbol s_1_4[2] = { 'g', 'g' };
+static const symbol s_1_5[2] = { 'b', 'l' };
+static const symbol s_1_6[2] = { 'm', 'm' };
+static const symbol s_1_7[2] = { 'n', 'n' };
+static const symbol s_1_8[2] = { 'p', 'p' };
+static const symbol s_1_9[2] = { 'r', 'r' };
+static const symbol s_1_10[2] = { 'a', 't' };
+static const symbol s_1_11[2] = { 't', 't' };
+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},
@@ -62,39 +76,39 @@ static struct among a_1[13] =
/* 12 */ { 2, s_1_12, 0, 1, 0}
};
-static symbol s_2_0[2] = { 'e', 'd' };
-static symbol s_2_1[3] = { 'e', 'e', 'd' };
-static symbol s_2_2[3] = { 'i', 'n', 'g' };
+static const symbol s_2_0[2] = { 'e', 'd' };
+static const symbol s_2_1[3] = { 'e', 'e', 'd' };
+static const symbol s_2_2[3] = { 'i', 'n', 'g' };
-static struct among a_2[3] =
+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}
};
-static symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
-static symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
-static symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
-static symbol s_3_3[3] = { 'e', 'l', 'i' };
-static symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
-static symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
-static symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
-static symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
-static symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
-static symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
-static symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
-static symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
-static symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
-static symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
-static symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
-static symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
-static symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
-static symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
-static symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
-
-static struct among a_3[20] =
+static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_3_3[3] = { 'e', 'l', 'i' };
+static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+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},
@@ -118,15 +132,15 @@ static struct among a_3[20] =
/* 19 */ { 7, s_3_19, -1, 12, 0}
};
-static symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
-static symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
-static symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
-static symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
-static symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
-static symbol s_4_5[3] = { 'f', 'u', 'l' };
-static symbol s_4_6[4] = { 'n', 'e', 's', 's' };
+static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_4_5[3] = { 'f', 'u', 'l' };
+static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
-static struct among a_4[7] =
+static const struct among a_4[7] =
{
/* 0 */ { 5, s_4_0, -1, 2, 0},
/* 1 */ { 5, s_4_1, -1, 3, 0},
@@ -137,27 +151,27 @@ static struct among a_4[7] =
/* 6 */ { 4, s_4_6, -1, 3, 0}
};
-static symbol s_5_0[2] = { 'i', 'c' };
-static symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
-static symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
-static symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_5_5[3] = { 'a', 't', 'e' };
-static symbol s_5_6[3] = { 'i', 'v', 'e' };
-static symbol s_5_7[3] = { 'i', 'z', 'e' };
-static symbol s_5_8[3] = { 'i', 't', 'i' };
-static symbol s_5_9[2] = { 'a', 'l' };
-static symbol s_5_10[3] = { 'i', 's', 'm' };
-static symbol s_5_11[3] = { 'i', 'o', 'n' };
-static symbol s_5_12[2] = { 'e', 'r' };
-static symbol s_5_13[3] = { 'o', 'u', 's' };
-static symbol s_5_14[3] = { 'a', 'n', 't' };
-static symbol s_5_15[3] = { 'e', 'n', 't' };
-static symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
-static symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
-static symbol s_5_18[2] = { 'o', 'u' };
-
-static struct among a_5[19] =
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_5_5[3] = { 'a', 't', 'e' };
+static const symbol s_5_6[3] = { 'i', 'v', 'e' };
+static const symbol s_5_7[3] = { 'i', 'z', 'e' };
+static const symbol s_5_8[3] = { 'i', 't', 'i' };
+static const symbol s_5_9[2] = { 'a', 'l' };
+static const symbol s_5_10[3] = { 'i', 's', 'm' };
+static const symbol s_5_11[3] = { 'i', 'o', 'n' };
+static const symbol s_5_12[2] = { 'e', 'r' };
+static const symbol s_5_13[3] = { 'o', 'u', 's' };
+static const symbol s_5_14[3] = { 'a', 'n', 't' };
+static const symbol s_5_15[3] = { 'e', 'n', 't' };
+static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
+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},
@@ -180,50 +194,50 @@ static struct among a_5[19] =
/* 18 */ { 2, s_5_18, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1 };
-
-static unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
-
-static symbol s_0[] = { 's', 's' };
-static symbol s_1[] = { 'i' };
-static symbol s_2[] = { 'e', 'e' };
-static symbol s_3[] = { 'e' };
-static symbol s_4[] = { 'e' };
-static symbol s_5[] = { 'y' };
-static symbol s_6[] = { 'Y' };
-static symbol s_7[] = { 'i' };
-static symbol s_8[] = { 't', 'i', 'o', 'n' };
-static symbol s_9[] = { 'e', 'n', 'c', 'e' };
-static symbol s_10[] = { 'a', 'n', 'c', 'e' };
-static symbol s_11[] = { 'a', 'b', 'l', 'e' };
-static symbol s_12[] = { 'e', 'n', 't' };
-static symbol s_13[] = { 'e' };
-static symbol s_14[] = { 'i', 'z', 'e' };
-static symbol s_15[] = { 'a', 't', 'e' };
-static symbol s_16[] = { 'a', 'l' };
-static symbol s_17[] = { 'a', 'l' };
-static symbol s_18[] = { 'f', 'u', 'l' };
-static symbol s_19[] = { 'o', 'u', 's' };
-static symbol s_20[] = { 'i', 'v', 'e' };
-static symbol s_21[] = { 'b', 'l', 'e' };
-static symbol s_22[] = { 'a', 'l' };
-static symbol s_23[] = { 'i', 'c' };
-static symbol s_24[] = { 's' };
-static symbol s_25[] = { 't' };
-static symbol s_26[] = { 'e' };
-static symbol s_27[] = { 'l' };
-static symbol s_28[] = { 'l' };
-static symbol s_29[] = { 'y' };
-static symbol s_30[] = { 'Y' };
-static symbol s_31[] = { 'y' };
-static symbol s_32[] = { 'Y' };
-static symbol s_33[] = { 'Y' };
-static symbol s_34[] = { 'y' };
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
+
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+
+static const symbol s_0[] = { 's', 's' };
+static const symbol s_1[] = { 'i' };
+static const symbol s_2[] = { 'e', 'e' };
+static const symbol s_3[] = { 'e' };
+static const symbol s_4[] = { 'e' };
+static const symbol s_5[] = { 'y' };
+static const symbol s_6[] = { 'Y' };
+static const symbol s_7[] = { 'i' };
+static const symbol s_8[] = { 't', 'i', 'o', 'n' };
+static const symbol s_9[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_10[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_11[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_12[] = { 'e', 'n', 't' };
+static const symbol s_13[] = { 'e' };
+static const symbol s_14[] = { 'i', 'z', 'e' };
+static const symbol s_15[] = { 'a', 't', 'e' };
+static const symbol s_16[] = { 'a', 'l' };
+static const symbol s_17[] = { 'a', 'l' };
+static const symbol s_18[] = { 'f', 'u', 'l' };
+static const symbol s_19[] = { 'o', 'u', 's' };
+static const symbol s_20[] = { 'i', 'v', 'e' };
+static const symbol s_21[] = { 'b', 'l', 'e' };
+static const symbol s_22[] = { 'a', 'l' };
+static const symbol s_23[] = { 'i', 'c' };
+static const symbol s_24[] = { 's' };
+static const symbol s_25[] = { 't' };
+static const symbol s_26[] = { 'e' };
+static const symbol s_27[] = { 'l' };
+static const symbol s_28[] = { 'l' };
+static const symbol s_29[] = { 'y' };
+static const symbol s_30[] = { 'Y' };
+static const symbol s_31[] = { 'y' };
+static const symbol s_32[] = { 'Y' };
+static const symbol s_33[] = { 'Y' };
+static const symbol s_34[] = { 'y' };
static int r_shortv(struct SN_env * z) {
- if (!(out_grouping_b_U(z, g_v_WXY, 89, 121))) return 0;
- if (!(in_grouping_b_U(z, g_v, 97, 121))) return 0;
- if (!(out_grouping_b_U(z, g_v, 97, 121))) return 0;
+ 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;
}
@@ -240,26 +254,24 @@ static int r_R2(struct SN_env * z) {
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;
among_var = find_among_b(z, a_0, 4); /* substring, line 25 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 25 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 29 */
+ { int ret = slice_del(z); /* delete, line 29 */
if (ret < 0) return ret;
}
break;
@@ -270,6 +282,7 @@ static int r_Step_1a(struct SN_env * z) {
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;
among_var = find_among_b(z, a_2, 3); /* substring, line 34 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 34 */
@@ -280,29 +293,24 @@ static int r_Step_1b(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 35 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
+ { int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
if (ret < 0) return ret;
}
break;
case 2:
{ int m_test = z->l - z->c; /* test, line 38 */
- while(1) { /* gopast, line 38 */
- if (!(in_grouping_b_U(z, g_v, 97, 121))) goto lab0;
- break;
- lab0:
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 38 */
- }
+ { /* gopast */ /* grouping v, line 38 */
+ 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_test;
}
- { int ret;
- ret = slice_del(z); /* delete, line 38 */
+ { int ret = slice_del(z); /* delete, line 38 */
if (ret < 0) return ret;
}
{ int m_test = 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
among_var = find_among_b(z, a_1, 13); /* substring, line 39 */
if (!(among_var)) return 0;
z->c = z->l - m_test;
@@ -310,23 +318,20 @@ static int r_Step_1b(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
case 2:
z->ket = z->c; /* [, line 44 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* next, line 44 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 44 */
}
z->bra = z->c; /* ], line 44 */
- { int ret;
- ret = slice_del(z); /* delete, line 44 */
+ { int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
@@ -339,11 +344,9 @@ static int r_Step_1b(struct SN_env * z) {
}
z->c = z->l - m_test;
}
- { int ret;
- { int c = z->c;
- ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
- z->c = c;
- }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
+ z->c = c_keep;
if (ret < 0) return ret;
}
break;
@@ -355,26 +358,21 @@ static int r_Step_1b(struct SN_env * z) {
static int r_Step_1c(struct SN_env * z) {
z->ket = z->c; /* [, line 52 */
- { int m = z->l - z->c; (void) m; /* or, line 52 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 52 */
if (!(eq_s_b(z, 1, s_5))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_6))) return 0;
}
lab0:
z->bra = z->c; /* ], line 52 */
- while(1) { /* gopast, line 53 */
- if (!(in_grouping_b_U(z, g_v, 97, 121))) goto lab2;
- break;
- lab2:
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 53 */
- }
+ { /* gopast */ /* grouping v, line 53 */
+ int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
if (ret < 0) return ret;
}
return 1;
@@ -383,6 +381,7 @@ lab0:
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;
among_var = find_among_b(z, a_3, 20); /* substring, line 58 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 58 */
@@ -393,86 +392,72 @@ static int r_Step_2(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
+ { int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
+ { int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
+ { int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
+ { int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 7:
- { int ret;
- ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
+ { int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
if (ret < 0) return ret;
}
break;
case 8:
- { int ret;
- ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
+ { int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
if (ret < 0) return ret;
}
break;
case 9:
- { int ret;
- ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
if (ret < 0) return ret;
}
break;
case 10:
- { int ret;
- ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
+ { int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
if (ret < 0) return ret;
}
break;
case 11:
- { int ret;
- ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
+ { int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
if (ret < 0) return ret;
}
break;
case 12:
- { int ret;
- ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
+ { int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 13:
- { int ret;
- ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
+ { int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 14:
- { int ret;
- ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
+ { int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
@@ -483,6 +468,7 @@ static int r_Step_2(struct SN_env * z) {
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;
among_var = find_among_b(z, a_4, 7); /* substring, line 82 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 82 */
@@ -493,20 +479,17 @@ static int r_Step_3(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
+ { int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
+ { int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 87 */
+ { int ret = slice_del(z); /* delete, line 87 */
if (ret < 0) return ret;
}
break;
@@ -517,6 +500,7 @@ static int r_Step_3(struct SN_env * z) {
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;
among_var = find_among_b(z, a_5, 19); /* substring, line 92 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 92 */
@@ -527,22 +511,20 @@ static int r_Step_4(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 95 */
+ { int ret = slice_del(z); /* delete, line 95 */
if (ret < 0) return ret;
}
break;
case 2:
- { int m = z->l - z->c; (void) m; /* or, line 96 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 96 */
if (!(eq_s_b(z, 1, s_24))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_25))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 96 */
+ { int ret = slice_del(z); /* delete, line 96 */
if (ret < 0) return ret;
}
break;
@@ -554,31 +536,30 @@ static int r_Step_5a(struct SN_env * z) {
z->ket = z->c; /* [, line 101 */
if (!(eq_s_b(z, 1, s_26))) return 0;
z->bra = z->c; /* ], line 101 */
- { int m = z->l - z->c; (void) m; /* or, line 102 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 102 */
{ int ret = r_R2(z);
if (ret == 0) goto lab1; /* call R2, line 102 */
if (ret < 0) return ret;
}
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
{ int ret = r_R1(z);
if (ret == 0) return 0; /* call R1, line 102 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* not, line 102 */
+ { int m2 = z->l - z->c; (void)m2; /* not, line 102 */
{ int ret = r_shortv(z);
if (ret == 0) goto lab2; /* call shortv, line 102 */
if (ret < 0) return ret;
}
return 0;
lab2:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 103 */
+ { int ret = slice_del(z); /* delete, line 103 */
if (ret < 0) return ret;
}
return 1;
@@ -593,8 +574,7 @@ static int r_Step_5b(struct SN_env * z) {
if (ret < 0) return ret;
}
if (!(eq_s_b(z, 1, s_28))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 109 */
+ { int ret = slice_del(z); /* delete, line 109 */
if (ret < 0) return ret;
}
return 1;
@@ -602,193 +582,174 @@ static int r_Step_5b(struct SN_env * z) {
extern int porter_UTF_8_stem(struct SN_env * z) {
z->B[0] = 0; /* unset Y_found, line 115 */
- { int c = z->c; /* do, line 116 */
+ { int c1 = z->c; /* do, line 116 */
z->bra = z->c; /* [, line 116 */
if (!(eq_s(z, 1, s_29))) goto lab0;
z->ket = z->c; /* ], line 116 */
- { int ret;
- ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
+ { int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 116 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 117 */
+ { int c2 = z->c; /* do, line 117 */
while(1) { /* repeat, line 117 */
- int c = z->c;
+ int c3 = z->c;
while(1) { /* goto, line 117 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 121))) goto lab3;
+ int c4 = z->c;
+ if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3;
z->bra = z->c; /* [, line 117 */
if (!(eq_s(z, 1, s_31))) goto lab3;
z->ket = z->c; /* ], line 117 */
- z->c = c;
+ z->c = c4;
break;
lab3:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab2;
- z->c = c; /* goto, line 117 */
+ z->c = c4;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret; /* goto, line 117 */
}
}
- { int ret;
- ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
+ { int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
if (ret < 0) return ret;
}
z->B[0] = 1; /* set Y_found, line 117 */
continue;
lab2:
- z->c = c;
+ z->c = c3;
break;
}
- z->c = c;
+ z->c = c2;
}
z->I[0] = z->l;
z->I[1] = z->l;
- { int c = z->c; /* do, line 121 */
- while(1) { /* gopast, line 122 */
- if (!(in_grouping_U(z, g_v, 97, 121))) goto lab5;
- break;
- lab5:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 122 */
- }
+ { int c5 = z->c; /* do, line 121 */
+ { /* gopast */ /* grouping v, line 122 */
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 122 */
- if (!(out_grouping_U(z, g_v, 97, 121))) goto lab6;
- break;
- lab6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 122 */
- }
+ { /* 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 */
- while(1) { /* gopast, line 123 */
- if (!(in_grouping_U(z, g_v, 97, 121))) goto lab7;
- break;
- lab7:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 123 */
- }
+ { /* gopast */ /* grouping v, line 123 */
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
- while(1) { /* gopast, line 123 */
- if (!(out_grouping_U(z, g_v, 97, 121))) goto lab8;
- break;
- lab8:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 123 */
- }
+ { /* 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 */
lab4:
- z->c = c;
+ z->c = c5;
}
z->lb = z->c; z->c = z->l; /* backwards, line 126 */
- { int m = z->l - z->c; (void) m; /* do, line 127 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 127 */
{ int ret = r_Step_1a(z);
- if (ret == 0) goto lab9; /* call Step_1a, line 127 */
+ if (ret == 0) goto lab5; /* call Step_1a, line 127 */
if (ret < 0) return ret;
}
- lab9:
- z->c = z->l - m;
+ lab5:
+ z->c = z->l - m6;
}
- { int m = z->l - z->c; (void) m; /* do, line 128 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 128 */
{ int ret = r_Step_1b(z);
- if (ret == 0) goto lab10; /* call Step_1b, line 128 */
+ if (ret == 0) goto lab6; /* call Step_1b, line 128 */
if (ret < 0) return ret;
}
- lab10:
- z->c = z->l - m;
+ lab6:
+ z->c = z->l - m7;
}
- { int m = z->l - z->c; (void) m; /* do, line 129 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 129 */
{ int ret = r_Step_1c(z);
- if (ret == 0) goto lab11; /* call Step_1c, line 129 */
+ if (ret == 0) goto lab7; /* call Step_1c, line 129 */
if (ret < 0) return ret;
}
- lab11:
- z->c = z->l - m;
+ lab7:
+ z->c = z->l - m8;
}
- { int m = z->l - z->c; (void) m; /* do, line 130 */
+ { int m9 = z->l - z->c; (void)m9; /* do, line 130 */
{ int ret = r_Step_2(z);
- if (ret == 0) goto lab12; /* call Step_2, line 130 */
+ if (ret == 0) goto lab8; /* call Step_2, line 130 */
if (ret < 0) return ret;
}
- lab12:
- z->c = z->l - m;
+ lab8:
+ z->c = z->l - m9;
}
- { int m = z->l - z->c; (void) m; /* do, line 131 */
+ { int m10 = z->l - z->c; (void)m10; /* do, line 131 */
{ int ret = r_Step_3(z);
- if (ret == 0) goto lab13; /* call Step_3, line 131 */
+ if (ret == 0) goto lab9; /* call Step_3, line 131 */
if (ret < 0) return ret;
}
- lab13:
- z->c = z->l - m;
+ lab9:
+ z->c = z->l - m10;
}
- { int m = z->l - z->c; (void) m; /* do, line 132 */
+ { int m11 = z->l - z->c; (void)m11; /* do, line 132 */
{ int ret = r_Step_4(z);
- if (ret == 0) goto lab14; /* call Step_4, line 132 */
+ if (ret == 0) goto lab10; /* call Step_4, line 132 */
if (ret < 0) return ret;
}
- lab14:
- z->c = z->l - m;
+ lab10:
+ z->c = z->l - m11;
}
- { int m = z->l - z->c; (void) m; /* do, line 133 */
+ { int m12 = z->l - z->c; (void)m12; /* do, line 133 */
{ int ret = r_Step_5a(z);
- if (ret == 0) goto lab15; /* call Step_5a, line 133 */
+ if (ret == 0) goto lab11; /* call Step_5a, line 133 */
if (ret < 0) return ret;
}
- lab15:
- z->c = z->l - m;
+ lab11:
+ z->c = z->l - m12;
}
- { int m = z->l - z->c; (void) m; /* do, line 134 */
+ { int m13 = z->l - z->c; (void)m13; /* do, line 134 */
{ int ret = r_Step_5b(z);
- if (ret == 0) goto lab16; /* call Step_5b, line 134 */
+ if (ret == 0) goto lab12; /* call Step_5b, line 134 */
if (ret < 0) return ret;
}
- lab16:
- z->c = z->l - m;
+ lab12:
+ z->c = z->l - m13;
}
z->c = z->lb;
- { int c = z->c; /* do, line 137 */
- if (!(z->B[0])) goto lab17; /* Boolean test Y_found, line 137 */
+ { int c14 = z->c; /* do, line 137 */
+ if (!(z->B[0])) goto lab13; /* Boolean test Y_found, line 137 */
while(1) { /* repeat, line 137 */
- int c = z->c;
+ int c15 = z->c;
while(1) { /* goto, line 137 */
- int c = z->c;
+ int c16 = z->c;
z->bra = z->c; /* [, line 137 */
- if (!(eq_s(z, 1, s_33))) goto lab19;
+ if (!(eq_s(z, 1, s_33))) goto lab15;
z->ket = z->c; /* ], line 137 */
- z->c = c;
+ z->c = c16;
break;
- lab19:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab18;
- z->c = c; /* goto, line 137 */
+ lab15:
+ z->c = c16;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab14;
+ z->c = ret; /* goto, line 137 */
}
}
- { int ret;
- ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
+ { int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
if (ret < 0) return ret;
}
continue;
- lab18:
- z->c = c;
+ lab14:
+ z->c = c15;
break;
}
- lab17:
- z->c = c;
+ lab13:
+ z->c = c14;
}
return 1;
}
extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
-extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_portuguese.c b/libstemmer_c/src_c/stem_UTF_8_portuguese.c
index e288544..282dbb7 100644
--- a/libstemmer_c/src_c/stem_UTF_8_portuguese.c
+++ b/libstemmer_c/src_c/stem_UTF_8_portuguese.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int portuguese_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_residual_form(struct SN_env * z);
static int r_residual_suffix(struct SN_env * z);
static int r_verb_suffix(struct SN_env * z);
@@ -14,36 +20,44 @@ static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * portuguese_UTF_8_create_env(void);
extern void portuguese_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_1[2] = { 0xC3, 0xA3 };
-static symbol s_0_2[2] = { 0xC3, 0xB5 };
-static struct among a_0[3] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC3, 0xA3 };
+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}
};
-static symbol s_1_1[2] = { 'a', '~' };
-static symbol s_1_2[2] = { 'o', '~' };
+static const symbol s_1_1[2] = { 'a', '~' };
+static const symbol s_1_2[2] = { 'o', '~' };
-static struct among a_1[3] =
+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}
};
-static symbol s_2_0[2] = { 'i', 'c' };
-static symbol s_2_1[2] = { 'a', 'd' };
-static symbol s_2_2[2] = { 'o', 's' };
-static symbol s_2_3[2] = { 'i', 'v' };
+static const symbol s_2_0[2] = { 'i', 'c' };
+static const symbol s_2_1[2] = { 'a', 'd' };
+static const symbol s_2_2[2] = { 'o', 's' };
+static const symbol s_2_3[2] = { 'i', 'v' };
-static struct among a_2[4] =
+static const struct among a_2[4] =
{
/* 0 */ { 2, s_2_0, -1, -1, 0},
/* 1 */ { 2, s_2_1, -1, -1, 0},
@@ -51,75 +65,75 @@ static struct among a_2[4] =
/* 3 */ { 2, s_2_3, -1, 1, 0}
};
-static symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
-static symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
-static symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
+static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
+static const symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
-static struct among a_3[3] =
+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}
};
-static symbol s_4_0[2] = { 'i', 'c' };
-static symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_4_2[2] = { 'i', 'v' };
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'i', 'v' };
-static struct among a_4[3] =
+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}
};
-static symbol s_5_0[3] = { 'i', 'c', 'a' };
-static symbol s_5_1[6] = { 0xC3, 0xA2, 'n', 'c', 'i', 'a' };
-static symbol s_5_2[6] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a' };
-static symbol s_5_3[3] = { 'i', 'r', 'a' };
-static symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
-static symbol s_5_5[3] = { 'o', 's', 'a' };
-static symbol s_5_6[4] = { 'i', 's', 't', 'a' };
-static symbol s_5_7[3] = { 'i', 'v', 'a' };
-static symbol s_5_8[3] = { 'e', 'z', 'a' };
-static symbol s_5_9[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
-static symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
-static symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
-static symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
-static symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
-static symbol s_5_14[5] = { 0xC3, 0xA1, 'v', 'e', 'l' };
-static symbol s_5_15[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
-static symbol s_5_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
-static symbol s_5_17[3] = { 'i', 'c', 'o' };
-static symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
-static symbol s_5_19[3] = { 'o', 's', 'o' };
-static symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
-static symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
-static symbol s_5_22[3] = { 'i', 'v', 'o' };
-static symbol s_5_23[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
-static symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
-static symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
-static symbol s_5_26[7] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a', 's' };
-static symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
-static symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
-static symbol s_5_29[4] = { 'o', 's', 'a', 's' };
-static symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
-static symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
-static symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
-static symbol s_5_33[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
-static symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
-static symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
-static symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
-static symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
-static symbol s_5_38[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
-static symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
-static symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
-static symbol s_5_41[4] = { 'o', 's', 'o', 's' };
-static symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
-static symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
-static symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
-
-static struct among a_5[45] =
+static const symbol s_5_0[3] = { 'i', 'c', 'a' };
+static const symbol s_5_1[6] = { 0xC3, 0xA2, 'n', 'c', 'i', 'a' };
+static const symbol s_5_2[6] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a' };
+static const symbol s_5_3[3] = { 'i', 'r', 'a' };
+static const symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_5_5[3] = { 'o', 's', 'a' };
+static const symbol s_5_6[4] = { 'i', 's', 't', 'a' };
+static const symbol s_5_7[3] = { 'i', 'v', 'a' };
+static const symbol s_5_8[3] = { 'e', 'z', 'a' };
+static const symbol s_5_9[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
+static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
+static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_14[5] = { 0xC3, 0xA1, 'v', 'e', 'l' };
+static const symbol s_5_15[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
+static const symbol s_5_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
+static const symbol s_5_17[3] = { 'i', 'c', 'o' };
+static const symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_5_19[3] = { 'o', 's', 'o' };
+static const symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_22[3] = { 'i', 'v', 'o' };
+static const symbol s_5_23[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
+static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_5_26[7] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a', 's' };
+static const symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_5_29[4] = { 'o', 's', 'a', 's' };
+static const symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
+static const symbol s_5_33[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_38[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
+static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
+static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
+static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
+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},
@@ -168,128 +182,128 @@ static struct among a_5[45] =
/* 44 */ { 4, s_5_44, -1, 8, 0}
};
-static symbol s_6_0[3] = { 'a', 'd', 'a' };
-static symbol s_6_1[3] = { 'i', 'd', 'a' };
-static symbol s_6_2[2] = { 'i', 'a' };
-static symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
-static symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
-static symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
-static symbol s_6_6[3] = { 'a', 'r', 'a' };
-static symbol s_6_7[3] = { 'e', 'r', 'a' };
-static symbol s_6_8[3] = { 'i', 'r', 'a' };
-static symbol s_6_9[3] = { 'a', 'v', 'a' };
-static symbol s_6_10[4] = { 'a', 's', 's', 'e' };
-static symbol s_6_11[4] = { 'e', 's', 's', 'e' };
-static symbol s_6_12[4] = { 'i', 's', 's', 'e' };
-static symbol s_6_13[4] = { 'a', 's', 't', 'e' };
-static symbol s_6_14[4] = { 'e', 's', 't', 'e' };
-static symbol s_6_15[4] = { 'i', 's', 't', 'e' };
-static symbol s_6_16[2] = { 'e', 'i' };
-static symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
-static symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
-static symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
-static symbol s_6_20[2] = { 'a', 'm' };
-static symbol s_6_21[3] = { 'i', 'a', 'm' };
-static symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
-static symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
-static symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
-static symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
-static symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
-static symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
-static symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
-static symbol s_6_29[2] = { 'e', 'm' };
-static symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
-static symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
-static symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
-static symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
-static symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
-static symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
-static symbol s_6_36[3] = { 'a', 'd', 'o' };
-static symbol s_6_37[3] = { 'i', 'd', 'o' };
-static symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
-static symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
-static symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
-static symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
-static symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
-static symbol s_6_44[2] = { 'a', 'r' };
-static symbol s_6_45[2] = { 'e', 'r' };
-static symbol s_6_46[2] = { 'i', 'r' };
-static symbol s_6_47[2] = { 'a', 's' };
-static symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
-static symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
-static symbol s_6_50[3] = { 'i', 'a', 's' };
-static symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
-static symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
-static symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
-static symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
-static symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
-static symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
-static symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
-static symbol s_6_58[2] = { 'e', 's' };
-static symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
-static symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
-static symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
-static symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
-static symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
-static symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
-static symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
-static symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
-static symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
-static symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
-static symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
-static symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
-static symbol s_6_71[2] = { 'i', 's' };
-static symbol s_6_72[3] = { 'a', 'i', 's' };
-static symbol s_6_73[3] = { 'e', 'i', 's' };
-static symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
-static symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
-static symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
-static symbol s_6_77[6] = { 0xC3, 0xA1, 'r', 'e', 'i', 's' };
-static symbol s_6_78[6] = { 0xC3, 0xA9, 'r', 'e', 'i', 's' };
-static symbol s_6_79[6] = { 0xC3, 0xAD, 'r', 'e', 'i', 's' };
-static symbol s_6_80[7] = { 0xC3, 0xA1, 's', 's', 'e', 'i', 's' };
-static symbol s_6_81[7] = { 0xC3, 0xA9, 's', 's', 'e', 'i', 's' };
-static symbol s_6_82[7] = { 0xC3, 0xAD, 's', 's', 'e', 'i', 's' };
-static symbol s_6_83[6] = { 0xC3, 0xA1, 'v', 'e', 'i', 's' };
-static symbol s_6_84[5] = { 0xC3, 0xAD, 'e', 'i', 's' };
-static symbol s_6_85[7] = { 'a', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
-static symbol s_6_86[7] = { 'e', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
-static symbol s_6_87[7] = { 'i', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
-static symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
-static symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
-static symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
-static symbol s_6_91[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
-static symbol s_6_92[7] = { 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
-static symbol s_6_93[7] = { 0xC3, 0xAD, 'r', 'a', 'm', 'o', 's' };
-static symbol s_6_94[7] = { 0xC3, 0xA1, 'v', 'a', 'm', 'o', 's' };
-static symbol s_6_95[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_6_96[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_6_97[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_6_98[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
-static symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
-static symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
-static symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
-static symbol s_6_103[8] = { 0xC3, 0xA1, 's', 's', 'e', 'm', 'o', 's' };
-static symbol s_6_104[8] = { 0xC3, 0xAA, 's', 's', 'e', 'm', 'o', 's' };
-static symbol s_6_105[8] = { 0xC3, 0xAD, 's', 's', 'e', 'm', 'o', 's' };
-static symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
-static symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
-static symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
-static symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
-static symbol s_6_110[5] = { 0xC3, 0xA1, 'm', 'o', 's' };
-static symbol s_6_111[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
-static symbol s_6_112[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
-static symbol s_6_113[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
-static symbol s_6_114[2] = { 'e', 'u' };
-static symbol s_6_115[2] = { 'i', 'u' };
-static symbol s_6_116[2] = { 'o', 'u' };
-static symbol s_6_117[4] = { 'a', 'r', 0xC3, 0xA1 };
-static symbol s_6_118[4] = { 'e', 'r', 0xC3, 0xA1 };
-static symbol s_6_119[4] = { 'i', 'r', 0xC3, 0xA1 };
-
-static struct among a_6[120] =
+static const symbol s_6_0[3] = { 'a', 'd', 'a' };
+static const symbol s_6_1[3] = { 'i', 'd', 'a' };
+static const symbol s_6_2[2] = { 'i', 'a' };
+static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
+static const symbol s_6_6[3] = { 'a', 'r', 'a' };
+static const symbol s_6_7[3] = { 'e', 'r', 'a' };
+static const symbol s_6_8[3] = { 'i', 'r', 'a' };
+static const symbol s_6_9[3] = { 'a', 'v', 'a' };
+static const symbol s_6_10[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_11[4] = { 'e', 's', 's', 'e' };
+static const symbol s_6_12[4] = { 'i', 's', 's', 'e' };
+static const symbol s_6_13[4] = { 'a', 's', 't', 'e' };
+static const symbol s_6_14[4] = { 'e', 's', 't', 'e' };
+static const symbol s_6_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_16[2] = { 'e', 'i' };
+static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
+static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_6_20[2] = { 'a', 'm' };
+static const symbol s_6_21[3] = { 'i', 'a', 'm' };
+static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
+static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
+static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
+static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
+static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
+static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
+static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
+static const symbol s_6_29[2] = { 'e', 'm' };
+static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
+static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
+static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
+static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
+static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
+static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
+static const symbol s_6_36[3] = { 'a', 'd', 'o' };
+static const symbol s_6_37[3] = { 'i', 'd', 'o' };
+static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
+static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
+static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
+static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
+static const symbol s_6_44[2] = { 'a', 'r' };
+static const symbol s_6_45[2] = { 'e', 'r' };
+static const symbol s_6_46[2] = { 'i', 'r' };
+static const symbol s_6_47[2] = { 'a', 's' };
+static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_6_50[3] = { 'i', 'a', 's' };
+static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
+static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
+static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
+static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
+static const symbol s_6_58[2] = { 'e', 's' };
+static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
+static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
+static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
+static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
+static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
+static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
+static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
+static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
+static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_6_71[2] = { 'i', 's' };
+static const symbol s_6_72[3] = { 'a', 'i', 's' };
+static const symbol s_6_73[3] = { 'e', 'i', 's' };
+static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
+static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
+static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
+static const symbol s_6_77[6] = { 0xC3, 0xA1, 'r', 'e', 'i', 's' };
+static const symbol s_6_78[6] = { 0xC3, 0xA9, 'r', 'e', 'i', 's' };
+static const symbol s_6_79[6] = { 0xC3, 0xAD, 'r', 'e', 'i', 's' };
+static const symbol s_6_80[7] = { 0xC3, 0xA1, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_81[7] = { 0xC3, 0xA9, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_82[7] = { 0xC3, 0xAD, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_83[6] = { 0xC3, 0xA1, 'v', 'e', 'i', 's' };
+static const symbol s_6_84[5] = { 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_85[7] = { 'a', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_86[7] = { 'e', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_87[7] = { 'i', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_6_91[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_92[7] = { 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_93[7] = { 0xC3, 0xAD, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_94[7] = { 0xC3, 0xA1, 'v', 'a', 'm', 'o', 's' };
+static const symbol s_6_95[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_96[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_97[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_98[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_103[8] = { 0xC3, 0xA1, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_104[8] = { 0xC3, 0xAA, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_105[8] = { 0xC3, 0xAD, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
+static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
+static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
+static const symbol s_6_110[5] = { 0xC3, 0xA1, 'm', 'o', 's' };
+static const symbol s_6_111[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_6_112[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_6_113[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_6_114[2] = { 'e', 'u' };
+static const symbol s_6_115[2] = { 'i', 'u' };
+static const symbol s_6_116[2] = { 'o', 'u' };
+static const symbol s_6_117[4] = { 'a', 'r', 0xC3, 0xA1 };
+static const symbol s_6_118[4] = { 'e', 'r', 0xC3, 0xA1 };
+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},
@@ -413,15 +427,15 @@ static struct among a_6[120] =
/*119 */ { 4, s_6_119, -1, 1, 0}
};
-static symbol s_7_0[1] = { 'a' };
-static symbol s_7_1[1] = { 'i' };
-static symbol s_7_2[1] = { 'o' };
-static symbol s_7_3[2] = { 'o', 's' };
-static symbol s_7_4[2] = { 0xC3, 0xA1 };
-static symbol s_7_5[2] = { 0xC3, 0xAD };
-static symbol s_7_6[2] = { 0xC3, 0xB3 };
+static const symbol s_7_0[1] = { 'a' };
+static const symbol s_7_1[1] = { 'i' };
+static const symbol s_7_2[1] = { 'o' };
+static const symbol s_7_3[2] = { 'o', 's' };
+static const symbol s_7_4[2] = { 0xC3, 0xA1 };
+static const symbol s_7_5[2] = { 0xC3, 0xAD };
+static const symbol s_7_6[2] = { 0xC3, 0xB3 };
-static struct among a_7[7] =
+static const struct among a_7[7] =
{
/* 0 */ { 1, s_7_0, -1, 1, 0},
/* 1 */ { 1, s_7_1, -1, 1, 0},
@@ -432,12 +446,12 @@ static struct among a_7[7] =
/* 6 */ { 2, s_7_6, -1, 1, 0}
};
-static symbol s_8_0[1] = { 'e' };
-static symbol s_8_1[2] = { 0xC3, 0xA7 };
-static symbol s_8_2[2] = { 0xC3, 0xA9 };
-static symbol s_8_3[2] = { 0xC3, 0xAA };
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[2] = { 0xC3, 0xA7 };
+static const symbol s_8_2[2] = { 0xC3, 0xA9 };
+static const symbol s_8_3[2] = { 0xC3, 0xAA };
-static struct among a_8[4] =
+static const struct among a_8[4] =
{
/* 0 */ { 1, s_8_0, -1, 1, 0},
/* 1 */ { 2, s_8_1, -1, 2, 0},
@@ -445,59 +459,58 @@ static struct among a_8[4] =
/* 3 */ { 2, s_8_3, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
-
-static symbol s_0[] = { 'a', '~' };
-static symbol s_1[] = { 'o', '~' };
-static symbol s_2[] = { 0xC3, 0xA3 };
-static symbol s_3[] = { 0xC3, 0xB5 };
-static symbol s_4[] = { 'l', 'o', 'g' };
-static symbol s_5[] = { 'u' };
-static symbol s_6[] = { 'e', 'n', 't', 'e' };
-static symbol s_7[] = { 'a', 't' };
-static symbol s_8[] = { 'a', 't' };
-static symbol s_9[] = { 'e' };
-static symbol s_10[] = { 'i', 'r' };
-static symbol s_11[] = { 'u' };
-static symbol s_12[] = { 'g' };
-static symbol s_13[] = { 'i' };
-static symbol s_14[] = { 'c' };
-static symbol s_15[] = { 'c' };
-static symbol s_16[] = { 'i' };
-static symbol s_17[] = { 'c' };
+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 };
+
+static const symbol s_0[] = { 'a', '~' };
+static const symbol s_1[] = { 'o', '~' };
+static const symbol s_2[] = { 0xC3, 0xA3 };
+static const symbol s_3[] = { 0xC3, 0xB5 };
+static const symbol s_4[] = { 'l', 'o', 'g' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'e', 'n', 't', 'e' };
+static const symbol s_7[] = { 'a', 't' };
+static const symbol s_8[] = { 'a', 't' };
+static const symbol s_9[] = { 'e' };
+static const symbol s_10[] = { 'i', 'r' };
+static const symbol s_11[] = { 'u' };
+static const symbol s_12[] = { 'g' };
+static const symbol s_13[] = { 'i' };
+static const symbol s_14[] = { 'c' };
+static const symbol s_15[] = { 'c' };
+static const symbol s_16[] = { 'i' };
+static const symbol s_17[] = { 'c' };
static int r_prelude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 36 */
- int c = z->c;
+ 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
among_var = find_among(z, a_0, 3); /* substring, line 37 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 37 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
+ { int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 2, s_1); /* <-, line 39 */
+ { int ret = slice_from_s(z, 2, s_1); /* <-, line 39 */
if (ret < 0) return ret;
}
break;
case 3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 40 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 40 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -507,108 +520,80 @@ static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 50 */
- { int c = z->c; /* or, line 52 */
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab2;
- { int c = z->c; /* or, line 51 */
- if (!(out_grouping_U(z, g_v, 97, 250))) goto lab4;
- while(1) { /* gopast, line 51 */
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab5;
- break;
- lab5:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 51 */
- }
+ { 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;
+ { int c3 = z->c; /* or, line 51 */
+ if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 51 */
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
goto lab3;
lab4:
- z->c = c;
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab2;
- while(1) { /* gopast, line 51 */
- if (!(out_grouping_U(z, g_v, 97, 250))) goto lab6;
- break;
- lab6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab2;
- z->c = c; /* gopast, line 51 */
- }
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
+ { /* gopast */ /* non v, line 51 */
+ int ret = in_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
}
}
lab3:
goto lab1;
lab2:
- z->c = c;
- if (!(out_grouping_U(z, g_v, 97, 250))) goto lab0;
- { int c = z->c; /* or, line 53 */
- if (!(out_grouping_U(z, g_v, 97, 250))) goto lab8;
- while(1) { /* gopast, line 53 */
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab9;
- break;
- lab9:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab8;
- z->c = c; /* gopast, line 53 */
- }
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 53 */
+ if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 53 */
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
}
- goto lab7;
- lab8:
- z->c = c;
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab0;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 53 */
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 53 */
}
}
- lab7:
+ lab5:
;
}
lab1:
z->I[0] = z->c; /* setmark pV, line 54 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 56 */
- while(1) { /* gopast, line 57 */
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab11;
- break;
- lab11:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 57 */
- }
+ { int c5 = z->c; /* do, line 56 */
+ { /* gopast */ /* grouping v, line 57 */
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 57 */
- if (!(out_grouping_U(z, g_v, 97, 250))) goto lab12;
- break;
- lab12:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 57 */
- }
+ { /* 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 */
- while(1) { /* gopast, line 58 */
- if (!(in_grouping_U(z, g_v, 97, 250))) goto lab13;
- break;
- lab13:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 58 */
- }
+ { /* gopast */ /* grouping v, line 58 */
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 58 */
- if (!(out_grouping_U(z, g_v, 97, 250))) goto lab14;
- break;
- lab14:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 58 */
- }
+ { /* 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 */
- lab10:
- z->c = c;
+ lab7:
+ z->c = c5;
}
return 1;
}
@@ -616,35 +601,34 @@ static int r_mark_regions(struct SN_env * z) {
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 62 */
- int c = z->c;
+ 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
among_var = find_among(z, a_1, 3); /* substring, line 63 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 63 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 2, s_2); /* <-, line 64 */
+ { int ret = slice_from_s(z, 2, s_2); /* <-, line 64 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 2, s_3); /* <-, line 65 */
+ { int ret = slice_from_s(z, 2, s_3); /* <-, line 65 */
if (ret < 0) return ret;
}
break;
case 3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 66 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 66 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -668,6 +652,7 @@ static int r_R2(struct SN_env * z) {
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 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
among_var = find_among_b(z, a_5, 45); /* substring, line 77 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 77 */
@@ -678,8 +663,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 93 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 93 */
+ { int ret = slice_del(z); /* delete, line 93 */
if (ret < 0) return ret;
}
break;
@@ -688,8 +672,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 98 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
+ { int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */
if (ret < 0) return ret;
}
break;
@@ -698,8 +681,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 102 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */
if (ret < 0) return ret;
}
break;
@@ -708,8 +690,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 106 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
+ { int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */
if (ret < 0) return ret;
}
break;
@@ -718,35 +699,33 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 110 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 110 */
+ { int ret = slice_del(z); /* delete, line 110 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 111 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab0; }
among_var = find_among_b(z, a_2, 4); /* substring, line 112 */
- if (!(among_var)) { z->c = z->l - m; goto lab0; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 112 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 112 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 112 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 112 */
+ { int ret = slice_del(z); /* delete, line 112 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab0; }
+ case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
z->ket = z->c; /* [, line 113 */
- if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 113 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 113 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 113 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 113 */
+ { int ret = slice_del(z); /* delete, line 113 */
if (ret < 0) return ret;
}
break;
@@ -760,24 +739,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 122 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 122 */
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 123 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 3); /* substring, line 124 */
- if (!(among_var)) { z->c = z->l - m; goto lab1; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 124 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab1; }
+ case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 127 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 127 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 127 */
+ { int ret = slice_del(z); /* delete, line 127 */
if (ret < 0) return ret;
}
break;
@@ -791,24 +769,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 134 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 134 */
+ { int ret = slice_del(z); /* delete, line 134 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 135 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 136 */
- if (!(among_var)) { z->c = z->l - m; goto lab2; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
z->bra = z->c; /* ], line 136 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab2; }
+ case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 139 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 139 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 139 */
+ { int ret = slice_del(z); /* delete, line 139 */
if (ret < 0) return ret;
}
break;
@@ -822,20 +799,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 146 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 146 */
+ { int ret = slice_del(z); /* delete, line 146 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 147 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 147 */
z->ket = z->c; /* [, line 148 */
- if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m; goto lab3; }
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 148 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 148 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 148 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 148 */
+ { int ret = slice_del(z); /* delete, line 148 */
if (ret < 0) return ret;
}
lab3:
@@ -848,8 +823,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret < 0) return ret;
}
if (!(eq_s_b(z, 1, s_9))) return 0;
- { int ret;
- ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
+ { int ret = slice_from_s(z, 2, s_10); /* <-, line 154 */
if (ret < 0) return ret;
}
break;
@@ -859,26 +833,25 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 159 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 159 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 159 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 160 */
among_var = find_among_b(z, a_6, 120); /* substring, line 160 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 160 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
@@ -896,8 +869,7 @@ static int r_residual_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 187 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 187 */
+ { int ret = slice_del(z); /* delete, line 187 */
if (ret < 0) return ret;
}
break;
@@ -918,12 +890,11 @@ static int r_residual_form(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 194 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 194 */
+ { int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 194 */
- { int m = z->l - z->c; (void) m; /* or, line 194 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 194 */
if (!(eq_s_b(z, 1, s_11))) goto lab1;
z->bra = z->c; /* ], line 194 */
{ int m_test = z->l - z->c; /* test, line 194 */
@@ -932,7 +903,7 @@ static int r_residual_form(struct SN_env * z) {
}
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 1, s_13))) return 0;
z->bra = z->c; /* ], line 195 */
{ int m_test = z->l - z->c; /* test, line 195 */
@@ -945,14 +916,12 @@ static int r_residual_form(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 195 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 195 */
+ { int ret = slice_del(z); /* delete, line 195 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
+ { int ret = slice_from_s(z, 1, s_15); /* <-, line 196 */
if (ret < 0) return ret;
}
break;
@@ -961,43 +930,43 @@ static int r_residual_form(struct SN_env * z) {
}
extern int portuguese_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 202 */
+ { int c1 = z->c; /* do, line 202 */
{ int ret = r_prelude(z);
if (ret == 0) goto lab0; /* call prelude, line 202 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 203 */
+ { int c2 = z->c; /* do, line 203 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab1; /* call mark_regions, line 203 */
if (ret < 0) return ret;
}
lab1:
- z->c = c;
+ z->c = c2;
}
z->lb = z->c; z->c = z->l; /* backwards, line 204 */
- { int m = z->l - z->c; (void) m; /* do, line 205 */
- { int m = z->l - z->c; (void) m; /* or, line 209 */
- { int m = z->l - z->c; (void) m; /* and, line 207 */
- { int m = z->l - z->c; (void) m; /* or, line 206 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 205 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 209 */
+ { int m5 = z->l - z->c; (void)m5; /* and, line 207 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 206 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab6; /* call standard_suffix, line 206 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m6;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab4; /* call verb_suffix, line 206 */
if (ret < 0) return ret;
}
}
lab5:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 207 */
+ z->c = z->l - m5;
+ { int m7 = z->l - z->c; (void)m7; /* do, line 207 */
z->ket = z->c; /* [, line 207 */
if (!(eq_s_b(z, 1, s_16))) goto lab7;
z->bra = z->c; /* ], line 207 */
@@ -1009,17 +978,16 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) {
if (ret == 0) goto lab7; /* call RV, line 207 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 207 */
+ { int ret = slice_del(z); /* delete, line 207 */
if (ret < 0) return ret;
}
lab7:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
}
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab2; /* call residual_suffix, line 209 */
if (ret < 0) return ret;
@@ -1027,29 +995,29 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) {
}
lab3:
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 211 */
+ { int m8 = z->l - z->c; (void)m8; /* do, line 211 */
{ int ret = r_residual_form(z);
if (ret == 0) goto lab8; /* call residual_form, line 211 */
if (ret < 0) return ret;
}
lab8:
- z->c = z->l - m;
+ z->c = z->l - m8;
}
z->c = z->lb;
- { int c = z->c; /* do, line 213 */
+ { int c9 = z->c; /* do, line 213 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab9; /* call postlude, line 213 */
if (ret < 0) return ret;
}
lab9:
- z->c = c;
+ z->c = c9;
}
return 1;
}
extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_romanian.c b/libstemmer_c/src_c/stem_UTF_8_romanian.c
new file mode 100644
index 0000000..5ca94d5
--- /dev/null
+++ b/libstemmer_c/src_c/stem_UTF_8_romanian.c
@@ -0,0 +1,1004 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#include "../runtime/header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int romanian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_vowel_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_combo_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_step_0(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * romanian_UTF_8_create_env(void);
+extern void romanian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'I' };
+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}
+};
+
+static const symbol s_1_0[2] = { 'e', 'a' };
+static const symbol s_1_1[5] = { 'a', 0xC5, 0xA3, 'i', 'a' };
+static const symbol s_1_2[3] = { 'a', 'u', 'a' };
+static const symbol s_1_3[3] = { 'i', 'u', 'a' };
+static const symbol s_1_4[5] = { 'a', 0xC5, 0xA3, 'i', 'e' };
+static const symbol s_1_5[3] = { 'e', 'l', 'e' };
+static const symbol s_1_6[3] = { 'i', 'l', 'e' };
+static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
+static const symbol s_1_8[3] = { 'i', 'e', 'i' };
+static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
+static const symbol s_1_10[2] = { 'i', 'i' };
+static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
+static const symbol s_1_12[2] = { 'u', 'l' };
+static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
+static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
+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}
+};
+
+static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
+static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
+static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
+static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
+static const symbol s_2_5[7] = { 'a', 0xC5, 0xA3, 'i', 'u', 'n', 'e' };
+static const symbol s_2_6[7] = { 'i', 0xC5, 0xA3, 'i', 'u', 'n', 'e' };
+static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_9[7] = { 0xC4, 0x83, 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
+static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
+static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
+static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
+static const symbol s_2_21[6] = { 0xC4, 0x83, 't', 'o', 'r', 'i' };
+static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
+static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
+static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
+static const symbol s_2_28[7] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_2_29[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_2_30[7] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_2_31[9] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_2_32[11] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_2_33[9] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
+static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
+static const symbol s_2_38[5] = { 0xC4, 0x83, 't', 'o', 'r' };
+static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
+static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
+static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
+static const symbol s_2_42[6] = { 'i', 'c', 'a', 'l', 0xC4, 0x83 };
+static const symbol s_2_43[6] = { 'i', 'c', 'i', 'v', 0xC4, 0x83 };
+static const symbol s_2_44[6] = { 'a', 't', 'i', 'v', 0xC4, 0x83 };
+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}
+};
+
+static const symbol s_3_0[3] = { 'i', 'c', 'a' };
+static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
+static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
+static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
+static const symbol s_3_4[3] = { 'a', 't', 'a' };
+static const symbol s_3_5[3] = { 'i', 't', 'a' };
+static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
+static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_3_8[3] = { 'u', 't', 'a' };
+static const symbol s_3_9[3] = { 'i', 'v', 'a' };
+static const symbol s_3_10[2] = { 'i', 'c' };
+static const symbol s_3_11[3] = { 'i', 'c', 'e' };
+static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
+static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
+static const symbol s_3_17[3] = { 'a', 't', 'e' };
+static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_19[3] = { 'i', 't', 'e' };
+static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_3_22[3] = { 'u', 't', 'e' };
+static const symbol s_3_23[3] = { 'i', 'v', 'e' };
+static const symbol s_3_24[3] = { 'i', 'c', 'i' };
+static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
+static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_3_29[3] = { 'o', 's', 'i' };
+static const symbol s_3_30[3] = { 'a', 't', 'i' };
+static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_32[3] = { 'i', 't', 'i' };
+static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
+static const symbol s_3_35[3] = { 'u', 't', 'i' };
+static const symbol s_3_36[5] = { 'i', 0xC5, 0x9F, 't', 'i' };
+static const symbol s_3_37[3] = { 'i', 'v', 'i' };
+static const symbol s_3_38[5] = { 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_3_39[4] = { 'o', 0xC5, 0x9F, 'i' };
+static const symbol s_3_40[7] = { 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
+static const symbol s_3_43[3] = { 'i', 's', 'm' };
+static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_45[2] = { 'o', 's' };
+static const symbol s_3_46[2] = { 'a', 't' };
+static const symbol s_3_47[2] = { 'i', 't' };
+static const symbol s_3_48[3] = { 'a', 'n', 't' };
+static const symbol s_3_49[3] = { 'i', 's', 't' };
+static const symbol s_3_50[2] = { 'u', 't' };
+static const symbol s_3_51[2] = { 'i', 'v' };
+static const symbol s_3_52[4] = { 'i', 'c', 0xC4, 0x83 };
+static const symbol s_3_53[6] = { 'a', 'b', 'i', 'l', 0xC4, 0x83 };
+static const symbol s_3_54[6] = { 'i', 'b', 'i', 'l', 0xC4, 0x83 };
+static const symbol s_3_55[5] = { 'o', 'a', 's', 0xC4, 0x83 };
+static const symbol s_3_56[4] = { 'a', 't', 0xC4, 0x83 };
+static const symbol s_3_57[4] = { 'i', 't', 0xC4, 0x83 };
+static const symbol s_3_58[5] = { 'a', 'n', 't', 0xC4, 0x83 };
+static const symbol s_3_59[5] = { 'i', 's', 't', 0xC4, 0x83 };
+static const symbol s_3_60[4] = { 'u', 't', 0xC4, 0x83 };
+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}
+};
+
+static const symbol s_4_0[2] = { 'e', 'a' };
+static const symbol s_4_1[2] = { 'i', 'a' };
+static const symbol s_4_2[3] = { 'e', 's', 'c' };
+static const symbol s_4_3[4] = { 0xC4, 0x83, 's', 'c' };
+static const symbol s_4_4[3] = { 'i', 'n', 'd' };
+static const symbol s_4_5[4] = { 0xC3, 0xA2, 'n', 'd' };
+static const symbol s_4_6[3] = { 'a', 'r', 'e' };
+static const symbol s_4_7[3] = { 'e', 'r', 'e' };
+static const symbol s_4_8[3] = { 'i', 'r', 'e' };
+static const symbol s_4_9[4] = { 0xC3, 0xA2, 'r', 'e' };
+static const symbol s_4_10[2] = { 's', 'e' };
+static const symbol s_4_11[3] = { 'a', 's', 'e' };
+static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
+static const symbol s_4_13[3] = { 'i', 's', 'e' };
+static const symbol s_4_14[3] = { 'u', 's', 'e' };
+static const symbol s_4_15[4] = { 0xC3, 0xA2, 's', 'e' };
+static const symbol s_4_16[5] = { 'e', 0xC5, 0x9F, 't', 'e' };
+static const symbol s_4_17[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'e' };
+static const symbol s_4_18[3] = { 'e', 'z', 'e' };
+static const symbol s_4_19[2] = { 'a', 'i' };
+static const symbol s_4_20[3] = { 'e', 'a', 'i' };
+static const symbol s_4_21[3] = { 'i', 'a', 'i' };
+static const symbol s_4_22[3] = { 's', 'e', 'i' };
+static const symbol s_4_23[5] = { 'e', 0xC5, 0x9F, 't', 'i' };
+static const symbol s_4_24[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'i' };
+static const symbol s_4_25[2] = { 'u', 'i' };
+static const symbol s_4_26[3] = { 'e', 'z', 'i' };
+static const symbol s_4_27[4] = { 'a', 0xC5, 0x9F, 'i' };
+static const symbol s_4_28[5] = { 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_29[6] = { 'a', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_30[7] = { 's', 'e', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_31[6] = { 'i', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_32[6] = { 'u', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_33[7] = { 0xC3, 0xA2, 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_34[4] = { 'i', 0xC5, 0x9F, 'i' };
+static const symbol s_4_35[4] = { 'u', 0xC5, 0x9F, 'i' };
+static const symbol s_4_36[5] = { 0xC3, 0xA2, 0xC5, 0x9F, 'i' };
+static const symbol s_4_37[3] = { 0xC3, 0xA2, 'i' };
+static const symbol s_4_38[4] = { 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_4_39[5] = { 'e', 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_4_40[5] = { 'i', 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_4_41[4] = { 'e', 0xC5, 0xA3, 'i' };
+static const symbol s_4_42[4] = { 'i', 0xC5, 0xA3, 'i' };
+static const symbol s_4_43[7] = { 'a', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_44[8] = { 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_45[9] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_46[10] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_47[9] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_48[9] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_49[10] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_50[7] = { 'i', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_51[7] = { 'u', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_52[8] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_53[5] = { 0xC3, 0xA2, 0xC5, 0xA3, 'i' };
+static const symbol s_4_54[2] = { 'a', 'm' };
+static const symbol s_4_55[3] = { 'e', 'a', 'm' };
+static const symbol s_4_56[3] = { 'i', 'a', 'm' };
+static const symbol s_4_57[2] = { 'e', 'm' };
+static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
+static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
+static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
+static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
+static const symbol s_4_62[5] = { 0xC3, 0xA2, 's', 'e', 'm' };
+static const symbol s_4_63[2] = { 'i', 'm' };
+static const symbol s_4_64[3] = { 0xC4, 0x83, 'm' };
+static const symbol s_4_65[5] = { 'a', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_66[6] = { 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_67[7] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_68[8] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_69[7] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_70[7] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_71[8] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_72[5] = { 'i', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_73[5] = { 'u', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_74[6] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_75[3] = { 0xC3, 0xA2, 'm' };
+static const symbol s_4_76[2] = { 'a', 'u' };
+static const symbol s_4_77[3] = { 'e', 'a', 'u' };
+static const symbol s_4_78[3] = { 'i', 'a', 'u' };
+static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
+static const symbol s_4_80[5] = { 0xC3, 0xA2, 'n', 'd', 'u' };
+static const symbol s_4_81[2] = { 'e', 'z' };
+static const symbol s_4_82[6] = { 'e', 'a', 's', 'c', 0xC4, 0x83 };
+static const symbol s_4_83[4] = { 'a', 'r', 0xC4, 0x83 };
+static const symbol s_4_84[5] = { 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_85[6] = { 'a', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_86[7] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_87[6] = { 'i', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_88[6] = { 'u', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_89[7] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_90[4] = { 'i', 'r', 0xC4, 0x83 };
+static const symbol s_4_91[4] = { 'u', 'r', 0xC4, 0x83 };
+static const symbol s_4_92[5] = { 0xC3, 0xA2, 'r', 0xC4, 0x83 };
+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}
+};
+
+static const symbol s_5_0[1] = { 'a' };
+static const symbol s_5_1[1] = { 'e' };
+static const symbol s_5_2[2] = { 'i', 'e' };
+static const symbol s_5_3[1] = { 'i' };
+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}
+};
+
+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 };
+
+static const symbol s_0[] = { 'u' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'I' };
+static const symbol s_4[] = { 'i' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'a', 'b' };
+static const symbol s_10[] = { 'i' };
+static const symbol s_11[] = { 'a', 't' };
+static const symbol s_12[] = { 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_13[] = { 'a', 'b', 'i', 'l' };
+static const symbol s_14[] = { 'i', 'b', 'i', 'l' };
+static const symbol s_15[] = { 'i', 'v' };
+static const symbol s_16[] = { 'i', 'c' };
+static const symbol s_17[] = { 'a', 't' };
+static const symbol s_18[] = { 'i', 't' };
+static const symbol s_19[] = { 0xC5, 0xA3 };
+static const symbol s_20[] = { 't' };
+static const symbol s_21[] = { 'i', 's', 't' };
+static const symbol s_22[] = { 'u' };
+
+static int r_prelude(struct SN_env * z) {
+ while(1) { /* repeat, line 32 */
+ int c1 = z->c;
+ while(1) { /* goto, line 32 */
+ int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
+ z->bra = z->c; /* [, line 33 */
+ { int c3 = z->c; /* or, line 33 */
+ if (!(eq_s(z, 1, s_0))) goto lab3;
+ z->ket = z->c; /* ], line 33 */
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3;
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 33 */
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ if (!(eq_s(z, 1, s_2))) goto lab1;
+ z->ket = z->c; /* ], line 34 */
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 34 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* goto, line 32 */
+ }
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[0] = z->l;
+ z->I[1] = z->l;
+ z->I[2] = z->l;
+ { 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;
+ { int c3 = z->c; /* or, line 45 */
+ if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 45 */
+ int ret = out_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
+ { /* gopast */ /* non v, line 45 */
+ int ret = in_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 47 */
+ if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 47 */
+ int ret = out_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 47 */
+ }
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[0] = z->c; /* setmark pV, line 48 */
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c; /* do, line 50 */
+ { /* gopast */ /* grouping v, line 51 */
+ 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 */
+ 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 */
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) { /* repeat, line 56 */
+ 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
+ among_var = find_among(z, a_0, 3); /* substring, line 58 */
+ if (!(among_var)) goto lab0;
+ z->ket = z->c; /* ], line 58 */
+ switch(among_var) {
+ case 0: goto lab0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 59 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 61 */
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+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) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+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;
+ among_var = find_among_b(z, a_1, 16); /* substring, line 73 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 73 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 73 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 75 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_6); /* <-, line 77 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_7); /* <-, line 79 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_8); /* <-, line 81 */
+ 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_9))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_11); /* <-, line 85 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 4, s_12); /* <-, line 87 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_combo_suffix(struct SN_env * z) {
+ int among_var;
+ { int m_test = 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 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 92 */
+ { int ret = r_R1(z);
+ if (ret == 0) return 0; /* call R1, line 92 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 4, s_13); /* <-, line 101 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 104 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_15); /* <-, line 107 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_16); /* <-, line 113 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_17); /* <-, line 118 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_18); /* <-, line 122 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->B[0] = 1; /* set standard_suffix_removed, line 125 */
+ z->c = z->l - m_test;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->B[0] = 0; /* unset standard_suffix_removed, line 130 */
+ while(1) { /* repeat, line 131 */
+ int m1 = z->l - z->c; (void)m1;
+ { int ret = r_combo_suffix(z);
+ if (ret == 0) goto lab0; /* call combo_suffix, line 131 */
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ z->ket = z->c; /* [, line 132 */
+ among_var = find_among_b(z, a_3, 62); /* substring, line 132 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 132 */
+ { int ret = r_R2(z);
+ if (ret == 0) return 0; /* call R2, line 132 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 149 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(eq_s_b(z, 2, s_19))) return 0;
+ z->bra = z->c; /* ], line 152 */
+ { int ret = slice_from_s(z, 1, s_20); /* <-, line 152 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_21); /* <-, line 156 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->B[0] = 1; /* set standard_suffix_removed, line 160 */
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+ { int mlimit; /* setlimit, line 164 */
+ int m1 = z->l - z->c; (void)m1;
+ if (z->c < z->I[0]) return 0;
+ z->c = z->I[0]; /* tomark, line 164 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 165 */
+ among_var = find_among_b(z, a_4, 94); /* substring, line 165 */
+ if (!(among_var)) { z->lb = mlimit; return 0; }
+ z->bra = z->c; /* ], line 165 */
+ switch(among_var) {
+ case 0: { z->lb = mlimit; return 0; }
+ 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;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 1, s_22))) { z->lb = mlimit; return 0; }
+ }
+ lab0:
+ { int ret = slice_del(z); /* delete, line 200 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z); /* delete, line 214 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit;
+ }
+ return 1;
+}
+
+static int r_vowel_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c; /* [, line 219 */
+ among_var = find_among_b(z, a_5, 5); /* substring, line 219 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 219 */
+ { int ret = r_RV(z);
+ if (ret == 0) return 0; /* call RV, line 219 */
+ if (ret < 0) return ret;
+ }
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_del(z); /* delete, line 220 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int romanian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c; /* do, line 226 */
+ { int ret = r_prelude(z);
+ if (ret == 0) goto lab0; /* call prelude, line 226 */
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c; /* do, line 227 */
+ { int ret = r_mark_regions(z);
+ if (ret == 0) goto lab1; /* call mark_regions, line 227 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = c2;
+ }
+ z->lb = z->c; z->c = z->l; /* backwards, line 228 */
+
+ { int m3 = z->l - z->c; (void)m3; /* do, line 229 */
+ { int ret = r_step_0(z);
+ if (ret == 0) goto lab2; /* call step_0, line 229 */
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4; /* do, line 230 */
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab3; /* call standard_suffix, line 230 */
+ if (ret < 0) return ret;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5; /* do, line 231 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 231 */
+ if (!(z->B[0])) goto lab6; /* Boolean test standard_suffix_removed, line 231 */
+ goto lab5;
+ lab6:
+ z->c = z->l - m6;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ lab4:
+ z->c = z->l - m5;
+ }
+ { int m7 = z->l - z->c; (void)m7; /* do, line 232 */
+ { int ret = r_vowel_suffix(z);
+ if (ret == 0) goto lab7; /* call vowel_suffix, line 232 */
+ if (ret < 0) return ret;
+ }
+ lab7:
+ z->c = z->l - m7;
+ }
+ z->c = z->lb;
+ { int c8 = z->c; /* do, line 234 */
+ { int ret = r_postlude(z);
+ if (ret == 0) goto lab8; /* call postlude, line 234 */
+ if (ret < 0) return ret;
+ }
+ lab8:
+ z->c = c8;
+ }
+ return 1;
+}
+
+extern struct SN_env * romanian_UTF_8_create_env(void) { return SN_create_env(0, 3, 1); }
+
+extern void romanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/libstemmer_c/src_c/stem_UTF_8_romanian.h b/libstemmer_c/src_c/stem_UTF_8_romanian.h
new file mode 100644
index 0000000..d01e813
--- /dev/null
+++ b/libstemmer_c/src_c/stem_UTF_8_romanian.h
@@ -0,0 +1,16 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * romanian_UTF_8_create_env(void);
+extern void romanian_UTF_8_close_env(struct SN_env * z);
+
+extern int romanian_UTF_8_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/libstemmer_c/src_c/stem_UTF_8_russian.c b/libstemmer_c/src_c/stem_UTF_8_russian.c
index 19581dd..6f0a964 100644
--- a/libstemmer_c/src_c/stem_UTF_8_russian.c
+++ b/libstemmer_c/src_c/stem_UTF_8_russian.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int russian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_tidy_up(struct SN_env * z);
static int r_derivational(struct SN_env * z);
static int r_noun(struct SN_env * z);
@@ -14,21 +20,29 @@ static int r_adjective(struct SN_env * z);
static int r_perfective_gerund(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 * russian_UTF_8_create_env(void);
extern void russian_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[10] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
-static symbol s_0_1[12] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
-static symbol s_0_2[12] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
-static symbol s_0_3[2] = { 0xD0, 0xB2 };
-static symbol s_0_4[4] = { 0xD1, 0x8B, 0xD0, 0xB2 };
-static symbol s_0_5[4] = { 0xD0, 0xB8, 0xD0, 0xB2 };
-static symbol s_0_6[6] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
-static symbol s_0_7[8] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
-static symbol s_0_8[8] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
-
-static struct among a_0[9] =
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[10] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_0_1[12] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_0_2[12] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_0_3[2] = { 0xD0, 0xB2 };
+static const symbol s_0_4[4] = { 0xD1, 0x8B, 0xD0, 0xB2 };
+static const symbol s_0_5[4] = { 0xD0, 0xB8, 0xD0, 0xB2 };
+static const symbol s_0_6[6] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
+static const symbol s_0_7[8] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
+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},
@@ -41,34 +55,34 @@ static struct among a_0[9] =
/* 8 */ { 8, s_0_8, 6, 2, 0}
};
-static symbol s_1_0[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 };
-static symbol s_1_1[6] = { 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83 };
-static symbol s_1_2[4] = { 0xD1, 0x8B, 0xD1, 0x85 };
-static symbol s_1_3[4] = { 0xD0, 0xB8, 0xD1, 0x85 };
-static symbol s_1_4[4] = { 0xD1, 0x83, 0xD1, 0x8E };
-static symbol s_1_5[4] = { 0xD1, 0x8E, 0xD1, 0x8E };
-static symbol s_1_6[4] = { 0xD0, 0xB5, 0xD1, 0x8E };
-static symbol s_1_7[4] = { 0xD0, 0xBE, 0xD1, 0x8E };
-static symbol s_1_8[4] = { 0xD1, 0x8F, 0xD1, 0x8F };
-static symbol s_1_9[4] = { 0xD0, 0xB0, 0xD1, 0x8F };
-static symbol s_1_10[4] = { 0xD1, 0x8B, 0xD0, 0xB5 };
-static symbol s_1_11[4] = { 0xD0, 0xB5, 0xD0, 0xB5 };
-static symbol s_1_12[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
-static symbol s_1_13[4] = { 0xD0, 0xBE, 0xD0, 0xB5 };
-static symbol s_1_14[6] = { 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8 };
-static symbol s_1_15[6] = { 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8 };
-static symbol s_1_16[4] = { 0xD1, 0x8B, 0xD0, 0xB9 };
-static symbol s_1_17[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
-static symbol s_1_18[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
-static symbol s_1_19[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
-static symbol s_1_20[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
-static symbol s_1_21[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
-static symbol s_1_22[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
-static symbol s_1_23[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
-static symbol s_1_24[6] = { 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE };
-static symbol s_1_25[6] = { 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE };
-
-static struct among a_1[26] =
+static const symbol s_1_0[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 };
+static const symbol s_1_1[6] = { 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83 };
+static const symbol s_1_2[4] = { 0xD1, 0x8B, 0xD1, 0x85 };
+static const symbol s_1_3[4] = { 0xD0, 0xB8, 0xD1, 0x85 };
+static const symbol s_1_4[4] = { 0xD1, 0x83, 0xD1, 0x8E };
+static const symbol s_1_5[4] = { 0xD1, 0x8E, 0xD1, 0x8E };
+static const symbol s_1_6[4] = { 0xD0, 0xB5, 0xD1, 0x8E };
+static const symbol s_1_7[4] = { 0xD0, 0xBE, 0xD1, 0x8E };
+static const symbol s_1_8[4] = { 0xD1, 0x8F, 0xD1, 0x8F };
+static const symbol s_1_9[4] = { 0xD0, 0xB0, 0xD1, 0x8F };
+static const symbol s_1_10[4] = { 0xD1, 0x8B, 0xD0, 0xB5 };
+static const symbol s_1_11[4] = { 0xD0, 0xB5, 0xD0, 0xB5 };
+static const symbol s_1_12[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
+static const symbol s_1_13[4] = { 0xD0, 0xBE, 0xD0, 0xB5 };
+static const symbol s_1_14[6] = { 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_1_15[6] = { 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_1_16[4] = { 0xD1, 0x8B, 0xD0, 0xB9 };
+static const symbol s_1_17[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_1_18[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
+static const symbol s_1_19[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
+static const symbol s_1_20[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
+static const symbol s_1_21[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_1_22[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
+static const symbol s_1_23[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
+static const symbol s_1_24[6] = { 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE };
+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},
@@ -98,16 +112,16 @@ static struct among a_1[26] =
/* 25 */ { 6, s_1_25, -1, 1, 0}
};
-static symbol s_2_0[4] = { 0xD0, 0xB2, 0xD1, 0x88 };
-static symbol s_2_1[6] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88 };
-static symbol s_2_2[6] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88 };
-static symbol s_2_3[2] = { 0xD1, 0x89 };
-static symbol s_2_4[4] = { 0xD1, 0x8E, 0xD1, 0x89 };
-static symbol s_2_5[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89 };
-static symbol s_2_6[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
-static symbol s_2_7[4] = { 0xD0, 0xBD, 0xD0, 0xBD };
+static const symbol s_2_0[4] = { 0xD0, 0xB2, 0xD1, 0x88 };
+static const symbol s_2_1[6] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88 };
+static const symbol s_2_2[6] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88 };
+static const symbol s_2_3[2] = { 0xD1, 0x89 };
+static const symbol s_2_4[4] = { 0xD1, 0x8E, 0xD1, 0x89 };
+static const symbol s_2_5[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89 };
+static const symbol s_2_6[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_2_7[4] = { 0xD0, 0xBD, 0xD0, 0xBD };
-static struct among a_2[8] =
+static const struct among a_2[8] =
{
/* 0 */ { 4, s_2_0, -1, 1, 0},
/* 1 */ { 6, s_2_1, 0, 2, 0},
@@ -119,63 +133,63 @@ static struct among a_2[8] =
/* 7 */ { 4, s_2_7, -1, 1, 0}
};
-static symbol s_3_0[4] = { 0xD1, 0x81, 0xD1, 0x8C };
-static symbol s_3_1[4] = { 0xD1, 0x81, 0xD1, 0x8F };
+static const symbol s_3_0[4] = { 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_3_1[4] = { 0xD1, 0x81, 0xD1, 0x8F };
-static struct among a_3[2] =
+static const struct among a_3[2] =
{
/* 0 */ { 4, s_3_0, -1, 1, 0},
/* 1 */ { 4, s_3_1, -1, 1, 0}
};
-static symbol s_4_0[4] = { 0xD1, 0x8B, 0xD1, 0x82 };
-static symbol s_4_1[4] = { 0xD1, 0x8E, 0xD1, 0x82 };
-static symbol s_4_2[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82 };
-static symbol s_4_3[4] = { 0xD1, 0x8F, 0xD1, 0x82 };
-static symbol s_4_4[4] = { 0xD0, 0xB5, 0xD1, 0x82 };
-static symbol s_4_5[6] = { 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82 };
-static symbol s_4_6[4] = { 0xD0, 0xB8, 0xD1, 0x82 };
-static symbol s_4_7[4] = { 0xD0, 0xBD, 0xD1, 0x8B };
-static symbol s_4_8[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B };
-static symbol s_4_9[4] = { 0xD1, 0x82, 0xD1, 0x8C };
-static symbol s_4_10[6] = { 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C };
-static symbol s_4_11[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C };
-static symbol s_4_12[6] = { 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C };
-static symbol s_4_13[6] = { 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C };
-static symbol s_4_14[2] = { 0xD1, 0x8E };
-static symbol s_4_15[4] = { 0xD1, 0x83, 0xD1, 0x8E };
-static symbol s_4_16[4] = { 0xD0, 0xBB, 0xD0, 0xB0 };
-static symbol s_4_17[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0 };
-static symbol s_4_18[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0 };
-static symbol s_4_19[4] = { 0xD0, 0xBD, 0xD0, 0xB0 };
-static symbol s_4_20[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0 };
-static symbol s_4_21[6] = { 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5 };
-static symbol s_4_22[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5 };
-static symbol s_4_23[6] = { 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
-static symbol s_4_24[8] = { 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
-static symbol s_4_25[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
-static symbol s_4_26[4] = { 0xD0, 0xBB, 0xD0, 0xB8 };
-static symbol s_4_27[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8 };
-static symbol s_4_28[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8 };
-static symbol s_4_29[2] = { 0xD0, 0xB9 };
-static symbol s_4_30[4] = { 0xD1, 0x83, 0xD0, 0xB9 };
-static symbol s_4_31[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
-static symbol s_4_32[2] = { 0xD0, 0xBB };
-static symbol s_4_33[4] = { 0xD1, 0x8B, 0xD0, 0xBB };
-static symbol s_4_34[4] = { 0xD0, 0xB8, 0xD0, 0xBB };
-static symbol s_4_35[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
-static symbol s_4_36[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
-static symbol s_4_37[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
-static symbol s_4_38[2] = { 0xD0, 0xBD };
-static symbol s_4_39[4] = { 0xD0, 0xB5, 0xD0, 0xBD };
-static symbol s_4_40[4] = { 0xD0, 0xBB, 0xD0, 0xBE };
-static symbol s_4_41[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE };
-static symbol s_4_42[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE };
-static symbol s_4_43[4] = { 0xD0, 0xBD, 0xD0, 0xBE };
-static symbol s_4_44[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE };
-static symbol s_4_45[6] = { 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE };
-
-static struct among a_4[46] =
+static const symbol s_4_0[4] = { 0xD1, 0x8B, 0xD1, 0x82 };
+static const symbol s_4_1[4] = { 0xD1, 0x8E, 0xD1, 0x82 };
+static const symbol s_4_2[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82 };
+static const symbol s_4_3[4] = { 0xD1, 0x8F, 0xD1, 0x82 };
+static const symbol s_4_4[4] = { 0xD0, 0xB5, 0xD1, 0x82 };
+static const symbol s_4_5[6] = { 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82 };
+static const symbol s_4_6[4] = { 0xD0, 0xB8, 0xD1, 0x82 };
+static const symbol s_4_7[4] = { 0xD0, 0xBD, 0xD1, 0x8B };
+static const symbol s_4_8[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B };
+static const symbol s_4_9[4] = { 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_4_10[6] = { 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_4_11[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_4_12[6] = { 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C };
+static const symbol s_4_13[6] = { 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C };
+static const symbol s_4_14[2] = { 0xD1, 0x8E };
+static const symbol s_4_15[4] = { 0xD1, 0x83, 0xD1, 0x8E };
+static const symbol s_4_16[4] = { 0xD0, 0xBB, 0xD0, 0xB0 };
+static const symbol s_4_17[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0 };
+static const symbol s_4_18[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0 };
+static const symbol s_4_19[4] = { 0xD0, 0xBD, 0xD0, 0xB0 };
+static const symbol s_4_20[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0 };
+static const symbol s_4_21[6] = { 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_22[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_23[6] = { 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_24[8] = { 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_25[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_26[4] = { 0xD0, 0xBB, 0xD0, 0xB8 };
+static const symbol s_4_27[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8 };
+static const symbol s_4_28[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8 };
+static const symbol s_4_29[2] = { 0xD0, 0xB9 };
+static const symbol s_4_30[4] = { 0xD1, 0x83, 0xD0, 0xB9 };
+static const symbol s_4_31[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_4_32[2] = { 0xD0, 0xBB };
+static const symbol s_4_33[4] = { 0xD1, 0x8B, 0xD0, 0xBB };
+static const symbol s_4_34[4] = { 0xD0, 0xB8, 0xD0, 0xBB };
+static const symbol s_4_35[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
+static const symbol s_4_36[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_4_37[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
+static const symbol s_4_38[2] = { 0xD0, 0xBD };
+static const symbol s_4_39[4] = { 0xD0, 0xB5, 0xD0, 0xBD };
+static const symbol s_4_40[4] = { 0xD0, 0xBB, 0xD0, 0xBE };
+static const symbol s_4_41[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE };
+static const symbol s_4_42[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE };
+static const symbol s_4_43[4] = { 0xD0, 0xBD, 0xD0, 0xBE };
+static const symbol s_4_44[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE };
+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},
@@ -225,44 +239,44 @@ static struct among a_4[46] =
/* 45 */ { 6, s_4_45, 43, 1, 0}
};
-static symbol s_5_0[2] = { 0xD1, 0x83 };
-static symbol s_5_1[4] = { 0xD1, 0x8F, 0xD1, 0x85 };
-static symbol s_5_2[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85 };
-static symbol s_5_3[4] = { 0xD0, 0xB0, 0xD1, 0x85 };
-static symbol s_5_4[2] = { 0xD1, 0x8B };
-static symbol s_5_5[2] = { 0xD1, 0x8C };
-static symbol s_5_6[2] = { 0xD1, 0x8E };
-static symbol s_5_7[4] = { 0xD1, 0x8C, 0xD1, 0x8E };
-static symbol s_5_8[4] = { 0xD0, 0xB8, 0xD1, 0x8E };
-static symbol s_5_9[2] = { 0xD1, 0x8F };
-static symbol s_5_10[4] = { 0xD1, 0x8C, 0xD1, 0x8F };
-static symbol s_5_11[4] = { 0xD0, 0xB8, 0xD1, 0x8F };
-static symbol s_5_12[2] = { 0xD0, 0xB0 };
-static symbol s_5_13[4] = { 0xD0, 0xB5, 0xD0, 0xB2 };
-static symbol s_5_14[4] = { 0xD0, 0xBE, 0xD0, 0xB2 };
-static symbol s_5_15[2] = { 0xD0, 0xB5 };
-static symbol s_5_16[4] = { 0xD1, 0x8C, 0xD0, 0xB5 };
-static symbol s_5_17[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
-static symbol s_5_18[2] = { 0xD0, 0xB8 };
-static symbol s_5_19[4] = { 0xD0, 0xB5, 0xD0, 0xB8 };
-static symbol s_5_20[4] = { 0xD0, 0xB8, 0xD0, 0xB8 };
-static symbol s_5_21[6] = { 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
-static symbol s_5_22[8] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
-static symbol s_5_23[6] = { 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8 };
-static symbol s_5_24[2] = { 0xD0, 0xB9 };
-static symbol s_5_25[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
-static symbol s_5_26[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9 };
-static symbol s_5_27[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
-static symbol s_5_28[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
-static symbol s_5_29[4] = { 0xD1, 0x8F, 0xD0, 0xBC };
-static symbol s_5_30[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC };
-static symbol s_5_31[4] = { 0xD0, 0xB0, 0xD0, 0xBC };
-static symbol s_5_32[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
-static symbol s_5_33[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC };
-static symbol s_5_34[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
-static symbol s_5_35[2] = { 0xD0, 0xBE };
-
-static struct among a_5[36] =
+static const symbol s_5_0[2] = { 0xD1, 0x83 };
+static const symbol s_5_1[4] = { 0xD1, 0x8F, 0xD1, 0x85 };
+static const symbol s_5_2[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85 };
+static const symbol s_5_3[4] = { 0xD0, 0xB0, 0xD1, 0x85 };
+static const symbol s_5_4[2] = { 0xD1, 0x8B };
+static const symbol s_5_5[2] = { 0xD1, 0x8C };
+static const symbol s_5_6[2] = { 0xD1, 0x8E };
+static const symbol s_5_7[4] = { 0xD1, 0x8C, 0xD1, 0x8E };
+static const symbol s_5_8[4] = { 0xD0, 0xB8, 0xD1, 0x8E };
+static const symbol s_5_9[2] = { 0xD1, 0x8F };
+static const symbol s_5_10[4] = { 0xD1, 0x8C, 0xD1, 0x8F };
+static const symbol s_5_11[4] = { 0xD0, 0xB8, 0xD1, 0x8F };
+static const symbol s_5_12[2] = { 0xD0, 0xB0 };
+static const symbol s_5_13[4] = { 0xD0, 0xB5, 0xD0, 0xB2 };
+static const symbol s_5_14[4] = { 0xD0, 0xBE, 0xD0, 0xB2 };
+static const symbol s_5_15[2] = { 0xD0, 0xB5 };
+static const symbol s_5_16[4] = { 0xD1, 0x8C, 0xD0, 0xB5 };
+static const symbol s_5_17[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
+static const symbol s_5_18[2] = { 0xD0, 0xB8 };
+static const symbol s_5_19[4] = { 0xD0, 0xB5, 0xD0, 0xB8 };
+static const symbol s_5_20[4] = { 0xD0, 0xB8, 0xD0, 0xB8 };
+static const symbol s_5_21[6] = { 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_5_22[8] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_5_23[6] = { 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_5_24[2] = { 0xD0, 0xB9 };
+static const symbol s_5_25[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_5_26[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_5_27[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
+static const symbol s_5_28[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
+static const symbol s_5_29[4] = { 0xD1, 0x8F, 0xD0, 0xBC };
+static const symbol s_5_30[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC };
+static const symbol s_5_31[4] = { 0xD0, 0xB0, 0xD0, 0xBC };
+static const symbol s_5_32[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_5_33[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_5_34[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
+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},
@@ -302,21 +316,21 @@ static struct among a_5[36] =
/* 35 */ { 2, s_5_35, -1, 1, 0}
};
-static symbol s_6_0[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 };
-static symbol s_6_1[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_6_0[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 };
+static const symbol s_6_1[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C };
-static struct among a_6[2] =
+static const struct among a_6[2] =
{
/* 0 */ { 6, s_6_0, -1, 1, 0},
/* 1 */ { 8, s_6_1, -1, 1, 0}
};
-static symbol s_7_0[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 };
-static symbol s_7_1[2] = { 0xD1, 0x8C };
-static symbol s_7_2[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5 };
-static symbol s_7_3[2] = { 0xD0, 0xBD };
+static const symbol s_7_0[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 };
+static const symbol s_7_1[2] = { 0xD1, 0x8C };
+static const symbol s_7_2[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5 };
+static const symbol s_7_3[2] = { 0xD0, 0xBD };
-static struct among a_7[4] =
+static const struct among a_7[4] =
{
/* 0 */ { 6, s_7_0, -1, 1, 0},
/* 1 */ { 2, s_7_1, -1, 3, 0},
@@ -324,63 +338,47 @@ static struct among a_7[4] =
/* 3 */ { 2, s_7_3, -1, 2, 0}
};
-static unsigned char g_v[] = { 33, 65, 8, 232 };
+static const unsigned char g_v[] = { 33, 65, 8, 232 };
-static symbol s_0[] = { 0xD0, 0xB0 };
-static symbol s_1[] = { 0xD1, 0x8F };
-static symbol s_2[] = { 0xD0, 0xB0 };
-static symbol s_3[] = { 0xD1, 0x8F };
-static symbol s_4[] = { 0xD0, 0xB0 };
-static symbol s_5[] = { 0xD1, 0x8F };
-static symbol s_6[] = { 0xD0, 0xBD };
-static symbol s_7[] = { 0xD0, 0xBD };
-static symbol s_8[] = { 0xD0, 0xBD };
-static symbol s_9[] = { 0xD0, 0xB8 };
+static const symbol s_0[] = { 0xD0, 0xB0 };
+static const symbol s_1[] = { 0xD1, 0x8F };
+static const symbol s_2[] = { 0xD0, 0xB0 };
+static const symbol s_3[] = { 0xD1, 0x8F };
+static const symbol s_4[] = { 0xD0, 0xB0 };
+static const symbol s_5[] = { 0xD1, 0x8F };
+static const symbol s_6[] = { 0xD0, 0xBD };
+static const symbol s_7[] = { 0xD0, 0xBD };
+static const symbol s_8[] = { 0xD0, 0xBD };
+static const symbol s_9[] = { 0xD0, 0xB8 };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
- { int c = z->c; /* do, line 61 */
- while(1) { /* gopast, line 62 */
- if (!(in_grouping_U(z, g_v, 1072, 1103))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 62 */
- }
+ { int c1 = z->c; /* do, line 61 */
+ { /* gopast */ /* grouping v, line 62 */
+ 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 62 */
- while(1) { /* gopast, line 62 */
- if (!(out_grouping_U(z, g_v, 1072, 1103))) goto lab2;
- break;
- lab2:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 62 */
- }
+ { /* gopast */ /* non v, line 62 */
+ int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
}
- while(1) { /* gopast, line 63 */
- if (!(in_grouping_U(z, g_v, 1072, 1103))) goto lab3;
- break;
- lab3:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 63 */
- }
+ { /* gopast */ /* grouping v, line 63 */
+ int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
}
- while(1) { /* gopast, line 63 */
- if (!(out_grouping_U(z, g_v, 1072, 1103))) goto lab4;
- break;
- lab4:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* gopast, line 63 */
- }
+ { /* gopast */ /* non v, line 63 */
+ 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 63 */
lab0:
- z->c = c;
+ z->c = c1;
}
return 1;
}
@@ -399,22 +397,20 @@ static int r_perfective_gerund(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 76 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 76 */
if (!(eq_s_b(z, 2, s_0))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_1))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 76 */
+ { int ret = slice_del(z); /* delete, line 76 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 83 */
+ { int ret = slice_del(z); /* delete, line 83 */
if (ret < 0) return ret;
}
break;
@@ -431,8 +427,7 @@ static int r_adjective(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 97 */
+ { int ret = slice_del(z); /* delete, line 97 */
if (ret < 0) return ret;
}
break;
@@ -446,30 +441,28 @@ static int r_adjectival(struct SN_env * z) {
if (ret == 0) return 0; /* call adjective, line 102 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 109 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 109 */
z->ket = z->c; /* [, line 110 */
among_var = find_among_b(z, a_2, 8); /* substring, line 110 */
- if (!(among_var)) { z->c = z->l - m; goto lab0; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 110 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab0; }
+ case 0: { z->c = z->l - m_keep; goto lab0; }
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 115 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 115 */
if (!(eq_s_b(z, 2, s_2))) goto lab2;
goto lab1;
lab2:
- z->c = z->l - m;
- if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m; goto lab0; }
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m_keep; goto lab0; }
}
lab1:
- { int ret;
- ret = slice_del(z); /* delete, line 115 */
+ { int ret = slice_del(z); /* delete, line 115 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 122 */
+ { int ret = slice_del(z); /* delete, line 122 */
if (ret < 0) return ret;
}
break;
@@ -483,14 +476,14 @@ static int r_adjectival(struct SN_env * z) {
static int r_reflexive(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 129 */
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0;
among_var = find_among_b(z, a_3, 2); /* substring, line 129 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 129 */
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 132 */
+ { int ret = slice_del(z); /* delete, line 132 */
if (ret < 0) return ret;
}
break;
@@ -507,22 +500,20 @@ static int r_verb(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* or, line 143 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 143 */
if (!(eq_s_b(z, 2, s_4))) goto lab1;
goto lab0;
lab1:
- z->c = z->l - m;
+ z->c = z->l - m1;
if (!(eq_s_b(z, 2, s_5))) return 0;
}
lab0:
- { int ret;
- ret = slice_del(z); /* delete, line 143 */
+ { int ret = slice_del(z); /* delete, line 143 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 151 */
+ { int ret = slice_del(z); /* delete, line 151 */
if (ret < 0) return ret;
}
break;
@@ -539,8 +530,7 @@ static int r_noun(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 167 */
+ { int ret = slice_del(z); /* delete, line 167 */
if (ret < 0) return ret;
}
break;
@@ -551,6 +541,7 @@ static int r_noun(struct SN_env * z) {
static int r_derivational(struct SN_env * z) {
int among_var;
z->ket = z->c; /* [, line 176 */
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0;
among_var = find_among_b(z, a_6, 2); /* substring, line 176 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 176 */
@@ -561,8 +552,7 @@ static int r_derivational(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
@@ -579,29 +569,25 @@ static int r_tidy_up(struct SN_env * z) {
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 188 */
+ { int ret = slice_del(z); /* delete, line 188 */
if (ret < 0) return ret;
}
z->ket = z->c; /* [, line 189 */
if (!(eq_s_b(z, 2, s_6))) return 0;
z->bra = z->c; /* ], line 189 */
if (!(eq_s_b(z, 2, s_7))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 189 */
+ { int ret = slice_del(z); /* delete, line 189 */
if (ret < 0) return ret;
}
break;
case 2:
if (!(eq_s_b(z, 2, s_8))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 192 */
+ { int ret = slice_del(z); /* delete, line 192 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_del(z); /* delete, line 194 */
+ { int ret = slice_del(z); /* delete, line 194 */
if (ret < 0) return ret;
}
break;
@@ -610,54 +596,54 @@ static int r_tidy_up(struct SN_env * z) {
}
extern int russian_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 201 */
+ { int c1 = z->c; /* do, line 201 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 201 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 202 */
- { int m3; /* setlimit, line 202 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 202 */
+ int m2 = z->l - z->c; (void)m2;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 202 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* do, line 203 */
- { int m = z->l - z->c; (void) m; /* or, line 204 */
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m2;
+ { int m3 = z->l - z->c; (void)m3; /* do, line 203 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 204 */
{ int ret = r_perfective_gerund(z);
if (ret == 0) goto lab3; /* call perfective_gerund, line 204 */
if (ret < 0) return ret;
}
goto lab2;
lab3:
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* try, line 205 */
+ z->c = z->l - m4;
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 205 */
{ int ret = r_reflexive(z);
- if (ret == 0) { z->c = z->l - m; goto lab4; } /* call reflexive, line 205 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call reflexive, line 205 */
if (ret < 0) return ret;
}
lab4:
;
}
- { int m = z->l - z->c; (void) m; /* or, line 206 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 206 */
{ int ret = r_adjectival(z);
if (ret == 0) goto lab6; /* call adjectival, line 206 */
if (ret < 0) return ret;
}
goto lab5;
lab6:
- z->c = z->l - m;
+ z->c = z->l - m5;
{ int ret = r_verb(z);
if (ret == 0) goto lab7; /* call verb, line 206 */
if (ret < 0) return ret;
}
goto lab5;
lab7:
- z->c = z->l - m;
+ z->c = z->l - m5;
{ int ret = r_noun(z);
if (ret == 0) goto lab1; /* call noun, line 206 */
if (ret < 0) return ret;
@@ -668,36 +654,35 @@ extern int russian_UTF_8_stem(struct SN_env * z) {
}
lab2:
lab1:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* try, line 209 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 209 */
z->ket = z->c; /* [, line 209 */
- if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m; goto lab8; }
+ if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m_keep; goto lab8; }
z->bra = z->c; /* ], line 209 */
- { int ret;
- ret = slice_del(z); /* delete, line 209 */
+ { int ret = slice_del(z); /* delete, line 209 */
if (ret < 0) return ret;
}
lab8:
;
}
- { int m = z->l - z->c; (void) m; /* do, line 212 */
+ { int m6 = z->l - z->c; (void)m6; /* do, line 212 */
{ int ret = r_derivational(z);
if (ret == 0) goto lab9; /* call derivational, line 212 */
if (ret < 0) return ret;
}
lab9:
- z->c = z->l - m;
+ z->c = z->l - m6;
}
- { int m = z->l - z->c; (void) m; /* do, line 213 */
+ { int m7 = z->l - z->c; (void)m7; /* do, line 213 */
{ int ret = r_tidy_up(z);
if (ret == 0) goto lab10; /* call tidy_up, line 213 */
if (ret < 0) return ret;
}
lab10:
- z->c = z->l - m;
+ z->c = z->l - m7;
}
- z->lb = m3;
+ z->lb = mlimit;
}
z->c = z->lb;
return 1;
@@ -705,5 +690,5 @@ extern int russian_UTF_8_stem(struct SN_env * z) {
extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
-extern void russian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void russian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_spanish.c b/libstemmer_c/src_c/stem_UTF_8_spanish.c
index 77771ba..9550d67 100644
--- a/libstemmer_c/src_c/stem_UTF_8_spanish.c
+++ b/libstemmer_c/src_c/stem_UTF_8_spanish.c
@@ -3,7 +3,13 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int spanish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_residual_suffix(struct SN_env * z);
static int r_verb_suffix(struct SN_env * z);
static int r_y_verb_suffix(struct SN_env * z);
@@ -14,17 +20,25 @@ static int r_R1(struct SN_env * z);
static int r_RV(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
static int r_postlude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * spanish_UTF_8_create_env(void);
extern void spanish_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_1[2] = { 0xC3, 0xA1 };
-static symbol s_0_2[2] = { 0xC3, 0xA9 };
-static symbol s_0_3[2] = { 0xC3, 0xAD };
-static symbol s_0_4[2] = { 0xC3, 0xB3 };
-static symbol s_0_5[2] = { 0xC3, 0xBA };
-static struct among a_0[6] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC3, 0xA1 };
+static const symbol s_0_2[2] = { 0xC3, 0xA9 };
+static const symbol s_0_3[2] = { 0xC3, 0xAD };
+static const symbol s_0_4[2] = { 0xC3, 0xB3 };
+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},
@@ -34,21 +48,21 @@ static struct among a_0[6] =
/* 5 */ { 2, s_0_5, 0, 5, 0}
};
-static symbol s_1_0[2] = { 'l', 'a' };
-static symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
-static symbol s_1_2[2] = { 'l', 'e' };
-static symbol s_1_3[2] = { 'm', 'e' };
-static symbol s_1_4[2] = { 's', 'e' };
-static symbol s_1_5[2] = { 'l', 'o' };
-static symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
-static symbol s_1_7[3] = { 'l', 'a', 's' };
-static symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
-static symbol s_1_9[3] = { 'l', 'e', 's' };
-static symbol s_1_10[3] = { 'l', 'o', 's' };
-static symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
-static symbol s_1_12[3] = { 'n', 'o', 's' };
+static const symbol s_1_0[2] = { 'l', 'a' };
+static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
+static const symbol s_1_2[2] = { 'l', 'e' };
+static const symbol s_1_3[2] = { 'm', 'e' };
+static const symbol s_1_4[2] = { 's', 'e' };
+static const symbol s_1_5[2] = { 'l', 'o' };
+static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
+static const symbol s_1_7[3] = { 'l', 'a', 's' };
+static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
+static const symbol s_1_9[3] = { 'l', 'e', 's' };
+static const symbol s_1_10[3] = { 'l', 'o', 's' };
+static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
+static const symbol s_1_12[3] = { 'n', 'o', 's' };
-static struct among a_1[13] =
+static const struct among a_1[13] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 4, s_1_1, 0, -1, 0},
@@ -65,19 +79,19 @@ static struct among a_1[13] =
/* 12 */ { 3, s_1_12, -1, -1, 0}
};
-static symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
-static symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
-static symbol s_2_3[5] = { 0xC3, 0xA1, 'n', 'd', 'o' };
-static symbol s_2_4[6] = { 'i', 0xC3, 0xA9, 'n', 'd', 'o' };
-static symbol s_2_5[2] = { 'a', 'r' };
-static symbol s_2_6[2] = { 'e', 'r' };
-static symbol s_2_7[2] = { 'i', 'r' };
-static symbol s_2_8[3] = { 0xC3, 0xA1, 'r' };
-static symbol s_2_9[3] = { 0xC3, 0xA9, 'r' };
-static symbol s_2_10[3] = { 0xC3, 0xAD, 'r' };
+static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_2_3[5] = { 0xC3, 0xA1, 'n', 'd', 'o' };
+static const symbol s_2_4[6] = { 'i', 0xC3, 0xA9, 'n', 'd', 'o' };
+static const symbol s_2_5[2] = { 'a', 'r' };
+static const symbol s_2_6[2] = { 'e', 'r' };
+static const symbol s_2_7[2] = { 'i', 'r' };
+static const symbol s_2_8[3] = { 0xC3, 0xA1, 'r' };
+static const symbol s_2_9[3] = { 0xC3, 0xA9, 'r' };
+static const symbol s_2_10[3] = { 0xC3, 0xAD, 'r' };
-static struct among a_2[11] =
+static const struct among a_2[11] =
{
/* 0 */ { 4, s_2_0, -1, 6, 0},
/* 1 */ { 5, s_2_1, -1, 6, 0},
@@ -92,12 +106,12 @@ static struct among a_2[11] =
/* 10 */ { 3, s_2_10, -1, 5, 0}
};
-static symbol s_3_0[2] = { 'i', 'c' };
-static symbol s_3_1[2] = { 'a', 'd' };
-static symbol s_3_2[2] = { 'o', 's' };
-static symbol s_3_3[2] = { 'i', 'v' };
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[2] = { 'a', 'd' };
+static const symbol s_3_2[2] = { 'o', 's' };
+static const symbol s_3_3[2] = { 'i', 'v' };
-static struct among a_3[4] =
+static const struct among a_3[4] =
{
/* 0 */ { 2, s_3_0, -1, -1, 0},
/* 1 */ { 2, s_3_1, -1, -1, 0},
@@ -105,76 +119,76 @@ static struct among a_3[4] =
/* 3 */ { 2, s_3_3, -1, 1, 0}
};
-static symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
-static struct among a_4[3] =
+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}
};
-static symbol s_5_0[2] = { 'i', 'c' };
-static symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
-static symbol s_5_2[2] = { 'i', 'v' };
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
-static struct among a_5[3] =
+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}
};
-static symbol s_6_0[3] = { 'i', 'c', 'a' };
-static symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
-static symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
-static symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
-static symbol s_6_4[3] = { 'o', 's', 'a' };
-static symbol s_6_5[4] = { 'i', 's', 't', 'a' };
-static symbol s_6_6[3] = { 'i', 'v', 'a' };
-static symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
-static symbol s_6_8[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
-static symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
-static symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
-static symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
-static symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
-static symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
-static symbol s_6_15[6] = { 'a', 'c', 'i', 0xC3, 0xB3, 'n' };
-static symbol s_6_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
-static symbol s_6_17[3] = { 'i', 'c', 'o' };
-static symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
-static symbol s_6_19[3] = { 'o', 's', 'o' };
-static symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
-static symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
-static symbol s_6_22[3] = { 'i', 'v', 'o' };
-static symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
-static symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
-static symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
-static symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
-static symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
-static symbol s_6_28[4] = { 'o', 's', 'a', 's' };
-static symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
-static symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
-static symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
-static symbol s_6_32[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
-static symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
-static symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
-static symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
-static symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
-static symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
-static symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
-static symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
-static symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
-static symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
-static symbol s_6_42[4] = { 'o', 's', 'o', 's' };
-static symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
-static symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
-static symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
+static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
+static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_6_4[3] = { 'o', 's', 'a' };
+static const symbol s_6_5[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_6[3] = { 'i', 'v', 'a' };
+static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_8[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
+static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
+static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_15[6] = { 'a', 'c', 'i', 0xC3, 0xB3, 'n' };
+static const symbol s_6_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
+static const symbol s_6_17[3] = { 'i', 'c', 'o' };
+static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_19[3] = { 'o', 's', 'o' };
+static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_22[3] = { 'i', 'v', 'o' };
+static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_6_28[4] = { 'o', 's', 'a', 's' };
+static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
+static const symbol s_6_32[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
+static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_6_42[4] = { 'o', 's', 'o', 's' };
+static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
-static struct among a_6[46] =
+static const struct among a_6[46] =
{
/* 0 */ { 3, s_6_0, -1, 1, 0},
/* 1 */ { 5, s_6_1, -1, 2, 0},
@@ -224,20 +238,20 @@ static struct among a_6[46] =
/* 45 */ { 4, s_6_45, -1, 9, 0}
};
-static symbol s_7_0[2] = { 'y', 'a' };
-static symbol s_7_1[2] = { 'y', 'e' };
-static symbol s_7_2[3] = { 'y', 'a', 'n' };
-static symbol s_7_3[3] = { 'y', 'e', 'n' };
-static symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
-static symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
-static symbol s_7_6[2] = { 'y', 'o' };
-static symbol s_7_7[3] = { 'y', 'a', 's' };
-static symbol s_7_8[3] = { 'y', 'e', 's' };
-static symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
-static symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
-static symbol s_7_11[3] = { 'y', 0xC3, 0xB3 };
+static const symbol s_7_0[2] = { 'y', 'a' };
+static const symbol s_7_1[2] = { 'y', 'e' };
+static const symbol s_7_2[3] = { 'y', 'a', 'n' };
+static const symbol s_7_3[3] = { 'y', 'e', 'n' };
+static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
+static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_7_6[2] = { 'y', 'o' };
+static const symbol s_7_7[3] = { 'y', 'a', 's' };
+static const symbol s_7_8[3] = { 'y', 'e', 's' };
+static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
+static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
+static const symbol s_7_11[3] = { 'y', 0xC3, 0xB3 };
-static struct among a_7[12] =
+static const struct among a_7[12] =
{
/* 0 */ { 2, s_7_0, -1, 1, 0},
/* 1 */ { 2, s_7_1, -1, 1, 0},
@@ -253,104 +267,104 @@ static struct among a_7[12] =
/* 11 */ { 3, s_7_11, -1, 1, 0}
};
-static symbol s_8_0[3] = { 'a', 'b', 'a' };
-static symbol s_8_1[3] = { 'a', 'd', 'a' };
-static symbol s_8_2[3] = { 'i', 'd', 'a' };
-static symbol s_8_3[3] = { 'a', 'r', 'a' };
-static symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
-static symbol s_8_5[3] = { 0xC3, 0xAD, 'a' };
-static symbol s_8_6[5] = { 'a', 'r', 0xC3, 0xAD, 'a' };
-static symbol s_8_7[5] = { 'e', 'r', 0xC3, 0xAD, 'a' };
-static symbol s_8_8[5] = { 'i', 'r', 0xC3, 0xAD, 'a' };
-static symbol s_8_9[2] = { 'a', 'd' };
-static symbol s_8_10[2] = { 'e', 'd' };
-static symbol s_8_11[2] = { 'i', 'd' };
-static symbol s_8_12[3] = { 'a', 's', 'e' };
-static symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
-static symbol s_8_14[4] = { 'a', 's', 't', 'e' };
-static symbol s_8_15[4] = { 'i', 's', 't', 'e' };
-static symbol s_8_16[2] = { 'a', 'n' };
-static symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
-static symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
-static symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
-static symbol s_8_20[4] = { 0xC3, 0xAD, 'a', 'n' };
-static symbol s_8_21[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 'n' };
-static symbol s_8_22[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 'n' };
-static symbol s_8_23[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 'n' };
-static symbol s_8_24[2] = { 'e', 'n' };
-static symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
-static symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
-static symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
-static symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
-static symbol s_8_29[5] = { 'a', 'r', 0xC3, 0xA1, 'n' };
-static symbol s_8_30[5] = { 'e', 'r', 0xC3, 0xA1, 'n' };
-static symbol s_8_31[5] = { 'i', 'r', 0xC3, 0xA1, 'n' };
-static symbol s_8_32[3] = { 'a', 'd', 'o' };
-static symbol s_8_33[3] = { 'i', 'd', 'o' };
-static symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
-static symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
-static symbol s_8_36[2] = { 'a', 'r' };
-static symbol s_8_37[2] = { 'e', 'r' };
-static symbol s_8_38[2] = { 'i', 'r' };
-static symbol s_8_39[2] = { 'a', 's' };
-static symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
-static symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
-static symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
-static symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
-static symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
-static symbol s_8_45[4] = { 0xC3, 0xAD, 'a', 's' };
-static symbol s_8_46[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 's' };
-static symbol s_8_47[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 's' };
-static symbol s_8_48[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 's' };
-static symbol s_8_49[2] = { 'e', 's' };
-static symbol s_8_50[4] = { 'a', 's', 'e', 's' };
-static symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
-static symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
-static symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
-static symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
-static symbol s_8_55[5] = { 0xC3, 0xAD, 'a', 'i', 's' };
-static symbol s_8_56[7] = { 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
-static symbol s_8_57[7] = { 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
-static symbol s_8_58[7] = { 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
-static symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
-static symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
-static symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
-static symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
-static symbol s_8_63[4] = { 0xC3, 0xA1, 'i', 's' };
-static symbol s_8_64[4] = { 0xC3, 0xA9, 'i', 's' };
-static symbol s_8_65[6] = { 'a', 'r', 0xC3, 0xA9, 'i', 's' };
-static symbol s_8_66[6] = { 'e', 'r', 0xC3, 0xA9, 'i', 's' };
-static symbol s_8_67[6] = { 'i', 'r', 0xC3, 0xA9, 'i', 's' };
-static symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
-static symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
-static symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
-static symbol s_8_71[7] = { 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's' };
-static symbol s_8_72[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
-static symbol s_8_73[8] = { 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
-static symbol s_8_74[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_8_75[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_8_76[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_8_77[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
-static symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
-static symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
-static symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
-static symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
-static symbol s_8_82[7] = { 0xC3, 0xA1, 's', 'e', 'm', 'o', 's' };
-static symbol s_8_83[8] = { 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's' };
-static symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
-static symbol s_8_85[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
-static symbol s_8_86[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
-static symbol s_8_87[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
-static symbol s_8_88[3] = { 0xC3, 0xAD, 's' };
-static symbol s_8_89[4] = { 'a', 'r', 0xC3, 0xA1 };
-static symbol s_8_90[4] = { 'e', 'r', 0xC3, 0xA1 };
-static symbol s_8_91[4] = { 'i', 'r', 0xC3, 0xA1 };
-static symbol s_8_92[4] = { 'a', 'r', 0xC3, 0xA9 };
-static symbol s_8_93[4] = { 'e', 'r', 0xC3, 0xA9 };
-static symbol s_8_94[4] = { 'i', 'r', 0xC3, 0xA9 };
-static symbol s_8_95[3] = { 'i', 0xC3, 0xB3 };
+static const symbol s_8_0[3] = { 'a', 'b', 'a' };
+static const symbol s_8_1[3] = { 'a', 'd', 'a' };
+static const symbol s_8_2[3] = { 'i', 'd', 'a' };
+static const symbol s_8_3[3] = { 'a', 'r', 'a' };
+static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
+static const symbol s_8_5[3] = { 0xC3, 0xAD, 'a' };
+static const symbol s_8_6[5] = { 'a', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_8_7[5] = { 'e', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_8_8[5] = { 'i', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_8_9[2] = { 'a', 'd' };
+static const symbol s_8_10[2] = { 'e', 'd' };
+static const symbol s_8_11[2] = { 'i', 'd' };
+static const symbol s_8_12[3] = { 'a', 's', 'e' };
+static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
+static const symbol s_8_14[4] = { 'a', 's', 't', 'e' };
+static const symbol s_8_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_8_16[2] = { 'a', 'n' };
+static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
+static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
+static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
+static const symbol s_8_20[4] = { 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_21[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_22[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_23[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_24[2] = { 'e', 'n' };
+static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
+static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
+static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
+static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
+static const symbol s_8_29[5] = { 'a', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_8_30[5] = { 'e', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_8_31[5] = { 'i', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_8_32[3] = { 'a', 'd', 'o' };
+static const symbol s_8_33[3] = { 'i', 'd', 'o' };
+static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_8_36[2] = { 'a', 'r' };
+static const symbol s_8_37[2] = { 'e', 'r' };
+static const symbol s_8_38[2] = { 'i', 'r' };
+static const symbol s_8_39[2] = { 'a', 's' };
+static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
+static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
+static const symbol s_8_45[4] = { 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_46[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_47[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_48[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_49[2] = { 'e', 's' };
+static const symbol s_8_50[4] = { 'a', 's', 'e', 's' };
+static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
+static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
+static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
+static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
+static const symbol s_8_55[5] = { 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_56[7] = { 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_57[7] = { 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_58[7] = { 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
+static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
+static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_63[4] = { 0xC3, 0xA1, 'i', 's' };
+static const symbol s_8_64[4] = { 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_65[6] = { 'a', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_66[6] = { 'e', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_67[6] = { 'i', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_8_71[7] = { 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's' };
+static const symbol s_8_72[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_73[8] = { 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_74[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_75[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_76[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_77[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_82[7] = { 0xC3, 0xA1, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_83[8] = { 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_8_85[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_8_86[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_8_87[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_8_88[3] = { 0xC3, 0xAD, 's' };
+static const symbol s_8_89[4] = { 'a', 'r', 0xC3, 0xA1 };
+static const symbol s_8_90[4] = { 'e', 'r', 0xC3, 0xA1 };
+static const symbol s_8_91[4] = { 'i', 'r', 0xC3, 0xA1 };
+static const symbol s_8_92[4] = { 'a', 'r', 0xC3, 0xA9 };
+static const symbol s_8_93[4] = { 'e', 'r', 0xC3, 0xA9 };
+static const symbol s_8_94[4] = { 'i', 'r', 0xC3, 0xA9 };
+static const symbol s_8_95[3] = { 'i', 0xC3, 0xB3 };
-static struct among a_8[96] =
+static const struct among a_8[96] =
{
/* 0 */ { 3, s_8_0, -1, 2, 0},
/* 1 */ { 3, s_8_1, -1, 2, 0},
@@ -450,16 +464,16 @@ static struct among a_8[96] =
/* 95 */ { 3, s_8_95, -1, 2, 0}
};
-static symbol s_9_0[1] = { 'a' };
-static symbol s_9_1[1] = { 'e' };
-static symbol s_9_2[1] = { 'o' };
-static symbol s_9_3[2] = { 'o', 's' };
-static symbol s_9_4[2] = { 0xC3, 0xA1 };
-static symbol s_9_5[2] = { 0xC3, 0xA9 };
-static symbol s_9_6[2] = { 0xC3, 0xAD };
-static symbol s_9_7[2] = { 0xC3, 0xB3 };
+static const symbol s_9_0[1] = { 'a' };
+static const symbol s_9_1[1] = { 'e' };
+static const symbol s_9_2[1] = { 'o' };
+static const symbol s_9_3[2] = { 'o', 's' };
+static const symbol s_9_4[2] = { 0xC3, 0xA1 };
+static const symbol s_9_5[2] = { 0xC3, 0xA9 };
+static const symbol s_9_6[2] = { 0xC3, 0xAD };
+static const symbol s_9_7[2] = { 0xC3, 0xB3 };
-static struct among a_9[8] =
+static const struct among a_9[8] =
{
/* 0 */ { 1, s_9_0, -1, 1, 0},
/* 1 */ { 1, s_9_1, -1, 2, 0},
@@ -471,137 +485,109 @@ static struct among a_9[8] =
/* 7 */ { 2, s_9_7, -1, 1, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 };
+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 };
-static symbol s_0[] = { 'a' };
-static symbol s_1[] = { 'e' };
-static symbol s_2[] = { 'i' };
-static symbol s_3[] = { 'o' };
-static symbol s_4[] = { 'u' };
-static symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
-static symbol s_6[] = { 'a', 'n', 'd', 'o' };
-static symbol s_7[] = { 'a', 'r' };
-static symbol s_8[] = { 'e', 'r' };
-static symbol s_9[] = { 'i', 'r' };
-static symbol s_10[] = { 'u' };
-static symbol s_11[] = { 'i', 'c' };
-static symbol s_12[] = { 'l', 'o', 'g' };
-static symbol s_13[] = { 'u' };
-static symbol s_14[] = { 'e', 'n', 't', 'e' };
-static symbol s_15[] = { 'a', 't' };
-static symbol s_16[] = { 'a', 't' };
-static symbol s_17[] = { 'u' };
-static symbol s_18[] = { 'u' };
-static symbol s_19[] = { 'g' };
-static symbol s_20[] = { 'u' };
-static symbol s_21[] = { 'g' };
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7[] = { 'a', 'r' };
+static const symbol s_8[] = { 'e', 'r' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'u' };
+static const symbol s_11[] = { 'i', 'c' };
+static const symbol s_12[] = { 'l', 'o', 'g' };
+static const symbol s_13[] = { 'u' };
+static const symbol s_14[] = { 'e', 'n', 't', 'e' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'a', 't' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'u' };
+static const symbol s_19[] = { 'g' };
+static const symbol s_20[] = { 'u' };
+static const symbol s_21[] = { 'g' };
static int r_mark_regions(struct SN_env * z) {
z->I[0] = z->l;
z->I[1] = z->l;
z->I[2] = z->l;
- { int c = z->c; /* do, line 37 */
- { int c = z->c; /* or, line 39 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab2;
- { int c = z->c; /* or, line 38 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab4;
- while(1) { /* gopast, line 38 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab5;
- break;
- lab5:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab4;
- z->c = c; /* gopast, line 38 */
- }
+ { 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;
+ { int c3 = z->c; /* or, line 38 */
+ if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
+ { /* gopast */ /* grouping v, line 38 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
}
goto lab3;
lab4:
- z->c = c;
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab2;
- while(1) { /* gopast, line 38 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab6;
- break;
- lab6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab2;
- z->c = c; /* gopast, line 38 */
- }
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
+ { /* gopast */ /* non v, line 38 */
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
}
}
lab3:
goto lab1;
lab2:
- z->c = c;
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab0;
- { int c = z->c; /* or, line 40 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab8;
- while(1) { /* gopast, line 40 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab9;
- break;
- lab9:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab8;
- z->c = c; /* gopast, line 40 */
- }
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
+ { int c4 = z->c; /* or, line 40 */
+ if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
+ { /* gopast */ /* grouping v, line 40 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
}
- goto lab7;
- lab8:
- z->c = c;
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab0;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 40 */
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 40 */
}
}
- lab7:
+ lab5:
;
}
lab1:
z->I[0] = z->c; /* setmark pV, line 41 */
lab0:
- z->c = c;
+ z->c = c1;
}
- { int c = z->c; /* do, line 43 */
- while(1) { /* gopast, line 44 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab11;
- break;
- lab11:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 44 */
- }
+ { int c5 = z->c; /* do, line 43 */
+ { /* gopast */ /* grouping v, line 44 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 44 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab12;
- break;
- lab12:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 44 */
- }
+ { /* 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 */
- while(1) { /* gopast, line 45 */
- if (!(in_grouping_U(z, g_v, 97, 252))) goto lab13;
- break;
- lab13:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 45 */
- }
+ { /* gopast */ /* grouping v, line 45 */
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
}
- while(1) { /* gopast, line 45 */
- if (!(out_grouping_U(z, g_v, 97, 252))) goto lab14;
- break;
- lab14:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab10;
- z->c = c; /* gopast, line 45 */
- }
+ { /* 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 */
- lab10:
- z->c = c;
+ lab7:
+ z->c = c5;
}
return 1;
}
@@ -609,53 +595,49 @@ static int r_mark_regions(struct SN_env * z) {
static int r_postlude(struct SN_env * z) {
int among_var;
while(1) { /* repeat, line 49 */
- int c = z->c;
+ 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
among_var = find_among(z, a_0, 6); /* substring, line 50 */
if (!(among_var)) goto lab0;
z->ket = z->c; /* ], line 50 */
switch(among_var) {
case 0: goto lab0;
case 1:
- { int ret;
- ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
+ { int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 1, s_1); /* <-, line 52 */
+ { int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
+ { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */
if (ret < 0) return ret;
}
break;
case 4:
- { int ret;
- ret = slice_from_s(z, 1, s_3); /* <-, line 54 */
+ { int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */
if (ret < 0) return ret;
}
break;
case 5:
- { int ret;
- ret = slice_from_s(z, 1, s_4); /* <-, line 55 */
+ { int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */
if (ret < 0) return ret;
}
break;
case 6:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) goto lab0;
- z->c = c; /* next, line 57 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret; /* next, line 57 */
}
break;
}
continue;
lab0:
- z->c = c;
+ z->c = c1;
break;
}
return 1;
@@ -679,8 +661,10 @@ static int r_R2(struct SN_env * z) {
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;
if (!(find_among_b(z, a_1, 13))) return 0; /* substring, line 68 */
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;
among_var = find_among_b(z, a_2, 11); /* substring, line 72 */
if (!(among_var)) return 0;
{ int ret = r_RV(z);
@@ -691,49 +675,42 @@ static int r_attached_pronoun(struct SN_env * z) {
case 0: return 0;
case 1:
z->bra = z->c; /* ], line 73 */
- { int ret;
- ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
+ { int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */
if (ret < 0) return ret;
}
break;
case 2:
z->bra = z->c; /* ], line 74 */
- { int ret;
- ret = slice_from_s(z, 4, s_6); /* <-, line 74 */
+ { int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */
if (ret < 0) return ret;
}
break;
case 3:
z->bra = z->c; /* ], line 75 */
- { int ret;
- ret = slice_from_s(z, 2, s_7); /* <-, line 75 */
+ { int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */
if (ret < 0) return ret;
}
break;
case 4:
z->bra = z->c; /* ], line 76 */
- { int ret;
- ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
+ { int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */
if (ret < 0) return ret;
}
break;
case 5:
z->bra = z->c; /* ], line 77 */
- { int ret;
- ret = slice_from_s(z, 2, s_9); /* <-, line 77 */
+ { int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */
if (ret < 0) return ret;
}
break;
case 6:
- { int ret;
- ret = slice_del(z); /* delete, line 81 */
+ { int ret = slice_del(z); /* delete, line 81 */
if (ret < 0) return ret;
}
break;
case 7:
if (!(eq_s_b(z, 1, s_10))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 82 */
+ { int ret = slice_del(z); /* delete, line 82 */
if (ret < 0) return ret;
}
break;
@@ -744,6 +721,7 @@ static int r_attached_pronoun(struct SN_env * z) {
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;
among_var = find_among_b(z, a_6, 46); /* substring, line 87 */
if (!(among_var)) return 0;
z->bra = z->c; /* ], line 87 */
@@ -754,8 +732,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 99 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 99 */
+ { int ret = slice_del(z); /* delete, line 99 */
if (ret < 0) return ret;
}
break;
@@ -764,20 +741,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 105 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 105 */
+ { int ret = slice_del(z); /* delete, line 105 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 106 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 106 */
z->ket = z->c; /* [, line 106 */
- if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 106 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call R2, line 106 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call R2, line 106 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 106 */
+ { int ret = slice_del(z); /* delete, line 106 */
if (ret < 0) return ret;
}
lab0:
@@ -789,8 +764,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 111 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
+ { int ret = slice_from_s(z, 3, s_12); /* <-, line 111 */
if (ret < 0) return ret;
}
break;
@@ -799,8 +773,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 115 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
+ { int ret = slice_from_s(z, 1, s_13); /* <-, line 115 */
if (ret < 0) return ret;
}
break;
@@ -809,8 +782,7 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 119 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
+ { int ret = slice_from_s(z, 4, s_14); /* <-, line 119 */
if (ret < 0) return ret;
}
break;
@@ -819,35 +791,33 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R1, line 123 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 123 */
+ { int ret = slice_del(z); /* delete, line 123 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 124 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab1; }
among_var = find_among_b(z, a_3, 4); /* substring, line 125 */
- if (!(among_var)) { z->c = z->l - m; goto lab1; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 125 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 125 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 125 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 125 */
+ { int ret = slice_del(z); /* delete, line 125 */
if (ret < 0) return ret;
}
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab1; }
+ case 0: { z->c = z->l - m_keep; goto lab1; }
case 1:
z->ket = z->c; /* [, line 126 */
- if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m; goto lab1; }
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab1; }
z->bra = z->c; /* ], line 126 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab1; } /* call R2, line 126 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab1; } /* call R2, line 126 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 126 */
+ { int ret = slice_del(z); /* delete, line 126 */
if (ret < 0) return ret;
}
break;
@@ -861,24 +831,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 135 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 135 */
+ { int ret = slice_del(z); /* delete, line 135 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 136 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab2; }
among_var = find_among_b(z, a_4, 3); /* substring, line 137 */
- if (!(among_var)) { z->c = z->l - m; goto lab2; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
z->bra = z->c; /* ], line 137 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab2; }
+ case 0: { z->c = z->l - m_keep; goto lab2; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab2; } /* call R2, line 140 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call R2, line 140 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 140 */
+ { int ret = slice_del(z); /* delete, line 140 */
if (ret < 0) return ret;
}
break;
@@ -892,24 +861,23 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 147 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 147 */
+ { int ret = slice_del(z); /* delete, line 147 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 148 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* 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 - m_keep; goto lab3; }
among_var = find_among_b(z, a_5, 3); /* substring, line 149 */
- if (!(among_var)) { z->c = z->l - m; goto lab3; }
+ if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
z->bra = z->c; /* ], line 149 */
switch(among_var) {
- case 0: { z->c = z->l - m; goto lab3; }
+ case 0: { z->c = z->l - m_keep; goto lab3; }
case 1:
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab3; } /* call R2, line 152 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 152 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 152 */
+ { int ret = slice_del(z); /* delete, line 152 */
if (ret < 0) return ret;
}
break;
@@ -923,20 +891,18 @@ static int r_standard_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call R2, line 159 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 159 */
+ { int ret = slice_del(z); /* delete, line 159 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 160 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 160 */
z->ket = z->c; /* [, line 161 */
- if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m; goto lab4; }
+ if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m_keep; goto lab4; }
z->bra = z->c; /* ], line 161 */
{ int ret = r_R2(z);
- if (ret == 0) { z->c = z->l - m; goto lab4; } /* call R2, line 161 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call R2, line 161 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 161 */
+ { int ret = slice_del(z); /* delete, line 161 */
if (ret < 0) return ret;
}
lab4:
@@ -949,24 +915,23 @@ static int r_standard_suffix(struct SN_env * z) {
static int r_y_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 168 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 168 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 168 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 168 */
among_var = find_among_b(z, a_7, 12); /* substring, line 168 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 168 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
if (!(eq_s_b(z, 1, s_17))) return 0;
- { int ret;
- ret = slice_del(z); /* delete, line 171 */
+ { int ret = slice_del(z); /* delete, line 171 */
if (ret < 0) return ret;
}
break;
@@ -976,39 +941,37 @@ static int r_y_verb_suffix(struct SN_env * z) {
static int r_verb_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 176 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 176 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 176 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
z->ket = z->c; /* [, line 176 */
among_var = find_among_b(z, a_8, 96); /* substring, line 176 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 176 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int m = z->l - z->c; (void) m; /* try, line 179 */
- if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m; goto lab0; }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 179 */
+ if (!(eq_s_b(z, 1, s_18))) { z->c = z->l - m_keep; goto lab0; }
{ int m_test = z->l - z->c; /* test, line 179 */
- if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_19))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
}
lab0:
;
}
z->bra = z->c; /* ], line 179 */
- { int ret;
- ret = slice_del(z); /* delete, line 179 */
+ { int ret = slice_del(z); /* delete, line 179 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_del(z); /* delete, line 200 */
+ { int ret = slice_del(z); /* delete, line 200 */
if (ret < 0) return ret;
}
break;
@@ -1029,8 +992,7 @@ static int r_residual_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 208 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 208 */
+ { int ret = slice_del(z); /* delete, line 208 */
if (ret < 0) return ret;
}
break;
@@ -1039,24 +1001,22 @@ static int r_residual_suffix(struct SN_env * z) {
if (ret == 0) return 0; /* call RV, line 210 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 210 */
+ { int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
- { int m = z->l - z->c; (void) m; /* try, line 210 */
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 210 */
z->ket = z->c; /* [, line 210 */
- if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_20))) { z->c = z->l - m_keep; goto lab0; }
z->bra = z->c; /* ], line 210 */
{ int m_test = z->l - z->c; /* test, line 210 */
- if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m; goto lab0; }
+ if (!(eq_s_b(z, 1, s_21))) { z->c = z->l - m_keep; goto lab0; }
z->c = z->l - m_test;
}
{ int ret = r_RV(z);
- if (ret == 0) { z->c = z->l - m; goto lab0; } /* call RV, line 210 */
+ if (ret == 0) { z->c = z->l - m_keep; goto lab0; } /* call RV, line 210 */
if (ret < 0) return ret;
}
- { int ret;
- ret = slice_del(z); /* delete, line 210 */
+ { int ret = slice_del(z); /* delete, line 210 */
if (ret < 0) return ret;
}
lab0:
@@ -1068,40 +1028,40 @@ static int r_residual_suffix(struct SN_env * z) {
}
extern int spanish_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 216 */
+ { int c1 = z->c; /* do, line 216 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 216 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 217 */
- { int m = z->l - z->c; (void) m; /* do, line 218 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 218 */
{ int ret = r_attached_pronoun(z);
if (ret == 0) goto lab1; /* call attached_pronoun, line 218 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 219 */
- { int m = z->l - z->c; (void) m; /* or, line 219 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 219 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 219 */
{ int ret = r_standard_suffix(z);
if (ret == 0) goto lab4; /* call standard_suffix, line 219 */
if (ret < 0) return ret;
}
goto lab3;
lab4:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_y_verb_suffix(z);
if (ret == 0) goto lab5; /* call y_verb_suffix, line 220 */
if (ret < 0) return ret;
}
goto lab3;
lab5:
- z->c = z->l - m;
+ z->c = z->l - m4;
{ int ret = r_verb_suffix(z);
if (ret == 0) goto lab2; /* call verb_suffix, line 221 */
if (ret < 0) return ret;
@@ -1109,29 +1069,29 @@ extern int spanish_UTF_8_stem(struct SN_env * z) {
}
lab3:
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 223 */
+ { int m5 = z->l - z->c; (void)m5; /* do, line 223 */
{ int ret = r_residual_suffix(z);
if (ret == 0) goto lab6; /* call residual_suffix, line 223 */
if (ret < 0) return ret;
}
lab6:
- z->c = z->l - m;
+ z->c = z->l - m5;
}
z->c = z->lb;
- { int c = z->c; /* do, line 225 */
+ { int c6 = z->c; /* do, line 225 */
{ int ret = r_postlude(z);
if (ret == 0) goto lab7; /* call postlude, line 225 */
if (ret < 0) return ret;
}
lab7:
- z->c = c;
+ z->c = c6;
}
return 1;
}
extern struct SN_env * spanish_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
-extern void spanish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void spanish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_swedish.c b/libstemmer_c/src_c/stem_UTF_8_swedish.c
index af75551..21a2353 100644
--- a/libstemmer_c/src_c/stem_UTF_8_swedish.c
+++ b/libstemmer_c/src_c/stem_UTF_8_swedish.c
@@ -3,54 +3,68 @@
#include "../runtime/header.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int swedish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
static int r_other_suffix(struct SN_env * z);
static int r_consonant_pair(struct SN_env * z);
static int r_main_suffix(struct SN_env * z);
static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern struct SN_env * swedish_UTF_8_create_env(void);
extern void swedish_UTF_8_close_env(struct SN_env * z);
-static symbol s_0_0[1] = { 'a' };
-static symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
-static symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
-static symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
-static symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
-static symbol s_0_5[2] = { 'a', 'd' };
-static symbol s_0_6[1] = { 'e' };
-static symbol s_0_7[3] = { 'a', 'd', 'e' };
-static symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
-static symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
-static symbol s_0_10[3] = { 'a', 'r', 'e' };
-static symbol s_0_11[4] = { 'a', 's', 't', 'e' };
-static symbol s_0_12[2] = { 'e', 'n' };
-static symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
-static symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
-static symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
-static symbol s_0_16[3] = { 'e', 'r', 'n' };
-static symbol s_0_17[2] = { 'a', 'r' };
-static symbol s_0_18[2] = { 'e', 'r' };
-static symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
-static symbol s_0_20[2] = { 'o', 'r' };
-static symbol s_0_21[1] = { 's' };
-static symbol s_0_22[2] = { 'a', 's' };
-static symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
-static symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
-static symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
-static symbol s_0_26[2] = { 'e', 's' };
-static symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
-static symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
-static symbol s_0_29[3] = { 'e', 'n', 's' };
-static symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
-static symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
-static symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
-static symbol s_0_33[2] = { 'a', 't' };
-static symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
-static symbol s_0_35[3] = { 'h', 'e', 't' };
-static symbol s_0_36[3] = { 'a', 's', 't' };
-static struct among a_0[37] =
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
+static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
+static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
+static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
+static const symbol s_0_5[2] = { 'a', 'd' };
+static const symbol s_0_6[1] = { 'e' };
+static const symbol s_0_7[3] = { 'a', 'd', 'e' };
+static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
+static const symbol s_0_10[3] = { 'a', 'r', 'e' };
+static const symbol s_0_11[4] = { 'a', 's', 't', 'e' };
+static const symbol s_0_12[2] = { 'e', 'n' };
+static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
+static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
+static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_16[3] = { 'e', 'r', 'n' };
+static const symbol s_0_17[2] = { 'a', 'r' };
+static const symbol s_0_18[2] = { 'e', 'r' };
+static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_20[2] = { 'o', 'r' };
+static const symbol s_0_21[1] = { 's' };
+static const symbol s_0_22[2] = { 'a', 's' };
+static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
+static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
+static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
+static const symbol s_0_26[2] = { 'e', 's' };
+static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_0_29[3] = { 'e', 'n', 's' };
+static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
+static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
+static const symbol s_0_33[2] = { 'a', 't' };
+static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
+static const symbol s_0_35[3] = { 'h', 'e', 't' };
+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},
@@ -91,15 +105,15 @@ static struct among a_0[37] =
/* 36 */ { 3, s_0_36, -1, 1, 0}
};
-static symbol s_1_0[2] = { 'd', 'd' };
-static symbol s_1_1[2] = { 'g', 'd' };
-static symbol s_1_2[2] = { 'n', 'n' };
-static symbol s_1_3[2] = { 'd', 't' };
-static symbol s_1_4[2] = { 'g', 't' };
-static symbol s_1_5[2] = { 'k', 't' };
-static symbol s_1_6[2] = { 't', 't' };
+static const symbol s_1_0[2] = { 'd', 'd' };
+static const symbol s_1_1[2] = { 'g', 'd' };
+static const symbol s_1_2[2] = { 'n', 'n' };
+static const symbol s_1_3[2] = { 'd', 't' };
+static const symbol s_1_4[2] = { 'g', 't' };
+static const symbol s_1_5[2] = { 'k', 't' };
+static const symbol s_1_6[2] = { 't', 't' };
-static struct among a_1[7] =
+static const struct among a_1[7] =
{
/* 0 */ { 2, s_1_0, -1, -1, 0},
/* 1 */ { 2, s_1_1, -1, -1, 0},
@@ -110,13 +124,13 @@ static struct among a_1[7] =
/* 6 */ { 2, s_1_6, -1, -1, 0}
};
-static symbol s_2_0[2] = { 'i', 'g' };
-static symbol s_2_1[3] = { 'l', 'i', 'g' };
-static symbol s_2_2[3] = { 'e', 'l', 's' };
-static symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
-static symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' };
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[3] = { 'e', 'l', 's' };
+static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
+static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' };
-static struct among a_2[5] =
+static const struct among a_2[5] =
{
/* 0 */ { 2, s_2_0, -1, 1, 0},
/* 1 */ { 3, s_2_1, 0, 1, 0},
@@ -125,78 +139,62 @@ static struct among a_2[5] =
/* 4 */ { 5, s_2_4, -1, 2, 0}
};
-static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
+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 };
-static unsigned char g_s_ending[] = { 119, 127, 149 };
+static const unsigned char g_s_ending[] = { 119, 127, 149 };
-static symbol s_0[] = { 'l', 0xC3, 0xB6, 's' };
-static symbol s_1[] = { 'f', 'u', 'l', 'l' };
+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) {
z->I[0] = z->l;
{ int c_test = z->c; /* test, line 29 */
- { int c = skip_utf8(z->p, z->c, 0, z->l, + 3);
- if (c < 0) return 0;
- z->c = c; /* hop, line 29 */
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3);
+ if (ret < 0) return 0;
+ z->c = ret; /* hop, line 29 */
}
z->I[1] = z->c; /* setmark x, line 29 */
z->c = c_test;
}
- while(1) { /* goto, line 30 */
- int c = z->c;
- if (!(in_grouping_U(z, g_v, 97, 246))) goto lab0;
- z->c = c;
- break;
- lab0:
- z->c = c;
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* goto, line 30 */
- }
- }
- while(1) { /* gopast, line 30 */
- if (!(out_grouping_U(z, g_v, 97, 246))) goto lab1;
- break;
- lab1:
- { int c = skip_utf8(z->p, z->c, 0, z->l, 1);
- if (c < 0) return 0;
- z->c = c; /* gopast, line 30 */
- }
+ if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
+ { /* gopast */ /* non v, line 30 */
+ 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 lab2;
+ if (!(z->I[0] < z->I[1])) goto lab0;
z->I[0] = z->I[1];
-lab2:
+lab0:
return 1;
}
static int r_main_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 37 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 37 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 37 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 37 */
- z->lb = m3;
+ z->lb = mlimit;
}
switch(among_var) {
case 0: return 0;
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 44 */
+ { int ret = slice_del(z); /* delete, line 44 */
if (ret < 0) return ret;
}
break;
case 2:
- if (!(in_grouping_b_U(z, g_s_ending, 98, 121))) return 0;
- { int ret;
- 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); /* delete, line 46 */
if (ret < 0) return ret;
}
break;
@@ -205,103 +203,101 @@ static int r_main_suffix(struct SN_env * z) {
}
static int r_consonant_pair(struct SN_env * z) {
- { int m3; /* setlimit, line 50 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 50 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 50 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
- { int m = z->l - z->c; (void) m; /* and, line 52 */
- if (!(find_among_b(z, a_1, 7))) { z->lb = m3; return 0; } /* among, line 51 */
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
+ { 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 = mlimit; return 0; }
+ if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
+ z->c = z->l - m2;
z->ket = z->c; /* [, line 52 */
- { int c = skip_utf8(z->p, z->c, z->lb, 0, -1);
- if (c < 0) { z->lb = m3; return 0; }
- z->c = c; /* next, line 52 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) { z->lb = mlimit; return 0; }
+ z->c = ret; /* next, line 52 */
}
z->bra = z->c; /* ], line 52 */
- { int ret;
- ret = slice_del(z); /* delete, line 52 */
+ { int ret = slice_del(z); /* delete, line 52 */
if (ret < 0) return ret;
}
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
static int r_other_suffix(struct SN_env * z) {
int among_var;
- { int m3; /* setlimit, line 55 */
- int m = z->l - z->c; (void) m;
+ { int mlimit; /* setlimit, line 55 */
+ int m1 = z->l - z->c; (void)m1;
if (z->c < z->I[0]) return 0;
z->c = z->I[0]; /* tomark, line 55 */
- m3 = z->lb; z->lb = z->c;
- z->c = z->l - m;
+ mlimit = z->lb; z->lb = z->c;
+ z->c = z->l - m1;
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 = mlimit; return 0; }
among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
- if (!(among_var)) { z->lb = m3; return 0; }
+ if (!(among_var)) { z->lb = mlimit; return 0; }
z->bra = z->c; /* ], line 56 */
switch(among_var) {
- case 0: { z->lb = m3; return 0; }
+ case 0: { z->lb = mlimit; return 0; }
case 1:
- { int ret;
- ret = slice_del(z); /* delete, line 57 */
+ { int ret = slice_del(z); /* delete, line 57 */
if (ret < 0) return ret;
}
break;
case 2:
- { int ret;
- ret = slice_from_s(z, 4, s_0); /* <-, line 58 */
+ { int ret = slice_from_s(z, 4, s_0); /* <-, line 58 */
if (ret < 0) return ret;
}
break;
case 3:
- { int ret;
- ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
+ { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
if (ret < 0) return ret;
}
break;
}
- z->lb = m3;
+ z->lb = mlimit;
}
return 1;
}
extern int swedish_UTF_8_stem(struct SN_env * z) {
- { int c = z->c; /* do, line 66 */
+ { int c1 = z->c; /* do, line 66 */
{ int ret = r_mark_regions(z);
if (ret == 0) goto lab0; /* call mark_regions, line 66 */
if (ret < 0) return ret;
}
lab0:
- z->c = c;
+ z->c = c1;
}
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
- { int m = z->l - z->c; (void) m; /* do, line 68 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 68 */
{ int ret = r_main_suffix(z);
if (ret == 0) goto lab1; /* call main_suffix, line 68 */
if (ret < 0) return ret;
}
lab1:
- z->c = z->l - m;
+ z->c = z->l - m2;
}
- { int m = z->l - z->c; (void) m; /* do, line 69 */
+ { int m3 = z->l - z->c; (void)m3; /* do, line 69 */
{ int ret = r_consonant_pair(z);
if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
if (ret < 0) return ret;
}
lab2:
- z->c = z->l - m;
+ z->c = z->l - m3;
}
- { int m = z->l - z->c; (void) m; /* do, line 70 */
+ { int m4 = z->l - z->c; (void)m4; /* do, line 70 */
{ int ret = r_other_suffix(z);
if (ret == 0) goto lab3; /* call other_suffix, line 70 */
if (ret < 0) return ret;
}
lab3:
- z->c = z->l - m;
+ z->c = z->l - m4;
}
z->c = z->lb;
return 1;
@@ -309,5 +305,5 @@ extern int swedish_UTF_8_stem(struct SN_env * z) {
extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
-extern void swedish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z); }
+extern void swedish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
diff --git a/libstemmer_c/src_c/stem_UTF_8_turkish.c b/libstemmer_c/src_c/stem_UTF_8_turkish.c
new file mode 100644
index 0000000..ae3cc76
--- /dev/null
+++ b/libstemmer_c/src_c/stem_UTF_8_turkish.c
@@ -0,0 +1,2205 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#include "../runtime/header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int turkish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_stem_suffix_chain_before_ki(struct SN_env * z);
+static int r_stem_noun_suffixes(struct SN_env * z);
+static int r_stem_nominal_verb_suffixes(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_post_process_last_consonants(struct SN_env * z);
+static int r_more_than_one_syllable_word(struct SN_env * z);
+static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z);
+static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z);
+static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z);
+static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z);
+static int r_mark_ysA(struct SN_env * z);
+static int r_mark_ymUs_(struct SN_env * z);
+static int r_mark_yken(struct SN_env * z);
+static int r_mark_yDU(struct SN_env * z);
+static int r_mark_yUz(struct SN_env * z);
+static int r_mark_yUm(struct SN_env * z);
+static int r_mark_yU(struct SN_env * z);
+static int r_mark_ylA(struct SN_env * z);
+static int r_mark_yA(struct SN_env * z);
+static int r_mark_possessives(struct SN_env * z);
+static int r_mark_sUnUz(struct SN_env * z);
+static int r_mark_sUn(struct SN_env * z);
+static int r_mark_sU(struct SN_env * z);
+static int r_mark_nUz(struct SN_env * z);
+static int r_mark_nUn(struct SN_env * z);
+static int r_mark_nU(struct SN_env * z);
+static int r_mark_ndAn(struct SN_env * z);
+static int r_mark_ndA(struct SN_env * z);
+static int r_mark_ncA(struct SN_env * z);
+static int r_mark_nA(struct SN_env * z);
+static int r_mark_lArI(struct SN_env * z);
+static int r_mark_lAr(struct SN_env * z);
+static int r_mark_ki(struct SN_env * z);
+static int r_mark_DUr(struct SN_env * z);
+static int r_mark_DAn(struct SN_env * z);
+static int r_mark_DA(struct SN_env * z);
+static int r_mark_cAsInA(struct SN_env * z);
+static int r_is_reserved_word(struct SN_env * z);
+static int r_check_vowel_harmony(struct SN_env * z);
+static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * turkish_UTF_8_create_env(void);
+extern void turkish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'm' };
+static const symbol s_0_1[1] = { 'n' };
+static const symbol s_0_2[3] = { 'm', 'i', 'z' };
+static const symbol s_0_3[3] = { 'n', 'i', 'z' };
+static const symbol s_0_4[3] = { 'm', 'u', 'z' };
+static const symbol s_0_5[3] = { 'n', 'u', 'z' };
+static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' };
+static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' };
+static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' };
+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}
+};
+
+static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
+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}
+};
+
+static const symbol s_2_0[2] = { 'n', 'i' };
+static const symbol s_2_1[2] = { 'n', 'u' };
+static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 };
+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}
+};
+
+static const symbol s_3_0[2] = { 'i', 'n' };
+static const symbol s_3_1[2] = { 'u', 'n' };
+static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' };
+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}
+};
+
+static const symbol s_4_0[1] = { 'a' };
+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}
+};
+
+static const symbol s_5_0[2] = { 'n', 'a' };
+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}
+};
+
+static const symbol s_6_0[2] = { 'd', 'a' };
+static const symbol s_6_1[2] = { 't', 'a' };
+static const symbol s_6_2[2] = { 'd', 'e' };
+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}
+};
+
+static const symbol s_7_0[3] = { 'n', 'd', 'a' };
+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}
+};
+
+static const symbol s_8_0[3] = { 'd', 'a', 'n' };
+static const symbol s_8_1[3] = { 't', 'a', 'n' };
+static const symbol s_8_2[3] = { 'd', 'e', 'n' };
+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}
+};
+
+static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
+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}
+};
+
+static const symbol s_10_0[2] = { 'l', 'a' };
+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}
+};
+
+static const symbol s_11_0[2] = { 'c', 'a' };
+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}
+};
+
+static const symbol s_12_0[2] = { 'i', 'm' };
+static const symbol s_12_1[2] = { 'u', 'm' };
+static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' };
+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}
+};
+
+static const symbol s_13_0[3] = { 's', 'i', 'n' };
+static const symbol s_13_1[3] = { 's', 'u', 'n' };
+static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' };
+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}
+};
+
+static const symbol s_14_0[2] = { 'i', 'z' };
+static const symbol s_14_1[2] = { 'u', 'z' };
+static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' };
+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}
+};
+
+static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
+static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
+static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' };
+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}
+};
+
+static const symbol s_16_0[3] = { 'l', 'a', 'r' };
+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}
+};
+
+static const symbol s_17_0[3] = { 'n', 'i', 'z' };
+static const symbol s_17_1[3] = { 'n', 'u', 'z' };
+static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' };
+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}
+};
+
+static const symbol s_18_0[3] = { 'd', 'i', 'r' };
+static const symbol s_18_1[3] = { 't', 'i', 'r' };
+static const symbol s_18_2[3] = { 'd', 'u', 'r' };
+static const symbol s_18_3[3] = { 't', 'u', 'r' };
+static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' };
+static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' };
+static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' };
+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}
+};
+
+static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' };
+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}
+};
+
+static const symbol s_20_0[2] = { 'd', 'i' };
+static const symbol s_20_1[2] = { 't', 'i' };
+static const symbol s_20_2[3] = { 'd', 'i', 'k' };
+static const symbol s_20_3[3] = { 't', 'i', 'k' };
+static const symbol s_20_4[3] = { 'd', 'u', 'k' };
+static const symbol s_20_5[3] = { 't', 'u', 'k' };
+static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' };
+static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' };
+static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' };
+static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' };
+static const symbol s_20_10[3] = { 'd', 'i', 'm' };
+static const symbol s_20_11[3] = { 't', 'i', 'm' };
+static const symbol s_20_12[3] = { 'd', 'u', 'm' };
+static const symbol s_20_13[3] = { 't', 'u', 'm' };
+static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' };
+static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' };
+static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' };
+static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' };
+static const symbol s_20_18[3] = { 'd', 'i', 'n' };
+static const symbol s_20_19[3] = { 't', 'i', 'n' };
+static const symbol s_20_20[3] = { 'd', 'u', 'n' };
+static const symbol s_20_21[3] = { 't', 'u', 'n' };
+static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' };
+static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' };
+static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' };
+static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' };
+static const symbol s_20_26[2] = { 'd', 'u' };
+static const symbol s_20_27[2] = { 't', 'u' };
+static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 };
+static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 };
+static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC };
+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}
+};
+
+static const symbol s_21_0[2] = { 's', 'a' };
+static const symbol s_21_1[2] = { 's', 'e' };
+static const symbol s_21_2[3] = { 's', 'a', 'k' };
+static const symbol s_21_3[3] = { 's', 'e', 'k' };
+static const symbol s_21_4[3] = { 's', 'a', 'm' };
+static const symbol s_21_5[3] = { 's', 'e', 'm' };
+static const symbol s_21_6[3] = { 's', 'a', 'n' };
+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}
+};
+
+static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F };
+static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F };
+static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F };
+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}
+};
+
+static const symbol s_23_0[1] = { 'b' };
+static const symbol s_23_1[1] = { 'c' };
+static const symbol s_23_2[1] = { 'd' };
+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}
+};
+
+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 };
+
+static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
+
+static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_vowel4[] = { 17 };
+
+static const unsigned char g_vowel5[] = { 65 };
+
+static const unsigned char g_vowel6[] = { 65 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 0xC4, 0xB1 };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'o' };
+static const symbol s_5[] = { 0xC3, 0xB6 };
+static const symbol s_6[] = { 'u' };
+static const symbol s_7[] = { 0xC3, 0xBC };
+static const symbol s_8[] = { 'n' };
+static const symbol s_9[] = { 'n' };
+static const symbol s_10[] = { 's' };
+static const symbol s_11[] = { 's' };
+static const symbol s_12[] = { 'y' };
+static const symbol s_13[] = { 'y' };
+static const symbol s_14[] = { 'k', 'i' };
+static const symbol s_15[] = { 'k', 'e', 'n' };
+static const symbol s_16[] = { 'p' };
+static const symbol s_17[] = { 0xC3, 0xA7 };
+static const symbol s_18[] = { 't' };
+static const symbol s_19[] = { 'k' };
+static const symbol s_20[] = { 'd' };
+static const symbol s_21[] = { 'g' };
+static const symbol s_22[] = { 'a' };
+static const symbol s_23[] = { 0xC4, 0xB1 };
+static const symbol s_24[] = { 0xC4, 0xB1 };
+static const symbol s_25[] = { 'e' };
+static const symbol s_26[] = { 'i' };
+static const symbol s_27[] = { 'i' };
+static const symbol s_28[] = { 'o' };
+static const symbol s_29[] = { 'u' };
+static const symbol s_30[] = { 'u' };
+static const symbol s_31[] = { 0xC3, 0xB6 };
+static const symbol s_32[] = { 0xC3, 0xBC };
+static const symbol s_33[] = { 0xC3, 0xBC };
+static const symbol s_34[] = { 'a', 'd' };
+static const symbol s_35[] = { 's', 'o', 'y', 'a', 'd' };
+
+static int r_check_vowel_harmony(struct SN_env * z) {
+ { int m_test = z->l - z->c; /* test, line 112 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 114 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 116 */
+ if (!(eq_s_b(z, 1, s_0))) goto lab1;
+ if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1; /* goto */ /* grouping vowel1, line 116 */
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 1, s_1))) goto lab2;
+ if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2; /* goto */ /* grouping vowel2, line 117 */
+ goto lab0;
+ lab2:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_2))) goto lab3;
+ if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel3, line 118 */
+ goto lab0;
+ lab3:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 1, s_3))) goto lab4;
+ if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4; /* goto */ /* grouping vowel4, line 119 */
+ goto lab0;
+ lab4:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 1, s_4))) goto lab5;
+ if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5; /* goto */ /* grouping vowel5, line 120 */
+ goto lab0;
+ lab5:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_5))) goto lab6;
+ if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6; /* goto */ /* grouping vowel6, line 121 */
+ goto lab0;
+ lab6:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 1, s_6))) goto lab7;
+ if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7; /* goto */ /* grouping vowel5, line 122 */
+ goto lab0;
+ lab7:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_7))) return 0;
+ if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0; /* goto */ /* grouping vowel6, line 123 */
+ }
+ lab0:
+ z->c = z->l - m_test;
+ }
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1; /* or, line 134 */
+ { int m_test = z->l - z->c; /* test, line 133 */
+ if (!(eq_s_b(z, 1, s_8))) goto lab1;
+ z->c = z->l - m_test;
+ }
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* next, line 133 */
+ }
+ { int m_test = z->l - z->c; /* test, line 133 */
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 135 */
+ { int m_test = z->l - z->c; /* test, line 135 */
+ if (!(eq_s_b(z, 1, s_9))) goto lab2;
+ z->c = z->l - m_test;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ { int m_test = z->l - z->c; /* test, line 135 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 135 */
+ }
+ { int m_test = z->l - z->c; /* test, line 135 */
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test;
+ }
+ z->c = z->l - m_test;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1; /* or, line 145 */
+ { int m_test = z->l - z->c; /* test, line 144 */
+ if (!(eq_s_b(z, 1, s_10))) goto lab1;
+ z->c = z->l - m_test;
+ }
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* next, line 144 */
+ }
+ { int m_test = z->l - z->c; /* test, line 144 */
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 146 */
+ { int m_test = z->l - z->c; /* test, line 146 */
+ if (!(eq_s_b(z, 1, s_11))) goto lab2;
+ z->c = z->l - m_test;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ { int m_test = z->l - z->c; /* test, line 146 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 146 */
+ }
+ { int m_test = z->l - z->c; /* test, line 146 */
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test;
+ }
+ z->c = z->l - m_test;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1; /* or, line 155 */
+ { int m_test = z->l - z->c; /* test, line 154 */
+ if (!(eq_s_b(z, 1, s_12))) goto lab1;
+ z->c = z->l - m_test;
+ }
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* next, line 154 */
+ }
+ { int m_test = z->l - z->c; /* test, line 154 */
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 156 */
+ { int m_test = z->l - z->c; /* test, line 156 */
+ if (!(eq_s_b(z, 1, s_13))) goto lab2;
+ z->c = z->l - m_test;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ { int m_test = z->l - z->c; /* test, line 156 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 156 */
+ }
+ { int m_test = z->l - z->c; /* test, line 156 */
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test;
+ }
+ z->c = z->l - m_test;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1; /* or, line 161 */
+ { int m_test = z->l - z->c; /* test, line 160 */
+ if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1;
+ z->c = z->l - m_test;
+ }
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* next, line 160 */
+ }
+ { int m_test = z->l - z->c; /* test, line 160 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2; /* not, line 162 */
+ { int m_test = z->l - z->c; /* test, line 162 */
+ if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2;
+ z->c = z->l - m_test;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ { int m_test = z->l - z->c; /* test, line 162 */
+ { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+ if (ret < 0) return 0;
+ z->c = ret; /* next, line 162 */
+ }
+ { int m_test = z->l - z->c; /* test, line 162 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test;
+ }
+ z->c = z->l - m_test;
+ }
+ }
+lab0:
+ return 1;
+}
+
+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; /* among, line 167 */
+ { int ret = r_mark_suffix_with_optional_U_vowel(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_U_vowel, line 169 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_sU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 173 */
+ if (ret < 0) return ret;
+ }
+ 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 0; /* call mark_suffix_with_optional_s_consonant, line 175 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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; /* among, line 179 */
+ return 1;
+}
+
+static int r_mark_yU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 183 */
+ if (ret < 0) return ret;
+ }
+ 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 0; /* call mark_suffix_with_optional_y_consonant, line 185 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_nU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 189 */
+ if (ret < 0) return ret;
+ }
+ if (!(find_among_b(z, a_2, 4))) return 0; /* among, line 190 */
+ return 1;
+}
+
+static int r_mark_nUn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 194 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_3, 4))) return 0; /* among, line 195 */
+ { int ret = r_mark_suffix_with_optional_n_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_n_consonant, line 196 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_yA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 200 */
+ if (ret < 0) return ret;
+ }
+ 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; /* among, line 201 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 202 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_nA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 206 */
+ 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;
+ if (!(find_among_b(z, a_5, 2))) return 0; /* among, line 207 */
+ return 1;
+}
+
+static int r_mark_DA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 211 */
+ 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;
+ if (!(find_among_b(z, a_6, 4))) return 0; /* among, line 212 */
+ return 1;
+}
+
+static int r_mark_ndA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 216 */
+ 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;
+ if (!(find_among_b(z, a_7, 2))) return 0; /* among, line 217 */
+ return 1;
+}
+
+static int r_mark_DAn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 221 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_8, 4))) return 0; /* among, line 222 */
+ return 1;
+}
+
+static int r_mark_ndAn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 226 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_9, 2))) return 0; /* among, line 227 */
+ return 1;
+}
+
+static int r_mark_ylA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 231 */
+ 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;
+ if (!(find_among_b(z, a_10, 2))) return 0; /* among, line 232 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 233 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_ki(struct SN_env * z) {
+ if (!(eq_s_b(z, 2, s_14))) return 0;
+ return 1;
+}
+
+static int r_mark_ncA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 241 */
+ 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;
+ if (!(find_among_b(z, a_11, 2))) return 0; /* among, line 242 */
+ { int ret = r_mark_suffix_with_optional_n_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_n_consonant, line 243 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_yUm(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 247 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
+ if (!(find_among_b(z, a_12, 4))) return 0; /* among, line 248 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 249 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_sUn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 253 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_13, 4))) return 0; /* among, line 254 */
+ return 1;
+}
+
+static int r_mark_yUz(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 258 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
+ if (!(find_among_b(z, a_14, 4))) return 0; /* among, line 259 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 260 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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; /* among, line 264 */
+ return 1;
+}
+
+static int r_mark_lAr(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 268 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
+ if (!(find_among_b(z, a_16, 2))) return 0; /* among, line 269 */
+ return 1;
+}
+
+static int r_mark_nUz(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 273 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
+ if (!(find_among_b(z, a_17, 4))) return 0; /* among, line 274 */
+ return 1;
+}
+
+static int r_mark_DUr(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 278 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
+ if (!(find_among_b(z, a_18, 8))) return 0; /* among, line 279 */
+ return 1;
+}
+
+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; /* among, line 283 */
+ return 1;
+}
+
+static int r_mark_yDU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 287 */
+ if (ret < 0) return ret;
+ }
+ if (!(find_among_b(z, a_20, 32))) return 0; /* among, line 288 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 292 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+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; /* among, line 297 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 298 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_ymUs_(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret == 0) return 0; /* call check_vowel_harmony, line 302 */
+ if (ret < 0) return ret;
+ }
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
+ if (!(find_among_b(z, a_22, 4))) return 0; /* among, line 303 */
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 304 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_yken(struct SN_env * z) {
+ if (!(eq_s_b(z, 3, s_15))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret == 0) return 0; /* call mark_suffix_with_optional_y_consonant, line 308 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_stem_nominal_verb_suffixes(struct SN_env * z) {
+ z->ket = z->c; /* [, line 312 */
+ z->B[0] = 1; /* set continue_stemming_noun_suffixes, line 313 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 315 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 314 */
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) goto lab3; /* call mark_ymUs_, line 314 */
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = z->l - m2;
+ { int ret = r_mark_yDU(z);
+ if (ret == 0) goto lab4; /* call mark_yDU, line 314 */
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab4:
+ z->c = z->l - m2;
+ { int ret = r_mark_ysA(z);
+ if (ret == 0) goto lab5; /* call mark_ysA, line 314 */
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab5:
+ z->c = z->l - m2;
+ { int ret = r_mark_yken(z);
+ if (ret == 0) goto lab1; /* call mark_yken, line 314 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_mark_cAsInA(z);
+ if (ret == 0) goto lab6; /* call mark_cAsInA, line 316 */
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3; /* or, line 316 */
+ { int ret = r_mark_sUnUz(z);
+ if (ret == 0) goto lab8; /* call mark_sUnUz, line 316 */
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m3;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab9; /* call mark_lAr, line 316 */
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab9:
+ z->c = z->l - m3;
+ { int ret = r_mark_yUm(z);
+ if (ret == 0) goto lab10; /* call mark_yUm, line 316 */
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab10:
+ z->c = z->l - m3;
+ { int ret = r_mark_sUn(z);
+ if (ret == 0) goto lab11; /* call mark_sUn, line 316 */
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab11:
+ z->c = z->l - m3;
+ { int ret = r_mark_yUz(z);
+ if (ret == 0) goto lab12; /* call mark_yUz, line 316 */
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab12:
+ z->c = z->l - m3;
+ }
+ lab7:
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) goto lab6; /* call mark_ymUs_, line 316 */
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab6:
+ z->c = z->l - m1;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab13; /* call mark_lAr, line 319 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 319 */
+ { int ret = slice_del(z); /* delete, line 319 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 319 */
+ z->ket = z->c; /* [, line 319 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 319 */
+ { int ret = r_mark_DUr(z);
+ if (ret == 0) goto lab16; /* call mark_DUr, line 319 */
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab16:
+ z->c = z->l - m4;
+ { int ret = r_mark_yDU(z);
+ if (ret == 0) goto lab17; /* call mark_yDU, line 319 */
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab17:
+ z->c = z->l - m4;
+ { int ret = r_mark_ysA(z);
+ if (ret == 0) goto lab18; /* call mark_ysA, line 319 */
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab18:
+ z->c = z->l - m4;
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab14; } /* call mark_ymUs_, line 319 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab15:
+ lab14:
+ ;
+ }
+ z->B[0] = 0; /* unset continue_stemming_noun_suffixes, line 320 */
+ goto lab0;
+ lab13:
+ z->c = z->l - m1;
+ { int ret = r_mark_nUz(z);
+ if (ret == 0) goto lab19; /* call mark_nUz, line 323 */
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5; /* or, line 323 */
+ { int ret = r_mark_yDU(z);
+ if (ret == 0) goto lab21; /* call mark_yDU, line 323 */
+ if (ret < 0) return ret;
+ }
+ goto lab20;
+ lab21:
+ z->c = z->l - m5;
+ { int ret = r_mark_ysA(z);
+ if (ret == 0) goto lab19; /* call mark_ysA, line 323 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab20:
+ goto lab0;
+ lab19:
+ z->c = z->l - m1;
+ { int m6 = z->l - z->c; (void)m6; /* or, line 325 */
+ { int ret = r_mark_sUnUz(z);
+ if (ret == 0) goto lab24; /* call mark_sUnUz, line 325 */
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab24:
+ z->c = z->l - m6;
+ { int ret = r_mark_yUz(z);
+ if (ret == 0) goto lab25; /* call mark_yUz, line 325 */
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab25:
+ z->c = z->l - m6;
+ { int ret = r_mark_sUn(z);
+ if (ret == 0) goto lab26; /* call mark_sUn, line 325 */
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab26:
+ z->c = z->l - m6;
+ { int ret = r_mark_yUm(z);
+ if (ret == 0) goto lab22; /* call mark_yUm, line 325 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab23:
+ z->bra = z->c; /* ], line 325 */
+ { int ret = slice_del(z); /* delete, line 325 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 325 */
+ z->ket = z->c; /* [, line 325 */
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab27; } /* call mark_ymUs_, line 325 */
+ if (ret < 0) return ret;
+ }
+ lab27:
+ ;
+ }
+ goto lab0;
+ lab22:
+ z->c = z->l - m1;
+ { int ret = r_mark_DUr(z);
+ if (ret == 0) return 0; /* call mark_DUr, line 327 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 327 */
+ { int ret = slice_del(z); /* delete, line 327 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 327 */
+ z->ket = z->c; /* [, line 327 */
+ { int m7 = z->l - z->c; (void)m7; /* or, line 327 */
+ { int ret = r_mark_sUnUz(z);
+ if (ret == 0) goto lab30; /* call mark_sUnUz, line 327 */
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab30:
+ z->c = z->l - m7;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab31; /* call mark_lAr, line 327 */
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab31:
+ z->c = z->l - m7;
+ { int ret = r_mark_yUm(z);
+ if (ret == 0) goto lab32; /* call mark_yUm, line 327 */
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab32:
+ z->c = z->l - m7;
+ { int ret = r_mark_sUn(z);
+ if (ret == 0) goto lab33; /* call mark_sUn, line 327 */
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab33:
+ z->c = z->l - m7;
+ { int ret = r_mark_yUz(z);
+ if (ret == 0) goto lab34; /* call mark_yUz, line 327 */
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab34:
+ z->c = z->l - m7;
+ }
+ lab29:
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab28; } /* call mark_ymUs_, line 327 */
+ if (ret < 0) return ret;
+ }
+ lab28:
+ ;
+ }
+ }
+lab0:
+ z->bra = z->c; /* ], line 328 */
+ { int ret = slice_del(z); /* delete, line 328 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_stem_suffix_chain_before_ki(struct SN_env * z) {
+ z->ket = z->c; /* [, line 333 */
+ { int ret = r_mark_ki(z);
+ if (ret == 0) return 0; /* call mark_ki, line 334 */
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1; /* or, line 342 */
+ { int ret = r_mark_DA(z);
+ if (ret == 0) goto lab1; /* call mark_DA, line 336 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 336 */
+ { int ret = slice_del(z); /* delete, line 336 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 336 */
+ z->ket = z->c; /* [, line 336 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 338 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab4; /* call mark_lAr, line 337 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 337 */
+ { int ret = slice_del(z); /* delete, line 337 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 337 */
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab5; } /* call stem_suffix_chain_before_ki, line 337 */
+ if (ret < 0) return ret;
+ }
+ lab5:
+ ;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m2;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call mark_possessives, line 339 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 339 */
+ { int ret = slice_del(z); /* delete, line 339 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 339 */
+ z->ket = z->c; /* [, line 339 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call mark_lAr, line 339 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 339 */
+ { int ret = slice_del(z); /* delete, line 339 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call stem_suffix_chain_before_ki, line 339 */
+ if (ret < 0) return ret;
+ }
+ lab6:
+ ;
+ }
+ }
+ lab3:
+ lab2:
+ ;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_mark_nUn(z);
+ if (ret == 0) goto lab7; /* call mark_nUn, line 343 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 343 */
+ { int ret = slice_del(z); /* delete, line 343 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 343 */
+ z->ket = z->c; /* [, line 343 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 345 */
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab10; /* call mark_lArI, line 344 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 344 */
+ { int ret = slice_del(z); /* delete, line 344 */
+ if (ret < 0) return ret;
+ }
+ goto lab9;
+ lab10:
+ z->c = z->l - m3;
+ z->ket = z->c; /* [, line 346 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 346 */
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab13; /* call mark_possessives, line 346 */
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m4;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab11; /* call mark_sU, line 346 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ z->bra = z->c; /* ], line 346 */
+ { int ret = slice_del(z); /* delete, line 346 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 346 */
+ z->ket = z->c; /* [, line 346 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab14; } /* call mark_lAr, line 346 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 346 */
+ { int ret = slice_del(z); /* delete, line 346 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab14; } /* call stem_suffix_chain_before_ki, line 346 */
+ if (ret < 0) return ret;
+ }
+ lab14:
+ ;
+ }
+ goto lab9;
+ lab11:
+ z->c = z->l - m3;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab8; } /* call stem_suffix_chain_before_ki, line 348 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab9:
+ lab8:
+ ;
+ }
+ goto lab0;
+ lab7:
+ z->c = z->l - m1;
+ { int ret = r_mark_ndA(z);
+ if (ret == 0) return 0; /* call mark_ndA, line 351 */
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5; /* or, line 353 */
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab16; /* call mark_lArI, line 352 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 352 */
+ { int ret = slice_del(z); /* delete, line 352 */
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab16:
+ z->c = z->l - m5;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab17; /* call mark_sU, line 354 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 354 */
+ { int ret = slice_del(z); /* delete, line 354 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 354 */
+ z->ket = z->c; /* [, line 354 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab18; } /* call mark_lAr, line 354 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 354 */
+ { int ret = slice_del(z); /* delete, line 354 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab18; } /* call stem_suffix_chain_before_ki, line 354 */
+ if (ret < 0) return ret;
+ }
+ lab18:
+ ;
+ }
+ goto lab15;
+ lab17:
+ z->c = z->l - m5;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) return 0; /* call stem_suffix_chain_before_ki, line 356 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab15:
+ ;
+ }
+lab0:
+ return 1;
+}
+
+static int r_stem_noun_suffixes(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1; /* or, line 363 */
+ z->ket = z->c; /* [, line 362 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab1; /* call mark_lAr, line 362 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 362 */
+ { int ret = slice_del(z); /* delete, line 362 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 362 */
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab2; } /* call stem_suffix_chain_before_ki, line 362 */
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 364 */
+ { int ret = r_mark_ncA(z);
+ if (ret == 0) goto lab3; /* call mark_ncA, line 364 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 364 */
+ { int ret = slice_del(z); /* delete, line 364 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 365 */
+ { int m2 = z->l - z->c; (void)m2; /* or, line 367 */
+ z->ket = z->c; /* [, line 366 */
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab6; /* call mark_lArI, line 366 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 366 */
+ { int ret = slice_del(z); /* delete, line 366 */
+ if (ret < 0) return ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = z->l - m2;
+ z->ket = z->c; /* [, line 368 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 368 */
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab9; /* call mark_possessives, line 368 */
+ if (ret < 0) return ret;
+ }
+ goto lab8;
+ lab9:
+ z->c = z->l - m3;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab7; /* call mark_sU, line 368 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab8:
+ z->bra = z->c; /* ], line 368 */
+ { int ret = slice_del(z); /* delete, line 368 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 368 */
+ z->ket = z->c; /* [, line 368 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab10; } /* call mark_lAr, line 368 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 368 */
+ { int ret = slice_del(z); /* delete, line 368 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab10; } /* call stem_suffix_chain_before_ki, line 368 */
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ goto lab5;
+ lab7:
+ z->c = z->l - m2;
+ z->ket = z->c; /* [, line 370 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call mark_lAr, line 370 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 370 */
+ { int ret = slice_del(z); /* delete, line 370 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call stem_suffix_chain_before_ki, line 370 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ lab4:
+ ;
+ }
+ goto lab0;
+ lab3:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 374 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 374 */
+ { int ret = r_mark_ndA(z);
+ if (ret == 0) goto lab13; /* call mark_ndA, line 374 */
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m4;
+ { int ret = r_mark_nA(z);
+ if (ret == 0) goto lab11; /* call mark_nA, line 374 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ { int m5 = z->l - z->c; (void)m5; /* or, line 377 */
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab15; /* call mark_lArI, line 376 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 376 */
+ { int ret = slice_del(z); /* delete, line 376 */
+ if (ret < 0) return ret;
+ }
+ goto lab14;
+ lab15:
+ z->c = z->l - m5;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab16; /* call mark_sU, line 378 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 378 */
+ { int ret = slice_del(z); /* delete, line 378 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 378 */
+ z->ket = z->c; /* [, line 378 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab17; } /* call mark_lAr, line 378 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 378 */
+ { int ret = slice_del(z); /* delete, line 378 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab17; } /* call stem_suffix_chain_before_ki, line 378 */
+ if (ret < 0) return ret;
+ }
+ lab17:
+ ;
+ }
+ goto lab14;
+ lab16:
+ z->c = z->l - m5;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) goto lab11; /* call stem_suffix_chain_before_ki, line 380 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab14:
+ goto lab0;
+ lab11:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 384 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 384 */
+ { int ret = r_mark_ndAn(z);
+ if (ret == 0) goto lab20; /* call mark_ndAn, line 384 */
+ if (ret < 0) return ret;
+ }
+ goto lab19;
+ lab20:
+ z->c = z->l - m6;
+ { int ret = r_mark_nU(z);
+ if (ret == 0) goto lab18; /* call mark_nU, line 384 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab19:
+ { int m7 = z->l - z->c; (void)m7; /* or, line 384 */
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab22; /* call mark_sU, line 384 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 384 */
+ { int ret = slice_del(z); /* delete, line 384 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 384 */
+ z->ket = z->c; /* [, line 384 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab23; } /* call mark_lAr, line 384 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 384 */
+ { int ret = slice_del(z); /* delete, line 384 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab23; } /* call stem_suffix_chain_before_ki, line 384 */
+ if (ret < 0) return ret;
+ }
+ lab23:
+ ;
+ }
+ goto lab21;
+ lab22:
+ z->c = z->l - m7;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab18; /* call mark_lArI, line 384 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab21:
+ goto lab0;
+ lab18:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 386 */
+ { int ret = r_mark_DAn(z);
+ if (ret == 0) goto lab24; /* call mark_DAn, line 386 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 386 */
+ { int ret = slice_del(z); /* delete, line 386 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 386 */
+ z->ket = z->c; /* [, line 386 */
+ { int m8 = z->l - z->c; (void)m8; /* or, line 389 */
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab27; /* call mark_possessives, line 388 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 388 */
+ { int ret = slice_del(z); /* delete, line 388 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 388 */
+ z->ket = z->c; /* [, line 388 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab28; } /* call mark_lAr, line 388 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 388 */
+ { int ret = slice_del(z); /* delete, line 388 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab28; } /* call stem_suffix_chain_before_ki, line 388 */
+ if (ret < 0) return ret;
+ }
+ lab28:
+ ;
+ }
+ goto lab26;
+ lab27:
+ z->c = z->l - m8;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab29; /* call mark_lAr, line 390 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 390 */
+ { int ret = slice_del(z); /* delete, line 390 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 390 */
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab30; } /* call stem_suffix_chain_before_ki, line 390 */
+ if (ret < 0) return ret;
+ }
+ lab30:
+ ;
+ }
+ goto lab26;
+ lab29:
+ z->c = z->l - m8;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab25; } /* call stem_suffix_chain_before_ki, line 392 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab26:
+ lab25:
+ ;
+ }
+ goto lab0;
+ lab24:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 396 */
+ { int m9 = z->l - z->c; (void)m9; /* or, line 396 */
+ { int ret = r_mark_nUn(z);
+ if (ret == 0) goto lab33; /* call mark_nUn, line 396 */
+ if (ret < 0) return ret;
+ }
+ goto lab32;
+ lab33:
+ z->c = z->l - m9;
+ { int ret = r_mark_ylA(z);
+ if (ret == 0) goto lab31; /* call mark_ylA, line 396 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab32:
+ z->bra = z->c; /* ], line 396 */
+ { int ret = slice_del(z); /* delete, line 396 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 397 */
+ { int m10 = z->l - z->c; (void)m10; /* or, line 399 */
+ z->ket = z->c; /* [, line 398 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab36; /* call mark_lAr, line 398 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 398 */
+ { int ret = slice_del(z); /* delete, line 398 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) goto lab36; /* call stem_suffix_chain_before_ki, line 398 */
+ if (ret < 0) return ret;
+ }
+ goto lab35;
+ lab36:
+ z->c = z->l - m10;
+ z->ket = z->c; /* [, line 400 */
+ { int m11 = z->l - z->c; (void)m11; /* or, line 400 */
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab39; /* call mark_possessives, line 400 */
+ if (ret < 0) return ret;
+ }
+ goto lab38;
+ lab39:
+ z->c = z->l - m11;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab37; /* call mark_sU, line 400 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab38:
+ z->bra = z->c; /* ], line 400 */
+ { int ret = slice_del(z); /* delete, line 400 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 400 */
+ z->ket = z->c; /* [, line 400 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab40; } /* call mark_lAr, line 400 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 400 */
+ { int ret = slice_del(z); /* delete, line 400 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab40; } /* call stem_suffix_chain_before_ki, line 400 */
+ if (ret < 0) return ret;
+ }
+ lab40:
+ ;
+ }
+ goto lab35;
+ lab37:
+ z->c = z->l - m10;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab34; } /* call stem_suffix_chain_before_ki, line 402 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab35:
+ lab34:
+ ;
+ }
+ goto lab0;
+ lab31:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 406 */
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab41; /* call mark_lArI, line 406 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 406 */
+ { int ret = slice_del(z); /* delete, line 406 */
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab41:
+ z->c = z->l - m1;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) goto lab42; /* call stem_suffix_chain_before_ki, line 408 */
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab42:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 410 */
+ { int m12 = z->l - z->c; (void)m12; /* or, line 410 */
+ { int ret = r_mark_DA(z);
+ if (ret == 0) goto lab45; /* call mark_DA, line 410 */
+ if (ret < 0) return ret;
+ }
+ goto lab44;
+ lab45:
+ z->c = z->l - m12;
+ { int ret = r_mark_yU(z);
+ if (ret == 0) goto lab46; /* call mark_yU, line 410 */
+ if (ret < 0) return ret;
+ }
+ goto lab44;
+ lab46:
+ z->c = z->l - m12;
+ { int ret = r_mark_yA(z);
+ if (ret == 0) goto lab43; /* call mark_yA, line 410 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab44:
+ z->bra = z->c; /* ], line 410 */
+ { int ret = slice_del(z); /* delete, line 410 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 410 */
+ z->ket = z->c; /* [, line 410 */
+ { int m13 = z->l - z->c; (void)m13; /* or, line 410 */
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab49; /* call mark_possessives, line 410 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 410 */
+ { int ret = slice_del(z); /* delete, line 410 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 410 */
+ z->ket = z->c; /* [, line 410 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab50; } /* call mark_lAr, line 410 */
+ if (ret < 0) return ret;
+ }
+ lab50:
+ ;
+ }
+ goto lab48;
+ lab49:
+ z->c = z->l - m13;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab47; } /* call mark_lAr, line 410 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab48:
+ z->bra = z->c; /* ], line 410 */
+ { int ret = slice_del(z); /* delete, line 410 */
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c; /* [, line 410 */
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab47; } /* call stem_suffix_chain_before_ki, line 410 */
+ if (ret < 0) return ret;
+ }
+ lab47:
+ ;
+ }
+ goto lab0;
+ lab43:
+ z->c = z->l - m1;
+ z->ket = z->c; /* [, line 412 */
+ { int m14 = z->l - z->c; (void)m14; /* or, line 412 */
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab52; /* call mark_possessives, line 412 */
+ if (ret < 0) return ret;
+ }
+ goto lab51;
+ lab52:
+ z->c = z->l - m14;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) return 0; /* call mark_sU, line 412 */
+ if (ret < 0) return ret;
+ }
+ }
+ lab51:
+ z->bra = z->c; /* ], line 412 */
+ { int ret = slice_del(z); /* delete, line 412 */
+ if (ret < 0) return ret;
+ }
+ { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 412 */
+ z->ket = z->c; /* [, line 412 */
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab53; } /* call mark_lAr, line 412 */
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c; /* ], line 412 */
+ { int ret = slice_del(z); /* delete, line 412 */
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m_keep; goto lab53; } /* call stem_suffix_chain_before_ki, line 412 */
+ if (ret < 0) return ret;
+ }
+ lab53:
+ ;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_post_process_last_consonants(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c; /* [, line 416 */
+ among_var = find_among_b(z, a_23, 4); /* substring, line 416 */
+ if (!(among_var)) return 0;
+ z->bra = z->c; /* ], line 416 */
+ switch(among_var) {
+ case 0: return 0;
+ case 1:
+ { int ret = slice_from_s(z, 1, s_16); /* <-, line 417 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_17); /* <-, line 418 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_18); /* <-, line 419 */
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_19); /* <-, line 420 */
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) {
+ { int m_test = z->l - z->c; /* test, line 431 */
+ { int m1 = z->l - z->c; (void)m1; /* or, line 431 */
+ if (!(eq_s_b(z, 1, s_20))) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 1, s_21))) return 0;
+ }
+ lab0:
+ z->c = z->l - m_test;
+ }
+ { int m2 = z->l - z->c; (void)m2; /* or, line 433 */
+ { int m_test = z->l - z->c; /* test, line 432 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel, line 432 */
+ { int m3 = z->l - z->c; (void)m3; /* or, line 432 */
+ if (!(eq_s_b(z, 1, s_22))) goto lab5;
+ goto lab4;
+ lab5:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 2, s_23))) goto lab3;
+ }
+ lab4:
+ z->c = z->l - m_test;
+ }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 2, s_24); /* <+, line 432 */
+ z->c = c_keep;
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = z->l - m2;
+ { int m_test = z->l - z->c; /* test, line 434 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6; /* goto */ /* grouping vowel, line 434 */
+ { int m4 = z->l - z->c; (void)m4; /* or, line 434 */
+ if (!(eq_s_b(z, 1, s_25))) goto lab8;
+ goto lab7;
+ lab8:
+ z->c = z->l - m4;
+ if (!(eq_s_b(z, 1, s_26))) goto lab6;
+ }
+ lab7:
+ z->c = z->l - m_test;
+ }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_27); /* <+, line 434 */
+ z->c = c_keep;
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab6:
+ z->c = z->l - m2;
+ { int m_test = z->l - z->c; /* test, line 436 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9; /* goto */ /* grouping vowel, line 436 */
+ { int m5 = z->l - z->c; (void)m5; /* or, line 436 */
+ if (!(eq_s_b(z, 1, s_28))) goto lab11;
+ goto lab10;
+ lab11:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 1, s_29))) goto lab9;
+ }
+ lab10:
+ z->c = z->l - m_test;
+ }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 1, s_30); /* <+, line 436 */
+ z->c = c_keep;
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab9:
+ z->c = z->l - m2;
+ { int m_test = z->l - z->c; /* test, line 438 */
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 438 */
+ { int m6 = z->l - z->c; (void)m6; /* or, line 438 */
+ if (!(eq_s_b(z, 2, s_31))) goto lab13;
+ goto lab12;
+ lab13:
+ z->c = z->l - m6;
+ if (!(eq_s_b(z, 2, s_32))) return 0;
+ }
+ lab12:
+ z->c = z->l - m_test;
+ }
+ { int c_keep = z->c;
+ int ret = insert_s(z, z->c, z->c, 2, s_33); /* <+, line 438 */
+ z->c = c_keep;
+ if (ret < 0) return ret;
+ }
+ }
+lab2:
+ return 1;
+}
+
+static int r_more_than_one_syllable_word(struct SN_env * z) {
+ { int c_test = z->c; /* test, line 446 */
+ { int i = 2;
+ while(1) { /* atleast, line 446 */
+ int c1 = z->c;
+ { /* gopast */ /* grouping vowel, line 446 */
+ int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ i--;
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ if (i > 0) return 0;
+ }
+ z->c = c_test;
+ }
+ return 1;
+}
+
+static int r_is_reserved_word(struct SN_env * z) {
+ { int c1 = z->c; /* or, line 451 */
+ { int c_test = z->c; /* test, line 450 */
+ while(1) { /* gopast, line 450 */
+ if (!(eq_s(z, 2, s_34))) goto lab2;
+ break;
+ lab2:
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret; /* gopast, line 450 */
+ }
+ }
+ z->I[0] = 2;
+ if (!(z->I[0] == z->l)) goto lab1;
+ z->c = c_test;
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int c_test = z->c; /* test, line 452 */
+ while(1) { /* gopast, line 452 */
+ if (!(eq_s(z, 5, s_35))) goto lab3;
+ break;
+ lab3:
+ { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
+ if (ret < 0) return 0;
+ z->c = ret; /* gopast, line 452 */
+ }
+ }
+ z->I[0] = 5;
+ if (!(z->I[0] == z->l)) return 0;
+ z->c = c_test;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ { int c1 = z->c; /* not, line 456 */
+ { int ret = r_is_reserved_word(z);
+ if (ret == 0) goto lab0; /* call is_reserved_word, line 456 */
+ if (ret < 0) return ret;
+ }
+ return 0;
+ lab0:
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l; /* backwards, line 457 */
+
+ { int m2 = z->l - z->c; (void)m2; /* do, line 458 */
+ { int ret = r_append_U_to_stems_ending_with_d_or_g(z);
+ if (ret == 0) goto lab1; /* call append_U_to_stems_ending_with_d_or_g, line 458 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3; /* do, line 459 */
+ { int ret = r_post_process_last_consonants(z);
+ if (ret == 0) goto lab2; /* call post_process_last_consonants, line 459 */
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern int turkish_UTF_8_stem(struct SN_env * z) {
+ { int ret = r_more_than_one_syllable_word(z);
+ if (ret == 0) return 0; /* call more_than_one_syllable_word, line 465 */
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l; /* backwards, line 467 */
+
+ { int m1 = z->l - z->c; (void)m1; /* do, line 468 */
+ { int ret = r_stem_nominal_verb_suffixes(z);
+ if (ret == 0) goto lab0; /* call stem_nominal_verb_suffixes, line 468 */
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ if (!(z->B[0])) return 0; /* Boolean test continue_stemming_noun_suffixes, line 469 */
+ { int m2 = z->l - z->c; (void)m2; /* do, line 470 */
+ { int ret = r_stem_noun_suffixes(z);
+ if (ret == 0) goto lab1; /* call stem_noun_suffixes, line 470 */
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m2;
+ }
+ z->c = z->lb;
+ { int ret = r_postlude(z);
+ if (ret == 0) return 0; /* call postlude, line 473 */
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 1, 1); }
+
+extern void turkish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/libstemmer_c/src_c/stem_UTF_8_turkish.h b/libstemmer_c/src_c/stem_UTF_8_turkish.h
new file mode 100644
index 0000000..8173a17
--- /dev/null
+++ b/libstemmer_c/src_c/stem_UTF_8_turkish.h
@@ -0,0 +1,16 @@
+
+/* This file was generated automatically by the Snowball to ANSI C compiler */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * turkish_UTF_8_create_env(void);
+extern void turkish_UTF_8_close_env(struct SN_env * z);
+
+extern int turkish_UTF_8_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/ppport.h b/ppport.h
index dbc1227..f235c4b 100644
--- a/ppport.h
+++ b/ppport.h
@@ -4,9 +4,9 @@
/*
----------------------------------------------------------------------
- ppport.h -- Perl/Pollution/Portability Version 3.10
+ ppport.h -- Perl/Pollution/Portability Version 3.14
- Automatically created by Devel::PPPort running under perl 5.008007.
+ Automatically created by Devel::PPPort running under perl 5.008006.
Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
includes in parts/inc/ instead.
@@ -21,7 +21,7 @@ SKIP
=head1 NAME
-ppport.h - Perl/Pollution/Portability version 3.10
+ppport.h - Perl/Pollution/Portability version 3.14
=head1 SYNOPSIS
@@ -56,7 +56,7 @@ ppport.h - Perl/Pollution/Portability version 3.10
=head1 COMPATIBILITY
This version of F<ppport.h> is designed to support operation with Perl
-installations back to 5.003, and has been tested up to 5.9.4.
+installations back to 5.003, and has been tested up to 5.10.0.
=head1 OPTIONS
@@ -78,7 +78,10 @@ to be installed on your system.
If this option is given, a copy of each file will be saved with
the given suffix that contains the suggested changes. This does
-not require any external programs.
+not require any external programs. Note that this does not
+automagially add a dot between the original filename and the
+suffix. If you want the dot, you have to include it in the option
+argument.
If neither C<--patch> or C<--copy> are given, the default is to
simply print the diffs for each file. This requires either
@@ -117,7 +120,7 @@ alerts will be printed.
=head2 --nohints
Don't output any hints. Hints often contain useful portability
-notes.
+notes. Warnings will still be displayed.
=head2 --nochanges
@@ -144,7 +147,7 @@ module is installed.
Lists the API elements for which compatibility is provided by
F<ppport.h>. Also lists if it must be explicitly requested,
-if it has dependencies, and if there are hints for it.
+if it has dependencies, and if there are hints or warnings for it.
=head2 --list-unsupported
@@ -221,17 +224,22 @@ same function or variable in your project.
grok_number() NEED_grok_number NEED_grok_number_GLOBAL
grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL
grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL
+ load_module() NEED_load_module NEED_load_module_GLOBAL
my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL
my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL
my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL
newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL
newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL
- sv_2pv_nolen() NEED_sv_2pv_nolen NEED_sv_2pv_nolen_GLOBAL
+ newSVpvn_flags() NEED_newSVpvn_flags NEED_newSVpvn_flags_GLOBAL
+ newSVpvn_share() NEED_newSVpvn_share NEED_newSVpvn_share_GLOBAL
+ sv_2pv_flags() NEED_sv_2pv_flags NEED_sv_2pv_flags_GLOBAL
sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL
sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL
sv_catpvf_mg_nocontext() NEED_sv_catpvf_mg_nocontext NEED_sv_catpvf_mg_nocontext_GLOBAL
+ sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL
sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL
sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL
+ vload_module() NEED_vload_module NEED_vload_module_GLOBAL
vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL
warner() NEED_warner NEED_warner_GLOBAL
@@ -282,6 +290,10 @@ the C<--diff> option:
This would output context diffs with 10 lines of context.
+If you want to create patched copies of your files instead, use:
+
+ perl ppport.h --copy=.new
+
To display portability information for the C<newSVpvn> function,
use:
@@ -340,7 +352,7 @@ module from CPAN.
=head1 COPYRIGHT
-Version 3.x, Copyright (c) 2004-2006, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2008, Marcus Holland-Moritz.
Version 2.x, Copyright (C) 2001, Paul Marquess.
@@ -357,7 +369,10 @@ See L<Devel::PPPort>.
use strict;
-my $VERSION = 3.10;
+# Disable broken TRIE-optimization
+BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 }
+
+my $VERSION = 3.14;
my %opt = (
quiet => 0,
@@ -374,6 +389,12 @@ my($ppport) = $0 =~ /([\w.]+)$/;
my $LF = '(?:\r\n|[\r\n])'; # line feed
my $HS = "[ \t]"; # horizontal whitespace
+# Never use C comments in this file!
+my $ccs = '/'.'*';
+my $cce = '*'.'/';
+my $rccs = quotemeta $ccs;
+my $rcce = quotemeta $cce;
+
eval {
require Getopt::Long;
Getopt::Long::GetOptions(\%opt, qw(
@@ -409,12 +430,6 @@ else {
$opt{'compat-version'} = 5;
}
-# Never use C comments in this file!!!!!
-my $ccs = '/'.'*';
-my $cce = '*'.'/';
-my $rccs = quotemeta $ccs;
-my $rcce = quotemeta $cce;
-
my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
? ( $1 => {
($2 ? ( base => $2 ) : ()),
@@ -473,6 +488,7 @@ HePV||5.004000|
HeSVKEY_force||5.004000|
HeSVKEY_set||5.004000|
HeSVKEY||5.004000|
+HeUTF8||5.011000|
HeVAL||5.004000|
HvNAME|||
INT2PTR|5.006000||p
@@ -492,7 +508,7 @@ IVdf|5.006000||p
LEAVE|||
LVRET|||
MARK|||
-MULTICALL||5.009004|
+MULTICALL||5.011000|
MY_CXT_CLONE|5.009002||p
MY_CXT_INIT|5.007003||p
MY_CXT|5.007003||p
@@ -530,8 +546,9 @@ PAD_SET_CUR|||
PAD_SVl|||
PAD_SV|||
PERL_ABS|5.008001||p
-PERL_BCDVERSION|5.009004||p
+PERL_BCDVERSION|5.011000||p
PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
+PERL_HASH|5.004000||p
PERL_INT_MAX|5.004000||p
PERL_INT_MIN|5.004000||p
PERL_LONG_MAX|5.004000||p
@@ -547,10 +564,10 @@ PERL_MAGIC_envelem|5.007002||p
PERL_MAGIC_env|5.007002||p
PERL_MAGIC_ext|5.007002||p
PERL_MAGIC_fm|5.007002||p
-PERL_MAGIC_glob|5.007002||p
+PERL_MAGIC_glob|5.011000||p
PERL_MAGIC_isaelem|5.007002||p
PERL_MAGIC_isa|5.007002||p
-PERL_MAGIC_mutex|5.007002||p
+PERL_MAGIC_mutex|5.011000||p
PERL_MAGIC_nkeys|5.007002||p
PERL_MAGIC_overload_elem|5.007002||p
PERL_MAGIC_overload_table|5.007002||p
@@ -602,12 +619,13 @@ PERL_USE_GCC_BRACE_GROUPS|5.009004||p
PERL_USHORT_MAX|5.004000||p
PERL_USHORT_MIN|5.004000||p
PERL_VERSION|5.006000||p
+PL_DBsignal|5.005000||p
PL_DBsingle|||pn
PL_DBsub|||pn
-PL_DBtrace|||n
+PL_DBtrace|||pn
PL_Sv|5.005000||p
PL_compiling|5.004050||p
-PL_copline|5.005000||p
+PL_copline|5.011000||p
PL_curcop|5.004050||p
PL_curstash|5.004050||p
PL_debstash|5.004050||p
@@ -616,9 +634,11 @@ PL_diehook|5.004050||p
PL_dirty|5.004050||p
PL_dowarn|||pn
PL_errgv|5.004050||p
+PL_expect|5.011000||p
PL_hexdigit|5.005000||p
PL_hints|5.005000||p
PL_last_in_gv|||n
+PL_laststatval|5.005000||p
PL_modglobal||5.005000|n
PL_na|5.004050||pn
PL_no_modify|5.006000||p
@@ -632,6 +652,7 @@ PL_rs|||n
PL_signals|5.008001||p
PL_stack_base|5.004050||p
PL_stack_sp|5.004050||p
+PL_statcache|5.005000||p
PL_stdingv|5.004050||p
PL_sv_arenaroot|5.004050||p
PL_sv_no|5.004050||pn
@@ -639,7 +660,7 @@ PL_sv_undef|5.004050||pn
PL_sv_yes|5.004050||pn
PL_tainted|5.004050||p
PL_tainting|5.004050||p
-POP_MULTICALL||5.009004|
+POP_MULTICALL||5.011000|
POPi|||n
POPl|||n
POPn|||n
@@ -653,7 +674,7 @@ PTR2UV|5.006000||p
PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
-PUSH_MULTICALL||5.009004|
+PUSH_MULTICALL||5.011000|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
@@ -684,8 +705,7 @@ PerlIO_stdout||5.007003|
PerlIO_tell||5.007003|
PerlIO_unread||5.007003|
PerlIO_write||5.007003|
-Perl_warner_nocontext|5.006000||p
-Perl_warner|5.006000||p
+Perl_signbit||5.009005|n
PoisonFree|5.009004||p
PoisonNew|5.009004||p
PoisonWith|5.009004||p
@@ -706,6 +726,17 @@ STMT_END|||p
STMT_START|||p
STR_WITH_LEN|5.009003||p
ST|||
+SV_CONST_RETURN|5.009003||p
+SV_COW_DROP_PV|5.008001||p
+SV_COW_SHARED_HASH_KEYS|5.009005||p
+SV_GMAGIC|5.007002||p
+SV_HAS_TRAILING_NUL|5.009004||p
+SV_IMMEDIATE_UNREF|5.007001||p
+SV_MUTABLE_RETURN|5.009003||p
+SV_NOSTEAL|5.009002||p
+SV_SMAGIC|5.009003||p
+SV_UTF8_NO_ENCODING|5.008001||p
+SVf_UTF8|5.006000||p
SVf|5.006000||p
SVt_IV|||
SVt_NV|||
@@ -717,6 +748,7 @@ SVt_PV|||
Safefree|||
Slab_Alloc|||
Slab_Free|||
+Slab_to_rw|||
StructCopy|||
SvCUR_set|||
SvCUR|||
@@ -766,9 +798,24 @@ SvPOK|||
SvPVX_const|5.009003||p
SvPVX_mutable|5.009003||p
SvPVX|||
+SvPV_const|5.009003||p
+SvPV_flags_const_nolen|5.009003||p
+SvPV_flags_const|5.009003||p
+SvPV_flags_mutable|5.009003||p
+SvPV_flags|5.007002||p
+SvPV_force_flags_mutable|5.009003||p
+SvPV_force_flags_nolen|5.009003||p
+SvPV_force_flags|5.007002||p
+SvPV_force_mutable|5.009003||p
+SvPV_force_nolen|5.009003||p
+SvPV_force_nomg_nolen|5.009003||p
SvPV_force_nomg|5.007002||p
-SvPV_force|||
+SvPV_force|||p
+SvPV_mutable|5.009003||p
+SvPV_nolen_const|5.009003||p
SvPV_nolen|5.006000||p
+SvPV_nomg_const_nolen|5.009003||p
+SvPV_nomg_const|5.009003||p
SvPV_nomg|5.007002||p
SvPV_set|||
SvPVbyte_force||5.009002|
@@ -798,7 +845,10 @@ SvROK_on|||
SvROK|||
SvRV_set|5.009003||p
SvRV|||
+SvRXOK||5.009005|
+SvRX||5.009005|
SvSETMAGIC|||
+SvSHARED_HASH|5.009003||p
SvSHARE||5.007003|
SvSTASH_set|5.009003||p
SvSTASH|||
@@ -813,7 +863,7 @@ SvTAINT|||
SvTRUE|||
SvTYPE|||
SvUNLOCK||5.007003|
-SvUOK||5.007001|
+SvUOK|5.007001|5.006000|p
SvUPGRADE|||
SvUTF8_off||5.006000|
SvUTF8_on||5.006000|
@@ -828,6 +878,7 @@ SvVOK||5.008001|
SvVSTRING_mg|5.009004||p
THIS|||n
UNDERBAR|5.009002||p
+UTF8_MAXBYTES|5.009002||p
UVSIZE|5.006000||p
UVTYPE|5.006000||p
UVXf|5.007001||p
@@ -836,7 +887,7 @@ UVuf|5.006000||p
UVxf|5.006000||p
WARN_ALL|5.006000||p
WARN_AMBIGUOUS|5.006000||p
-WARN_ASSERTIONS|5.009000||p
+WARN_ASSERTIONS|5.011000||p
WARN_BAREWORD|5.006000||p
WARN_CLOSED|5.006000||p
WARN_CLOSURE|5.006000||p
@@ -917,6 +968,8 @@ _aMY_CXT|5.007003||p
_pMY_CXT|5.007003||p
aMY_CXT_|5.007003||p
aMY_CXT|5.007003||p
+aTHXR_|5.011000||p
+aTHXR|5.011000||p
aTHX_|5.006000||p
aTHX|5.006000||p
add_data|||n
@@ -940,12 +993,15 @@ atfork_lock||5.007003|n
atfork_unlock||5.007003|n
av_arylen_p||5.009003|
av_clear|||
+av_create_and_push||5.009005|
+av_create_and_unshift_one||5.009005|
av_delete||5.006000|
av_exists||5.006000|
av_extend|||
av_fake|||
av_fetch|||
av_fill|||
+av_iter_p||5.011000|
av_len|||
av_make|||
av_pop|||
@@ -964,6 +1020,7 @@ block_start|||
boolSV|5.004000||p
boot_core_PerlIO|||
boot_core_UNIVERSAL|||
+boot_core_mro|||
boot_core_xsutils|||
bytes_from_utf8||5.007001|
bytes_to_uni|||n
@@ -991,6 +1048,7 @@ ck_concat|||
ck_defined|||
ck_delete|||
ck_die|||
+ck_each|||
ck_eof|||
ck_eval|||
ck_exec|||
@@ -1009,6 +1067,7 @@ ck_match|||
ck_method|||
ck_null|||
ck_open|||
+ck_readline|||
ck_repeat|||
ck_require|||
ck_retarget|||
@@ -1016,7 +1075,6 @@ ck_return|||
ck_rfun|||
ck_rvconst|||
ck_sassign|||
-ck_say|||
ck_select|||
ck_shift|||
ck_sort|||
@@ -1067,6 +1125,7 @@ dNOOP|5.006000||p
dORIGMARK|||
dSP|||
dTHR|5.004050||p
+dTHXR|5.011000||p
dTHXa|5.006000||p
dTHXoa|5.006000||p
dTHX|5.006000||p
@@ -1128,7 +1187,6 @@ do_op_xmldump|||
do_open9||5.006000|
do_openn||5.007001|
do_open||5.004000|
-do_pipe|||
do_pmop_dump||5.006000|
do_pmop_xmldump|||
do_print|||
@@ -1153,7 +1211,6 @@ do_trans|||
do_vecget|||
do_vecset|||
do_vop|||
-docatch_body|||
docatch|||
doeval|||
dofile|||
@@ -1168,7 +1225,6 @@ dopoptogiven|||
dopoptolabel|||
dopoptoloop|||
dopoptosub_at|||
-dopoptosub|||
dopoptowhen|||
doref||5.009003|
dounwind|||
@@ -1189,7 +1245,7 @@ dump_trie|||
dump_vindent||5.006000|
dumpuntil|||
dup_attrlist|||
-emulate_eaccess|||
+emulate_cop_io|||
eval_pv|5.006000||p
eval_sv|5.006000||p
exec_failed|||
@@ -1202,12 +1258,13 @@ filter_add|||
filter_del|||
filter_gets|||
filter_read|||
+find_and_forget_pmops|||
find_array_subscript|||
find_beginning|||
find_byclass|||
find_hash_subscript|||
find_in_my_stash|||
-find_runcv|||
+find_runcv||5.008001|
find_rundefsvoffset||5.009002|
find_script|||
find_uninit_var|||
@@ -1219,6 +1276,7 @@ force_list|||
force_next|||
force_version|||
force_word|||
+forget_pmop|||
form_nocontext|||vn
form||5.004000|v
fp_dup|||
@@ -1228,8 +1286,10 @@ free_tied_hv_pool|||
free_tmps|||
gen_constant_list|||
get_arena|||
+get_aux_mg|||
get_av|5.006000||p
get_context||5.006000|n
+get_cvn_flags||5.009005|
get_cv|5.006000||p
get_db_sub|||
get_debug_opts|||
@@ -1242,6 +1302,7 @@ get_op_descs||5.005000|
get_op_names||5.005000|
get_opargs|||
get_ppaddr||5.006000|
+get_re_arg|||
get_sv|5.006000||p
get_vtbl||5.005030|
getcwd_sv||5.007002|
@@ -1271,6 +1332,7 @@ gv_efullname3||5.004000|
gv_efullname4||5.006001|
gv_efullname|||
gv_ename|||
+gv_fetchfile_flags||5.009005|
gv_fetchfile|||
gv_fetchmeth_autoload||5.007003|
gv_fetchmethod_autoload||5.004000|
@@ -1282,6 +1344,7 @@ gv_fetchsv||5.009002|
gv_fullname3||5.004000|
gv_fullname4||5.006001|
gv_fullname|||
+gv_get_super_pkg|||
gv_handler||5.007001|
gv_init_sv|||
gv_init|||
@@ -1294,11 +1357,13 @@ he_dup|||
hek_dup|||
hfreeentries|||
hsplit|||
-hv_assert||5.009001|
+hv_assert||5.011000|
hv_auxinit|||n
hv_backreferences_p|||
hv_clear_placeholders||5.009001|
hv_clear|||
+hv_common_key_len||5.010000|
+hv_common||5.010000|
hv_copy_hints_hv|||
hv_delayfree_ent||5.004000|
hv_delete_common|||
@@ -1308,7 +1373,6 @@ hv_eiter_p||5.009003|
hv_eiter_set||5.009003|
hv_exists_ent||5.004000|
hv_exists|||
-hv_fetch_common|||
hv_fetch_ent||5.004000|
hv_fetchs|5.009003||p
hv_fetch|||
@@ -1323,7 +1387,6 @@ hv_iterval|||
hv_kill_backrefs|||
hv_ksplit||5.004000|
hv_magic_check|||n
-hv_magic_uvar_xkey|||
hv_magic|||
hv_name_set||5.009003|
hv_notallowed|||
@@ -1341,7 +1404,6 @@ hv_undef|||
ibcmp_locale||5.004000|
ibcmp_utf8||5.007003|
ibcmp|||
-incl_perldb|||
incline|||
incpush_if_exists|||
incpush|||
@@ -1353,7 +1415,6 @@ init_i18nl10n||5.006000|
init_i18nl14n||5.006000|
init_ids|||
init_interp|||
-init_lexer|||
init_main_stash|||
init_perllib|||
init_postdump_symbols|||
@@ -1441,7 +1502,7 @@ linklist|||
listkids|||
list|||
load_module_nocontext|||vn
-load_module||5.006000|v
+load_module|5.006000||pv
localize|||
looks_like_bool|||
looks_like_number|||
@@ -1449,10 +1510,12 @@ lop|||
mPUSHi|5.009002||p
mPUSHn|5.009002||p
mPUSHp|5.009002||p
+mPUSHs|5.011000||p
mPUSHu|5.009002||p
mXPUSHi|5.009002||p
mXPUSHn|5.009002||p
mXPUSHp|5.009002||p
+mXPUSHs|5.011000||p
mXPUSHu|5.009002||p
mad_free|||
madlex|||
@@ -1466,7 +1529,6 @@ magic_dump||5.006000|
magic_existspack|||
magic_freearylen_p|||
magic_freeovrld|||
-magic_freeregexp|||
magic_getarylen|||
magic_getdefelem|||
magic_getnkeys|||
@@ -1490,13 +1552,10 @@ magic_scalarpack|||
magic_set_all_env|||
magic_setamagic|||
magic_setarylen|||
-magic_setbm|||
magic_setcollxfrm|||
magic_setdbline|||
magic_setdefelem|||
magic_setenv|||
-magic_setfm|||
-magic_setglob|||
magic_sethint|||
magic_setisa|||
magic_setmglob|||
@@ -1549,6 +1608,13 @@ mod|||
more_bodies|||
more_sv|||
moreswitches|||
+mro_get_linear_isa_c3|||
+mro_get_linear_isa_dfs|||
+mro_get_linear_isa||5.009005|
+mro_isa_changed_in|||
+mro_meta_dup|||
+mro_meta_init|||
+mro_method_changed_in||5.009005|
mul128|||
mulexp10|||n
my_atof2||5.007002|
@@ -1564,7 +1630,9 @@ my_betohs|||n
my_bzero|||n
my_chsize|||
my_clearenv|||
+my_cxt_index|||
my_cxt_init|||
+my_dirfd||5.009005|
my_exit_jump|||
my_exit|||
my_failure_exit||5.004000|
@@ -1645,7 +1713,7 @@ newMADsv|||
newMYSUB|||
newNULLLIST|||
newOP|||
-newPADOP||5.006000|
+newPADOP|||
newPMOP|||
newPROG|||
newPVOP|||
@@ -1658,13 +1726,17 @@ newSTATEOP|||
newSUB|||
newSVOP|||
newSVREF|||
+newSV_type||5.009005|
newSVhek||5.009003|
newSViv|||
newSVnv|||
newSVpvf_nocontext|||vn
newSVpvf||5.004000|v
-newSVpvn_share||5.007001|
+newSVpvn_flags|5.011000||p
+newSVpvn_share|5.007001||p
+newSVpvn_utf8|5.011000||p
newSVpvn|5.004050||p
+newSVpvs_flags|5.011000||p
newSVpvs_share||5.009003|
newSVpvs|5.009003||p
newSVpv|||
@@ -1710,6 +1782,8 @@ op_free|||
op_getmad_weak|||
op_getmad|||
op_null||5.007002|
+op_refcnt_dec|||
+op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_xmldump|||
@@ -1739,15 +1813,17 @@ pad_peg|||n
pad_push|||
pad_reset|||
pad_setsv|||
-pad_sv||5.009004|
+pad_sv||5.011000|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
+parser_dup|||
+parser_free|||
path_is_absolute|||n
peep|||
-pending_ident|||
+pending_Slabs_to_ro|||
perl_alloc_using|||n
perl_alloc|||n
perl_clone_using|||n
@@ -1765,20 +1841,22 @@ pmop_xmldump|||
pmruntime|||
pmtrans|||
pop_scope|||
-pregcomp|||
+pregcomp||5.009005|
pregexec|||
+pregfree2||5.011000|
pregfree|||
prepend_elem|||
prepend_madprops|||
printbuf|||
printf_nocontext|||vn
-ptr_table_clear|||
-ptr_table_fetch|||
+process_special_blocks|||
+ptr_table_clear||5.009005|
+ptr_table_fetch||5.009005|
ptr_table_find|||n
-ptr_table_free|||
-ptr_table_new|||
-ptr_table_split|||
-ptr_table_store|||
+ptr_table_free||5.009005|
+ptr_table_new||5.009005|
+ptr_table_split||5.009005|
+ptr_table_store||5.009005|
push_scope|||
put_byte|||
pv_display||5.006000|
@@ -1787,10 +1865,12 @@ pv_pretty||5.009004|
pv_uni_display||5.007003|
qerror|||
qsortsvu|||
+re_compile||5.009005|
re_croak2|||
-re_dup|||
-re_intuit_start||5.006000|
+re_dup_guts|||
+re_intuit_start||5.009005|
re_intuit_string||5.006000|
+readpipe_override|||
realloc||5.007002|n
reentrant_free|||
reentrant_init|||
@@ -1804,8 +1884,27 @@ refcounted_he_new|||
refcounted_he_value|||
refkids|||
refto|||
-ref||5.009003|
+ref||5.011000|
+reg_check_named_buff_matched|||
+reg_named_buff_all||5.009005|
+reg_named_buff_exists||5.009005|
+reg_named_buff_fetch||5.009005|
+reg_named_buff_firstkey||5.009005|
+reg_named_buff_iter|||
+reg_named_buff_nextkey||5.009005|
+reg_named_buff_scalar||5.009005|
+reg_named_buff|||
+reg_namedseq|||
reg_node|||
+reg_numbered_buff_fetch|||
+reg_numbered_buff_length|||
+reg_numbered_buff_store|||
+reg_qr_package|||
+reg_recode|||
+reg_scan_name|||
+reg_skipcomment|||
+reg_stringify||5.009005|
+reg_temp_copy|||
reganode|||
regatom|||
regbranch|||
@@ -1814,9 +1913,13 @@ regclass|||
regcppop|||
regcppush|||
regcurly|||n
+regdump_extflags|||
regdump||5.005000|
+regdupe_internal|||
regexec_flags||5.005000|
+regfree_internal||5.009005|
reghop3|||n
+reghop4|||n
reghopmaybe3|||n
reginclass|||
reginitcolors||5.006000|
@@ -1836,8 +1939,8 @@ reg|||
repeatcpy|||
report_evil_fh|||
report_uninit|||
-require_errno|||
require_pv||5.006000|
+require_tie_mod|||
restore_magic|||
rninstr|||
rsignal_restore|||
@@ -1878,7 +1981,6 @@ save_gp||5.004000|
save_hash|||
save_hek_flags|||n
save_helem||5.004050|
-save_hints||5.005000|
save_hptr|||
save_int|||
save_item|||
@@ -1903,6 +2005,7 @@ save_vptr||5.006000|
savepvn|||
savepvs||5.009003|
savepv|||
+savesharedpvn||5.009005|
savesharedpv||5.007003|
savestack_grow_cnt||5.008001|
savestack_grow|||
@@ -1929,7 +2032,7 @@ scan_str|||
scan_subst|||
scan_trans|||
scan_version||5.009001|
-scan_vstring||5.008001|
+scan_vstring||5.009005|
scan_word|||
scope|||
screaminstr||5.005000|
@@ -1938,7 +2041,6 @@ sequence_num|||
sequence_tail|||
sequence|||
set_context||5.006000|n
-set_csh|||
set_numeric_local||5.006000|
set_numeric_radix||5.006000|
set_numeric_standard||5.006000|
@@ -1953,6 +2055,7 @@ skipspace0|||
skipspace1|||
skipspace2|||
skipspace|||
+softref2xv|||
sortcv_stacked|||
sortcv_xsub|||
sortcv|||
@@ -1964,7 +2067,7 @@ stack_grow|||
start_force|||
start_glob|||
start_subparse||5.004000|
-stashpv_hvname_match||5.009004|
+stashpv_hvname_match||5.011000|
stdize_locale|||
strEQ|||
strGE|||
@@ -1973,7 +2076,6 @@ strLE|||
strLT|||
strNE|||
str_to_version||5.006000|
-stringify_regexp|||
strip_return|||
strnEQ|||
strnNE|||
@@ -1990,10 +2092,11 @@ sv_2iuv_non_preserve|||
sv_2iv_flags||5.009001|
sv_2iv|||
sv_2mortal|||
+sv_2num|||
sv_2nv|||
-sv_2pv_flags||5.007002|
+sv_2pv_flags|5.007002||p
sv_2pv_nolen|5.006000||p
-sv_2pvbyte_nolen|||
+sv_2pvbyte_nolen|5.006000||p
sv_2pvbyte|5.006000||p
sv_2pvutf8_nolen||5.006000|
sv_2pvutf8||5.006000|
@@ -2034,6 +2137,7 @@ sv_copypv||5.007003|
sv_dec|||
sv_del_backref|||
sv_derived_from||5.004000|
+sv_destroyable||5.010000|
sv_does||5.009004|
sv_dump|||
sv_dup|||
@@ -2055,6 +2159,7 @@ sv_iv||5.005000|
sv_kill_backrefs|||
sv_len_utf8||5.006000|
sv_len|||
+sv_magic_portable|5.011000|5.004000|p
sv_magicext||5.007003|
sv_magic|||
sv_mortalcopy|||
@@ -2066,7 +2171,6 @@ sv_nosharing||5.007003|
sv_nounlocking|||
sv_nv||5.005000|
sv_peek||5.005000|
-sv_pos_b2u_forwards|||
sv_pos_b2u_midway|||
sv_pos_b2u||5.006000|
sv_pos_u2b_cached|||
@@ -2076,10 +2180,10 @@ sv_pos_u2b||5.006000|
sv_pvbyten_force||5.006000|
sv_pvbyten||5.006000|
sv_pvbyte||5.006000|
-sv_pvn_force_flags||5.007002|
-sv_pvn_force|||p
-sv_pvn_nomg|5.007003||p
-sv_pvn|5.005000||p
+sv_pvn_force_flags|5.007002||p
+sv_pvn_force|||
+sv_pvn_nomg|5.007003|5.005000|p
+sv_pvn||5.005000|
sv_pvutf8n_force||5.006000|
sv_pvutf8n||5.006000|
sv_pvutf8||5.006000|
@@ -2087,7 +2191,6 @@ sv_pv||5.006000|
sv_recode_to_utf8||5.007003|
sv_reftype|||
sv_release_COW|||
-sv_release_IVX|||
sv_replace|||
sv_report_used|||
sv_reset|||
@@ -2147,12 +2250,16 @@ sv_vsetpvf|5.006000|5.004000|p
sv_xmlpeek|||
svtype|||
swallow_bom|||
+swap_match_buff|||
swash_fetch||5.007002|
swash_get|||
swash_init||5.006000|
+sys_init3||5.010000|n
+sys_init||5.010000|n
sys_intern_clear|||
sys_intern_dup|||
sys_intern_init|||
+sys_term||5.010000|n
taint_env|||
taint_proper|||
tmps_grow||5.006000|
@@ -2188,7 +2295,8 @@ unshare_hek_or_pvn|||
unshare_hek|||
unsharepvn||5.004000|
unwind_handler_stack|||
-upg_version||5.009000|
+update_debugger_info|||
+upg_version||5.009005|
usage|||
utf16_to_utf8_reversed||5.006001|
utf16_to_utf8||5.006001|
@@ -2218,7 +2326,7 @@ vform||5.006000|
visit|||
vivify_defelem|||
vivify_ref|||
-vload_module||5.006000|
+vload_module|5.006000||p
vmess||5.006000|
vnewSVpvf|5.006000|5.004000|p
vnormal||5.009002|
@@ -2261,21 +2369,64 @@ if (exists $opt{'list-unsupported'}) {
# Scan for possible replacement candidates
-my(%replace, %need, %hints, %depends);
+my(%replace, %need, %hints, %warnings, %depends);
my $replace = 0;
-my $hint = '';
+my($hint, $define, $function);
+
+sub find_api
+{
+ my $code = shift;
+ $code =~ s{
+ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
+ | "[^"\\]*(?:\\.[^"\\]*)*"
+ | '[^'\\]*(?:\\.[^'\\]*)*' }{}egsx;
+ grep { exists $API{$_} } $code =~ /(\w+)/mg;
+}
while (<DATA>) {
if ($hint) {
+ my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings;
if (m{^\s*\*\s(.*?)\s*$}) {
- $hints{$hint} ||= ''; # suppress warning with older perls
- $hints{$hint} .= "$1\n";
+ for (@{$hint->[1]}) {
+ $h->{$_} ||= ''; # suppress warning with older perls
+ $h->{$_} .= "$1\n";
+ }
+ }
+ else { undef $hint }
+ }
+
+ $hint = [$1, [split /,?\s+/, $2]]
+ if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$};
+
+ if ($define) {
+ if ($define->[1] =~ /\\$/) {
+ $define->[1] .= $_;
+ }
+ else {
+ if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) {
+ my @n = find_api($define->[1]);
+ push @{$depends{$define->[0]}}, @n if @n
+ }
+ undef $define;
+ }
+ }
+
+ $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)};
+
+ if ($function) {
+ if (/^}/) {
+ if (exists $API{$function->[0]}) {
+ my @n = find_api($function->[1]);
+ push @{$depends{$function->[0]}}, @n if @n
+ }
+ undef $function;
}
else {
- $hint = '';
+ $function->[1] .= $_;
}
}
- $hint = $1 if m{^\s*$rccs\sHint:\s+(\w+)\s*$};
+
+ $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)};
$replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$};
$replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)};
@@ -2289,6 +2440,11 @@ while (<DATA>) {
$need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
}
+for (values %depends) {
+ my %s;
+ $_ = [sort grep !$s{$_}++, @$_];
+}
+
if (exists $opt{'api-info'}) {
my $f;
my $count = 0;
@@ -2307,20 +2463,15 @@ if (exists $opt{'api-info'}) {
print "Support by $ppport provided back to perl-$todo.\n";
print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
- print "$hints{$f}" if exists $hints{$f};
+ print "\n$hints{$f}" if exists $hints{$f};
+ print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f};
$info++;
}
- unless ($info) {
- print "No portability information available.\n";
- }
+ print "No portability information available.\n" unless $info;
$count++;
}
- if ($count > 0) {
- print "\n";
- }
- else {
- print "Found no API matching '$opt{'api-info'}'.\n";
- }
+ $count or print "Found no API matching '$opt{'api-info'}'.";
+ print "\n";
exit 0;
}
@@ -2332,6 +2483,7 @@ if (exists $opt{'list-provided'}) {
push @flags, 'explicit' if exists $need{$f};
push @flags, 'depend' if exists $depends{$f};
push @flags, 'hint' if exists $hints{$f};
+ push @flags, 'warning' if exists $warnings{$f};
my $flags = @flags ? ' ['.join(', ', @flags).']' : '';
print "$f$flags\n";
}
@@ -2339,23 +2491,35 @@ if (exists $opt{'list-provided'}) {
}
my @files;
-my @srcext = qw( xs c h cc cpp );
-my $srcext = join '|', @srcext;
+my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc );
+my $srcext = join '|', map { quotemeta $_ } @srcext;
if (@ARGV) {
my %seen;
- @files = grep { -f && !exists $seen{$_} } map { glob $_ } @ARGV;
+ for (@ARGV) {
+ if (-e) {
+ if (-f) {
+ push @files, $_ unless $seen{$_}++;
+ }
+ else { warn "'$_' is not a file.\n" }
+ }
+ else {
+ my @new = grep { -f } glob $_
+ or warn "'$_' does not exist.\n";
+ push @files, grep { !$seen{$_}++ } @new;
+ }
+ }
}
else {
eval {
require File::Find;
File::Find::find(sub {
- $File::Find::name =~ /\.($srcext)$/i
+ $File::Find::name =~ /($srcext)$/i
and push @files, $File::Find::name;
}, '.');
};
if ($@) {
- @files = map { glob "*.$_" } @srcext;
+ @files = map { glob "*$_" } @srcext;
}
}
@@ -2363,7 +2527,7 @@ if (!@ARGV || $opt{filter}) {
my(@in, @out);
my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files;
for (@files) {
- my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/\.($srcext)$/i;
+ my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/($srcext)$/i;
push @{ $out ? \@out : \@in }, $_;
}
if (@ARGV && @out) {
@@ -2372,9 +2536,7 @@ if (!@ARGV || $opt{filter}) {
@files = @in;
}
-unless (@files) {
- die "No input files given!\n";
-}
+die "No input files given!\n" unless @files;
my(%files, %global, %revreplace);
%revreplace = reverse %replace;
@@ -2394,30 +2556,22 @@ for $filename (@files) {
my %file = (orig => $c, changes => 0);
- # temporarily remove C comments from the code
+ # Temporarily remove C/XS comments and strings from the code
my @ccom;
+
$c =~ s{
- (
- [^"'/]+
- |
- (?:"[^"\\]*(?:\\.[^"\\]*)*" [^"'/]*)+
- |
- (?:'[^'\\]*(?:\\.[^'\\]*)*' [^"'/]*)+
- )
- |
- (/ (?:
- \*[^*]*\*+(?:[^$ccs][^*]*\*+)* /
- |
- /[^\r\n]*
- ))
- }{
- defined $2 and push @ccom, $2;
- defined $1 ? $1 : "$ccs$#ccom$cce";
- }egsx;
+ ( ^$HS*\#$HS*include\b[^\r\n]+\b(?:\Q$ppport\E|XSUB\.h)\b[^\r\n]*
+ | ^$HS*\#$HS*(?:define|elif|if(?:def)?)\b[^\r\n]* )
+ | ( ^$HS*\#[^\r\n]*
+ | "[^"\\]*(?:\\.[^"\\]*)*"
+ | '[^'\\]*(?:\\.[^'\\]*)*'
+ | / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* ) )
+ }{ defined $2 and push @ccom, $2;
+ defined $1 ? $1 : "$ccs$#ccom$cce" }mgsex;
$file{ccom} = \@ccom;
$file{code} = $c;
- $file{has_inc_ppport} = ($c =~ /#.*include.*\Q$ppport\E/);
+ $file{has_inc_ppport} = $c =~ /^$HS*#$HS*include[^\r\n]+\b\Q$ppport\E\b/m;
my $func;
@@ -2428,6 +2582,7 @@ for $filename (@files) {
$file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func};
$file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/;
if (exists $API{$func}{provided}) {
+ $file{uses_provided}{$func}++;
if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) {
$file{uses}{$func}++;
my @deps = rec_depend($func);
@@ -2438,9 +2593,7 @@ for $filename (@files) {
}
}
for ($func, @deps) {
- if (exists $need{$_}) {
- $file{needs}{$_} = 'static';
- }
+ $file{needs}{$_} = 'static' if exists $need{$_};
}
}
}
@@ -2456,9 +2609,7 @@ for $filename (@files) {
if (exists $need{$2}) {
$file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++;
}
- else {
- warning("Possibly wrong #define $1 in $filename");
- }
+ else { warning("Possibly wrong #define $1 in $filename") }
}
for (qw(uses needs uses_todo needed_global needed_static)) {
@@ -2495,14 +2646,17 @@ for $filename (@files) {
my %file = %{$files{$filename}};
my $func;
my $c = $file{code};
+ my $warnings = 0;
for $func (sort keys %{$file{uses_Perl}}) {
if ($API{$func}{varargs}) {
- my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))}
- { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge);
- if ($changes) {
- warning("Doesn't pass interpreter argument aTHX to Perl_$func");
- $file{changes} += $changes;
+ unless ($API{$func}{nothxarg}) {
+ my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))}
+ { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge);
+ if ($changes) {
+ warning("Doesn't pass interpreter argument aTHX to Perl_$func");
+ $file{changes} += $changes;
+ }
}
}
else {
@@ -2517,24 +2671,24 @@ for $filename (@files) {
$file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g);
}
- for $func (sort keys %{$file{uses}}) {
- next unless $file{uses}{$func}; # if it's only a dependency
- if (exists $file{uses_deps}{$func}) {
- diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}}));
- }
- elsif (exists $replace{$func}) {
- warning("Uses $func instead of $replace{$func}");
- $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g);
- }
- else {
- diag("Uses $func");
+ for $func (sort keys %{$file{uses_provided}}) {
+ if ($file{uses}{$func}) {
+ if (exists $file{uses_deps}{$func}) {
+ diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}}));
+ }
+ else {
+ diag("Uses $func");
+ }
}
- hint($func);
+ $warnings += hint($func);
}
- for $func (sort keys %{$file{uses_todo}}) {
- warning("Uses $func, which may not be portable below perl ",
- format_version($API{$func}{todo}));
+ unless ($opt{quiet}) {
+ for $func (sort keys %{$file{uses_todo}}) {
+ print "*** WARNING: Uses $func, which may not be portable below perl ",
+ format_version($API{$func}{todo}), ", even with '$ppport'\n";
+ $warnings++;
+ }
}
for $func (sort keys %{$file{needed_static}}) {
@@ -2633,6 +2787,10 @@ for $filename (@files) {
warning("Uses $cppc C++ style comment$s, which is not portable");
}
+ my $s = $warnings != 1 ? 's' : '';
+ my $warn = $warnings ? " ($warnings warning$s)" : '';
+ info("Analysis completed$warn");
+
if ($file{changes}) {
if (exists $opt{copy}) {
my $newfile = "$filename$opt{copy}";
@@ -2687,6 +2845,8 @@ close PATCH if $patch_opened;
exit 0;
+sub try_use { eval "use @_;"; return $@ eq '' }
+
sub mydiff
{
local *F = shift;
@@ -2697,7 +2857,7 @@ sub mydiff
$diff = run_diff($opt{diff}, $file, $str);
}
- if (!defined $diff and can_use('Text::Diff')) {
+ if (!defined $diff and try_use('Text::Diff')) {
$diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' });
$diff = <<HEADER . $diff;
--- $file
@@ -2719,7 +2879,6 @@ HEADER
}
print F $diff;
-
}
sub run_diff
@@ -2756,18 +2915,14 @@ sub run_diff
return undef;
}
-sub can_use
-{
- eval "use @_;";
- return $@ eq '';
-}
-
sub rec_depend
{
- my $func = shift;
- my %seen;
+ my($func, $seen) = @_;
return () unless exists $depends{$func};
- grep !$seen{$_}++, map { ($_, rec_depend($_)) } @{$depends{$func}};
+ $seen = {%{$seen||{}}};
+ return () if $seen->{$func}++;
+ my %s;
+ grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}};
}
sub parse_version
@@ -2847,16 +3002,24 @@ sub error
}
my %given_hints;
+my %given_warnings;
sub hint
{
$opt{quiet} and return;
- $opt{hints} or return;
my $func = shift;
- exists $hints{$func} or return;
- $given_hints{$func}++ and return;
- my $hint = $hints{$func};
- $hint =~ s/^/ /mg;
- print " --- hint for $func ---\n", $hint;
+ my $rv = 0;
+ if (exists $warnings{$func} && !$given_warnings{$func}++) {
+ my $warn = $warnings{$func};
+ $warn =~ s!^!*** !mg;
+ print "*** WARNING: $func\n", $warn;
+ $rv++;
+ }
+ if ($opt{hints} && exists $hints{$func} && !$given_hints{$func}++) {
+ my $hint = $hints{$func};
+ $hint =~ s/^/ /mg;
+ print " --- hint for $func ---\n", $hint;
+ }
+ $rv;
}
sub usage
@@ -2906,9 +3069,19 @@ please try to regenerate this file using:
END
/ms;
+ my($pl, $c) = $self =~ /(.*^__DATA__)(.*)/ms;
+ $c =~ s{
+ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
+ | ( "[^"\\]*(?:\\.[^"\\]*)*"
+ | '[^'\\]*(?:\\.[^'\\]*)*' )
+ | ($HS+) }{ defined $2 ? ' ' : ($1 || '') }gsex;
+ $c =~ s!\s+$!!mg;
+ $c =~ s!^$LF!!mg;
+ $c =~ s!^\s*#\s*!#!mg;
+ $c =~ s!^\s+!!mg;
open OUT, ">$0" or die "cannot strip $0: $!\n";
- print OUT $self;
+ print OUT "$pl$c\n";
exit 0;
}
@@ -2944,7 +3117,8 @@ __DATA__
# endif
#endif
-#define PERL_BCDVERSION ((PERL_REVISION * 0x1000000L) + (PERL_VERSION * 0x1000L) + PERL_SUBVERSION)
+#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10))
+#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION))
/* It is very unlikely that anyone will try to use this with Perl 6
(or greater), but who knows.
@@ -3329,6 +3503,10 @@ __DATA__
#ifndef sv_uv
# define sv_uv(sv) SvUVx(sv)
#endif
+
+#if !defined(SvUOK) && defined(SvIOK_UV)
+# define SvUOK(sv) SvIOK_UV(sv)
+#endif
#ifndef XST_mUV
# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) )
#endif
@@ -3409,42 +3587,6 @@ __DATA__
# define Newxz(v,n,t) Newz(0,v,n,t)
#endif
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
-/* Replace: 1 */
-# define PL_DBsingle DBsingle
-# define PL_DBsub DBsub
-# define PL_Sv Sv
-# define PL_compiling compiling
-# define PL_copline copline
-# define PL_curcop curcop
-# define PL_curstash curstash
-# define PL_debstash debstash
-# define PL_defgv defgv
-# define PL_diehook diehook
-# define PL_dirty dirty
-# define PL_dowarn dowarn
-# define PL_errgv errgv
-# define PL_hexdigit hexdigit
-# define PL_hints hints
-# define PL_na na
-# define PL_no_modify no_modify
-# define PL_perl_destruct_level perl_destruct_level
-# define PL_perldb perldb
-# define PL_ppaddr ppaddr
-# define PL_rsfp_filters rsfp_filters
-# define PL_rsfp rsfp
-# define PL_stack_base stack_base
-# define PL_stack_sp stack_sp
-# define PL_stdingv stdingv
-# define PL_sv_arenaroot sv_arenaroot
-# define PL_sv_no sv_no
-# define PL_sv_undef sv_undef
-# define PL_sv_yes sv_yes
-# define PL_tainted tainted
-# define PL_tainting tainting
-/* Replace: 0 */
-#endif
-
#ifndef PERL_UNUSED_DECL
# ifdef HASATTRIBUTE
# if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER)
@@ -3580,11 +3722,6 @@ typedef NVTYPE NV;
#ifndef ERRSV
# define ERRSV get_sv("@",FALSE)
#endif
-#ifndef newSVpvn
-# define newSVpvn(data,len) ((data) \
- ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
- : newSV(0))
-#endif
/* Hint: gv_stashpvn
* This function's backport doesn't support the length parameter, but
@@ -3639,7 +3776,7 @@ typedef NVTYPE NV;
# define XSprePUSH (sp = PL_stack_base + ax - 1)
#endif
-#if ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 0)))
+#if (PERL_BCDVERSION < 0x5005000)
# undef XSRETURN
# define XSRETURN(off) \
STMT_START { \
@@ -3656,21 +3793,108 @@ typedef NVTYPE NV;
#ifndef SVf
# define SVf "_"
#endif
+#ifndef UTF8_MAXBYTES
+# define UTF8_MAXBYTES UTF8_MAXLEN
+#endif
+#ifndef PERL_HASH
+# define PERL_HASH(hash,str,len) \
+ STMT_START { \
+ const char *s_PeRlHaSh = str; \
+ I32 i_PeRlHaSh = len; \
+ U32 hash_PeRlHaSh = 0; \
+ while (i_PeRlHaSh--) \
+ hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \
+ (hash) = hash_PeRlHaSh; \
+ } STMT_END
+#endif
#ifndef PERL_SIGNALS_UNSAFE_FLAG
#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
+#if (PERL_BCDVERSION < 0x5008000)
+# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG
+#else
+# define D_PPP_PERL_SIGNALS_INIT 0
+#endif
+
#if defined(NEED_PL_signals)
-static U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG;
+static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT;
#elif defined(NEED_PL_signals_GLOBAL)
-U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG;
+U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT;
#else
extern U32 DPPP_(my_PL_signals);
#endif
#define PL_signals DPPP_(my_PL_signals)
#endif
+
+/* Hint: PL_ppaddr
+ * Calling an op via PL_ppaddr requires passing a context argument
+ * for threaded builds. Since the context argument is different for
+ * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will
+ * automatically be defined as the correct argument.
+ */
+
+#if (PERL_BCDVERSION <= 0x5005005)
+/* Replace: 1 */
+# define PL_ppaddr ppaddr
+# define PL_no_modify no_modify
+/* Replace: 0 */
+#endif
+
+#if (PERL_BCDVERSION <= 0x5004005)
+/* Replace: 1 */
+# define PL_DBsignal DBsignal
+# define PL_DBsingle DBsingle
+# define PL_DBsub DBsub
+# define PL_DBtrace DBtrace
+# define PL_Sv Sv
+# define PL_compiling compiling
+# define PL_copline copline
+# define PL_curcop curcop
+# define PL_curstash curstash
+# define PL_debstash debstash
+# define PL_defgv defgv
+# define PL_diehook diehook
+# define PL_dirty dirty
+# define PL_dowarn dowarn
+# define PL_errgv errgv
+# define PL_expect expect
+# define PL_hexdigit hexdigit
+# define PL_hints hints
+# define PL_laststatval laststatval
+# define PL_na na
+# define PL_perl_destruct_level perl_destruct_level
+# define PL_perldb perldb
+# define PL_rsfp_filters rsfp_filters
+# define PL_rsfp rsfp
+# define PL_stack_base stack_base
+# define PL_stack_sp stack_sp
+# define PL_statcache statcache
+# define PL_stdingv stdingv
+# define PL_sv_arenaroot sv_arenaroot
+# define PL_sv_no sv_no
+# define PL_sv_undef sv_undef
+# define PL_sv_yes sv_yes
+# define PL_tainted tainted
+# define PL_tainting tainting
+/* Replace: 0 */
+#endif
+
+/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters
+ * Do not use this variable. It is internal to the perl parser
+ * and may change or even be removed in the future. Note that
+ * as of perl 5.9.5 you cannot assign to this variable anymore.
+ */
+
+/* TODO: cannot assign to these vars; is it worth fixing? */
+#if (PERL_BCDVERSION >= 0x5009005)
+# define PL_expect (PL_parser ? PL_parser->expect : 0)
+# define PL_copline (PL_parser ? PL_parser->copline : 0)
+# define PL_rsfp (PL_parser ? PL_parser->rsfp : (PerlIO *) 0)
+# define PL_rsfp_filters (PL_parser ? PL_parser->rsfp_filters : (AV *) 0)
+#endif
#ifndef dTHR
# define dTHR dNOOP
#endif
@@ -3696,46 +3920,69 @@ extern U32 DPPP_(my_PL_signals);
#ifndef aTHX_
# define aTHX_
#endif
+
+#if (PERL_BCDVERSION < 0x5006000)
+# ifdef USE_THREADS
+# define aTHXR thr
+# define aTHXR_ thr,
+# else
+# define aTHXR
+# define aTHXR_
+# endif
+# define dTHXR dTHR
+#else
+# define aTHXR aTHX
+# define aTHXR_ aTHX_
+# define dTHXR dTHX
+#endif
#ifndef dTHXoa
# define dTHXoa(x) dTHXa(x)
#endif
+#ifndef mPUSHs
+# define mPUSHs(s) PUSHs(sv_2mortal(s))
+#endif
+
#ifndef PUSHmortal
# define PUSHmortal PUSHs(sv_newmortal())
#endif
#ifndef mPUSHp
-# define mPUSHp(p,l) sv_setpvn_mg(PUSHmortal, (p), (l))
+# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l))
#endif
#ifndef mPUSHn
-# define mPUSHn(n) sv_setnv_mg(PUSHmortal, (NV)(n))
+# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n))
#endif
#ifndef mPUSHi
-# define mPUSHi(i) sv_setiv_mg(PUSHmortal, (IV)(i))
+# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i))
#endif
#ifndef mPUSHu
-# define mPUSHu(u) sv_setuv_mg(PUSHmortal, (UV)(u))
+# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u))
+#endif
+#ifndef mXPUSHs
+# define mXPUSHs(s) XPUSHs(sv_2mortal(s))
#endif
+
#ifndef XPUSHmortal
# define XPUSHmortal XPUSHs(sv_newmortal())
#endif
#ifndef mXPUSHp
-# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn_mg(PUSHmortal, (p), (l)); } STMT_END
+# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
#endif
#ifndef mXPUSHn
-# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv_mg(PUSHmortal, (NV)(n)); } STMT_END
+# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
#endif
#ifndef mXPUSHi
-# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv_mg(PUSHmortal, (IV)(i)); } STMT_END
+# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
#endif
#ifndef mXPUSHu
-# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv_mg(PUSHmortal, (UV)(u)); } STMT_END
+# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
#endif
/* Replace: 1 */
@@ -3757,11 +4004,21 @@ extern U32 DPPP_(my_PL_signals);
#ifndef eval_sv
# define eval_sv perl_eval_sv
#endif
+#ifndef PERL_LOADMOD_DENY
+# define PERL_LOADMOD_DENY 0x1
+#endif
+
+#ifndef PERL_LOADMOD_NOIMPORT
+# define PERL_LOADMOD_NOIMPORT 0x2
+#endif
+
+#ifndef PERL_LOADMOD_IMPORT_OPS
+# define PERL_LOADMOD_IMPORT_OPS 0x4
+#endif
/* Replace: 0 */
/* Replace perl_eval_pv with eval_pv */
-/* eval_pv depends on eval_sv */
#ifndef eval_pv
#if defined(NEED_eval_pv)
@@ -3801,6 +4058,106 @@ DPPP_(my_eval_pv)(char *p, I32 croak_on_error)
#endif
#endif
+
+#ifndef vload_module
+#if defined(NEED_vload_module)
+static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args);
+static
+#else
+extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args);
+#endif
+
+#ifdef vload_module
+# undef vload_module
+#endif
+#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d)
+#define Perl_vload_module DPPP_(my_vload_module)
+
+#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL)
+
+void
+DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args)
+{
+ dTHR;
+ dVAR;
+ OP *veop, *imop;
+
+ OP * const modname = newSVOP(OP_CONST, 0, name);
+ /* 5.005 has a somewhat hacky force_normal that doesn't croak on
+ SvREADONLY() if PL_compling is true. Current perls take care in
+ ck_require() to correctly turn off SvREADONLY before calling
+ force_normal_flags(). This seems a better fix than fudging PL_compling
+ */
+ SvREADONLY_off(((SVOP*)modname)->op_sv);
+ modname->op_private |= OPpCONST_BARE;
+ if (ver) {
+ veop = newSVOP(OP_CONST, 0, ver);
+ }
+ else
+ veop = NULL;
+ if (flags & PERL_LOADMOD_NOIMPORT) {
+ imop = sawparens(newNULLLIST());
+ }
+ else if (flags & PERL_LOADMOD_IMPORT_OPS) {
+ imop = va_arg(*args, OP*);
+ }
+ else {
+ SV *sv;
+ imop = NULL;
+ sv = va_arg(*args, SV*);
+ while (sv) {
+ imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
+ sv = va_arg(*args, SV*);
+ }
+ }
+ {
+ const line_t ocopline = PL_copline;
+ COP * const ocurcop = PL_curcop;
+ const int oexpect = PL_expect;
+
+#if (PERL_BCDVERSION >= 0x5004000)
+ utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
+ veop, modname, imop);
+#else
+ utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
+ modname, imop);
+#endif
+ PL_expect = oexpect;
+ PL_copline = ocopline;
+ PL_curcop = ocurcop;
+ }
+}
+
+#endif
+#endif
+
+#ifndef load_module
+#if defined(NEED_load_module)
+static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...);
+static
+#else
+extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...);
+#endif
+
+#ifdef load_module
+# undef load_module
+#endif
+#define load_module DPPP_(my_load_module)
+#define Perl_load_module DPPP_(my_load_module)
+
+#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL)
+
+void
+DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
+{
+ va_list args;
+ va_start(args, ver);
+ vload_module(flags, name, ver, &args);
+ va_end(args);
+}
+
+#endif
+#endif
#ifndef newRV_inc
# define newRV_inc(sv) newRV(sv) /* Replace */
#endif
@@ -3836,12 +4193,12 @@ DPPP_(my_newRV_noinc)(SV *sv)
*/
/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 63))) && ((PERL_VERSION != 4) || (PERL_SUBVERSION != 5))
+#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005)
#if defined(NEED_newCONSTSUB)
-static void DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv);
+static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv);
static
#else
-extern void DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv);
+extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv);
#endif
#ifdef newCONSTSUB
@@ -3853,7 +4210,7 @@ extern void DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv);
#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
void
-DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv)
+DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
{
U32 oldhints = PL_hints;
HV *old_cop_stash = PL_curcop->cop_stash;
@@ -3867,15 +4224,15 @@ DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv)
newSUB(
-#if ((PERL_VERSION < 3) || ((PERL_VERSION == 3) && (PERL_SUBVERSION < 22)))
+#if (PERL_BCDVERSION < 0x5003022)
start_subparse(),
-#elif ((PERL_VERSION == 3) && (PERL_SUBVERSION == 22))
+#elif (PERL_BCDVERSION == 0x5003022)
start_subparse(0),
#else /* 5.003_23 onwards */
start_subparse(FALSE, 0),
#endif
- newSVOP(OP_CONST, 0, newSVpv(name,0)),
+ newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)),
newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */
newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
);
@@ -3917,7 +4274,7 @@ DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv)
* case below uses it to declare the data as static. */
#define START_MY_CXT
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 68)))
+#if (PERL_BCDVERSION < 0x5004068)
/* Fetches the SV that keeps the per-interpreter data. */
#define dMY_CXT_SV \
SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
@@ -4012,7 +4369,8 @@ DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv)
#ifndef NVef
# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
- defined(PERL_PRIfldbl) /* Not very likely, but let's try anyway. */
+ defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000)
+ /* Not very likely, but let's try anyway. */
# define NVef PERL_PRIeldbl
# define NVff PERL_PRIfldbl
# define NVgf PERL_PRIgldbl
@@ -4094,42 +4452,60 @@ DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv)
#ifndef SvREFCNT_inc_simple_void_NN
# define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
#endif
+#ifndef newSVpvn
+# define newSVpvn(data,len) ((data) \
+ ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
+ : newSV(0))
+#endif
+#ifndef newSVpvn_utf8
+# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
+#endif
+#ifndef SVf_UTF8
+# define SVf_UTF8 0
+#endif
-#ifndef SvPV_nolen
+#ifndef newSVpvn_flags
-#if defined(NEED_sv_2pv_nolen)
-static char * DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv);
+#if defined(NEED_newSVpvn_flags)
+static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char * s, STRLEN len, U32 flags);
static
#else
-extern char * DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv);
+extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char * s, STRLEN len, U32 flags);
#endif
-#ifdef sv_2pv_nolen
-# undef sv_2pv_nolen
+#ifdef newSVpvn_flags
+# undef newSVpvn_flags
#endif
-#define sv_2pv_nolen(a) DPPP_(my_sv_2pv_nolen)(aTHX_ a)
-#define Perl_sv_2pv_nolen DPPP_(my_sv_2pv_nolen)
+#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c)
+#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags)
-#if defined(NEED_sv_2pv_nolen) || defined(NEED_sv_2pv_nolen_GLOBAL)
+#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL)
-char *
-DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv)
+SV *
+DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags)
{
- STRLEN n_a;
- return sv_2pv(sv, &n_a);
+ SV *sv = newSVpvn(s, len);
+ SvFLAGS(sv) |= (flags & SVf_UTF8);
+ return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
}
#endif
-/* Hint: sv_2pv_nolen
- * Use the SvPV_nolen() macro instead of sv_2pv_nolen().
- */
+#endif
-/* SvPV_nolen depends on sv_2pv_nolen */
-#define SvPV_nolen(sv) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? SvPVX(sv) : sv_2pv_nolen(sv))
+/* Backwards compatibility stuff... :-( */
+#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen)
+# define NEED_sv_2pv_flags
+#endif
+#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL)
+# define NEED_sv_2pv_flags_GLOBAL
+#endif
+/* Hint: sv_2pv_nolen
+ * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen().
+ */
+#ifndef sv_2pv_nolen
+# define sv_2pv_nolen(sv) SvPV_nolen(sv)
#endif
#ifdef SvPVbyte
@@ -4139,13 +4515,13 @@ DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv)
* borrowed from perl-5.7.3.
*/
-#if ((PERL_VERSION < 7) || ((PERL_VERSION == 7) && (PERL_SUBVERSION < 0)))
+#if (PERL_BCDVERSION < 0x5007000)
#if defined(NEED_sv_2pvbyte)
-static char * DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp);
+static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV * sv, STRLEN * lp);
static
#else
-extern char * DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp);
+extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV * sv, STRLEN * lp);
#endif
#ifdef sv_2pvbyte
@@ -4157,7 +4533,7 @@ extern char * DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp);
#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL)
char *
-DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
+DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp)
{
sv_utf8_downgrade(sv,0);
return SvPV(sv,*lp);
@@ -4171,7 +4547,6 @@ DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
#undef SvPVbyte
-/* SvPVbyte depends on sv_2pvbyte */
#define SvPVbyte(sv, lp) \
((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \
? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp))
@@ -4184,24 +4559,201 @@ DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
# define sv_2pvbyte sv_2pv
#endif
-
-/* sv_2pvbyte_nolen depends on sv_2pv_nolen */
#ifndef sv_2pvbyte_nolen
-# define sv_2pvbyte_nolen sv_2pv_nolen
+# define sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv)
#endif
/* Hint: sv_pvn
* Always use the SvPV() macro instead of sv_pvn().
*/
-#ifndef sv_pvn
-# define sv_pvn(sv, len) SvPV(sv, len)
-#endif
/* Hint: sv_pvn_force
* Always use the SvPV_force() macro instead of sv_pvn_force().
*/
-#ifndef sv_pvn_force
-# define sv_pvn_force(sv, len) SvPV_force(sv, len)
+
+/* If these are undefined, they're not handled by the core anyway */
+#ifndef SV_IMMEDIATE_UNREF
+# define SV_IMMEDIATE_UNREF 0
+#endif
+
+#ifndef SV_GMAGIC
+# define SV_GMAGIC 0
+#endif
+
+#ifndef SV_COW_DROP_PV
+# define SV_COW_DROP_PV 0
+#endif
+
+#ifndef SV_UTF8_NO_ENCODING
+# define SV_UTF8_NO_ENCODING 0
+#endif
+
+#ifndef SV_NOSTEAL
+# define SV_NOSTEAL 0
+#endif
+
+#ifndef SV_CONST_RETURN
+# define SV_CONST_RETURN 0
+#endif
+
+#ifndef SV_MUTABLE_RETURN
+# define SV_MUTABLE_RETURN 0
+#endif
+
+#ifndef SV_SMAGIC
+# define SV_SMAGIC 0
+#endif
+
+#ifndef SV_HAS_TRAILING_NUL
+# define SV_HAS_TRAILING_NUL 0
+#endif
+
+#ifndef SV_COW_SHARED_HASH_KEYS
+# define SV_COW_SHARED_HASH_KEYS 0
+#endif
+
+#if (PERL_BCDVERSION < 0x5007002)
+
+#if defined(NEED_sv_2pv_flags)
+static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags);
+static
+#else
+extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags);
+#endif
+
+#ifdef sv_2pv_flags
+# undef sv_2pv_flags
+#endif
+#define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c)
+#define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags)
+
+#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL)
+
+char *
+DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags)
+{
+ STRLEN n_a = (STRLEN) flags;
+ return sv_2pv(sv, lp ? lp : &n_a);
+}
+
+#endif
+
+#if defined(NEED_sv_pvn_force_flags)
+static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags);
+static
+#else
+extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags);
+#endif
+
+#ifdef sv_pvn_force_flags
+# undef sv_pvn_force_flags
+#endif
+#define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c)
+#define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags)
+
+#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL)
+
+char *
+DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags)
+{
+ STRLEN n_a = (STRLEN) flags;
+ return sv_pvn_force(sv, lp ? lp : &n_a);
+}
+
+#endif
+
+#endif
+
+#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) )
+# define DPPP_SVPV_NOLEN_LP_ARG &PL_na
+#else
+# define DPPP_SVPV_NOLEN_LP_ARG 0
+#endif
+#ifndef SvPV_const
+# define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_mutable
+# define SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC)
+#endif
+#ifndef SvPV_flags
+# define SvPV_flags(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
+#endif
+#ifndef SvPV_flags_const
+# define SvPV_flags_const(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \
+ (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN))
+#endif
+#ifndef SvPV_flags_const_nolen
+# define SvPV_flags_const_nolen(sv, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX_const(sv) : \
+ (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN))
+#endif
+#ifndef SvPV_flags_mutable
+# define SvPV_flags_mutable(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \
+ sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
+#endif
+#ifndef SvPV_force
+# define SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_force_nolen
+# define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_force_mutable
+# define SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC)
+#endif
+
+#ifndef SvPV_force_nomg
+# define SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0)
+#endif
+
+#ifndef SvPV_force_nomg_nolen
+# define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0)
+#endif
+#ifndef SvPV_force_flags
+# define SvPV_force_flags(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags))
+#endif
+#ifndef SvPV_force_flags_nolen
+# define SvPV_force_flags_nolen(sv, flags) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
+ ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags))
+#endif
+#ifndef SvPV_force_flags_mutable
+# define SvPV_force_flags_mutable(sv, lp, flags) \
+ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
+ ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \
+ : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
+#endif
+#ifndef SvPV_nolen
+# define SvPV_nolen(sv) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC))
+#endif
+#ifndef SvPV_nolen_const
+# define SvPV_nolen_const(sv) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN))
+#endif
+#ifndef SvPV_nomg
+# define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0)
+#endif
+
+#ifndef SvPV_nomg_const
+# define SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0)
+#endif
+
+#ifndef SvPV_nomg_const_nolen
+# define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
#endif
#ifndef SvMAGIC_set
# define SvMAGIC_set(sv, val) \
@@ -4209,7 +4761,7 @@ DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
(((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
#endif
-#if ((PERL_VERSION < 9) || ((PERL_VERSION == 9) && (PERL_SUBVERSION < 3)))
+#if (PERL_BCDVERSION < 0x5009003)
#ifndef SvPVX_const
# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv)))
#endif
@@ -4244,7 +4796,7 @@ DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
(((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END
#endif
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 0)))
+#if (PERL_BCDVERSION < 0x5004000)
#ifndef SvUV_set
# define SvUV_set(sv, val) \
STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
@@ -4260,7 +4812,7 @@ DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp)
#endif
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(vnewSVpvf)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf)
#if defined(NEED_vnewSVpvf)
static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char * pat, va_list * args);
static
@@ -4287,18 +4839,15 @@ DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args)
#endif
#endif
-/* sv_vcatpvf depends on sv_vcatpvfn */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vcatpvf)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf)
# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
#endif
-/* sv_vsetpvf depends on sv_vsetpvfn */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vsetpvf)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf)
# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
#endif
-/* sv_catpvf_mg depends on sv_vcatpvfn, sv_catpvf_mg_nocontext */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_catpvf_mg)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg)
#if defined(NEED_sv_catpvf_mg)
static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * sv, const char * pat, ...);
static
@@ -4323,9 +4872,8 @@ DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...)
#endif
#endif
-/* sv_catpvf_mg_nocontext depends on sv_vcatpvfn */
#ifdef PERL_IMPLICIT_CONTEXT
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_catpvf_mg_nocontext)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext)
#if defined(NEED_sv_catpvf_mg_nocontext)
static void DPPP_(my_sv_catpvf_mg_nocontext)(SV * sv, const char * pat, ...);
static
@@ -4353,6 +4901,7 @@ DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...)
#endif
#endif
+/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */
#ifndef sv_catpvf_mg
# ifdef PERL_IMPLICIT_CONTEXT
# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
@@ -4361,8 +4910,7 @@ DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...)
# endif
#endif
-/* sv_vcatpvf_mg depends on sv_vcatpvfn */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vcatpvf_mg)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg)
# define sv_vcatpvf_mg(sv, pat, args) \
STMT_START { \
sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \
@@ -4370,8 +4918,7 @@ DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...)
} STMT_END
#endif
-/* sv_setpvf_mg depends on sv_vsetpvfn, sv_setpvf_mg_nocontext */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_setpvf_mg)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg)
#if defined(NEED_sv_setpvf_mg)
static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * sv, const char * pat, ...);
static
@@ -4396,9 +4943,8 @@ DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...)
#endif
#endif
-/* sv_setpvf_mg_nocontext depends on sv_vsetpvfn */
#ifdef PERL_IMPLICIT_CONTEXT
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_setpvf_mg_nocontext)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext)
#if defined(NEED_sv_setpvf_mg_nocontext)
static void DPPP_(my_sv_setpvf_mg_nocontext)(SV * sv, const char * pat, ...);
static
@@ -4426,6 +4972,7 @@ DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...)
#endif
#endif
+/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */
#ifndef sv_setpvf_mg
# ifdef PERL_IMPLICIT_CONTEXT
# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
@@ -4434,14 +4981,53 @@ DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...)
# endif
#endif
-/* sv_vsetpvf_mg depends on sv_vsetpvfn */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vsetpvf_mg)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg)
# define sv_vsetpvf_mg(sv, pat, args) \
STMT_START { \
sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \
SvSETMAGIC(sv); \
} STMT_END
#endif
+
+#ifndef newSVpvn_share
+
+#if defined(NEED_newSVpvn_share)
+static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash);
+static
+#else
+extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash);
+#endif
+
+#ifdef newSVpvn_share
+# undef newSVpvn_share
+#endif
+#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c)
+#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share)
+
+#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL)
+
+SV *
+DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash)
+{
+ SV *sv;
+ if (len < 0)
+ len = -len;
+ if (!hash)
+ PERL_HASH(hash, (char*) src, len);
+ sv = newSVpvn((char *) src, len);
+ sv_upgrade(sv, SVt_PVIV);
+ SvIVX(sv) = hash;
+ SvREADONLY_on(sv);
+ SvPOK_on(sv);
+ return sv;
+}
+
+#endif
+
+#endif
+#ifndef SvSHARED_HASH
+# define SvSHARED_HASH(sv) (0 + SvUVX(sv))
+#endif
#ifndef WARN_ALL
# define WARN_ALL 0
#endif
@@ -4641,8 +5227,7 @@ DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...)
# endif
#endif
-/* warner depends on vnewSVpvf */
-#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(warner)
+#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner)
#if defined(NEED_warner)
static void DPPP_(my_warner)(U32 err, const char *pat, ...);
static
@@ -4671,7 +5256,6 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
#define warner Perl_warner
-/* Perl_warner_nocontext depends on warner */
#define Perl_warner_nocontext Perl_warner
#endif
@@ -4688,6 +5272,10 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
# define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1)
#endif
+#ifndef newSVpvs_flags
+# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags)
+#endif
+
#ifndef sv_catpvs
# define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1)
#endif
@@ -4863,14 +5451,6 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
#endif
/* That's the best we can do... */
-#ifndef SvPV_force_nomg
-# define SvPV_force_nomg SvPV_force
-#endif
-
-#ifndef SvPV_nomg
-# define SvPV_nomg SvPV
-#endif
-
#ifndef sv_catpvn_nomg
# define sv_catpvn_nomg sv_catpvn
#endif
@@ -4988,6 +5568,47 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
# define SvVSTRING_mg(sv) (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring) : NULL)
#endif
+/* Hint: sv_magic_portable
+ * This is a compatibility function that is only available with
+ * Devel::PPPort. It is NOT in the perl core.
+ * Its purpose is to mimic the 5.8.0 behaviour of sv_magic() when
+ * it is being passed a name pointer with namlen == 0. In that
+ * case, perl 5.8.0 and later store the pointer, not a copy of it.
+ * The compatibility can be provided back to perl 5.004. With
+ * earlier versions, the code will not compile.
+ */
+
+#if (PERL_BCDVERSION < 0x5004000)
+
+ /* code that uses sv_magic_portable will not compile */
+
+#elif (PERL_BCDVERSION < 0x5008000)
+
+# define sv_magic_portable(sv, obj, how, name, namlen) \
+ STMT_START { \
+ SV *SvMp_sv = (sv); \
+ char *SvMp_name = (char *) (name); \
+ I32 SvMp_namlen = (namlen); \
+ if (SvMp_name && SvMp_namlen == 0) \
+ { \
+ MAGIC *mg; \
+ sv_magic(SvMp_sv, obj, how, 0, 0); \
+ mg = SvMAGIC(SvMp_sv); \
+ mg->mg_len = -42; /* XXX: this is the tricky part */ \
+ mg->mg_ptr = SvMp_name; \
+ } \
+ else \
+ { \
+ sv_magic(SvMp_sv, obj, how, SvMp_name, SvMp_namlen); \
+ } \
+ } STMT_END
+
+#else
+
+# define sv_magic_portable(a, b, c, d, e) sv_magic(a, b, c, d, e)
+
+#endif
+
#ifdef USE_ITHREADS
#ifndef CopFILE
# define CopFILE(c) ((c)->cop_file)
@@ -5115,8 +5736,6 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
#ifndef IS_NUMBER_NAN
# define IS_NUMBER_NAN 0x20
#endif
-
-/* GROK_NUMERIC_RADIX depends on grok_numeric_radix */
#ifndef GROK_NUMERIC_RADIX
# define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send)
#endif
@@ -5192,8 +5811,6 @@ DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send)
#endif
#endif
-/* grok_number depends on grok_numeric_radix */
-
#ifndef grok_number
#if defined(NEED_grok_number)
static int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep);
@@ -5410,10 +6027,10 @@ DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep)
#ifndef grok_bin
#if defined(NEED_grok_bin)
-static UV DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result);
+static UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
static
#else
-extern UV DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result);
+extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
#endif
#ifdef grok_bin
@@ -5424,7 +6041,7 @@ extern UV DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *r
#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL)
UV
-DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result)
+DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
{
const char *s = start;
STRLEN len = *len_p;
@@ -5512,10 +6129,10 @@ DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result)
#ifndef grok_hex
#if defined(NEED_grok_hex)
-static UV DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result);
+static UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
static
#else
-extern UV DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result);
+extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
#endif
#ifdef grok_hex
@@ -5526,7 +6143,7 @@ extern UV DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *r
#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL)
UV
-DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result)
+DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
{
const char *s = start;
STRLEN len = *len_p;
@@ -5614,10 +6231,10 @@ DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result)
#ifndef grok_oct
#if defined(NEED_grok_oct)
-static UV DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result);
+static UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
static
#else
-extern UV DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result);
+extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
#endif
#ifdef grok_oct
@@ -5628,7 +6245,7 @@ extern UV DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *r
#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL)
UV
-DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result)
+DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
{
const char *s = start;
STRLEN len = *len_p;
diff --git a/t/2-full.t b/t/2-full.t
index 4c82b37..dfd78e8 100644
--- a/t/2-full.t
+++ b/t/2-full.t
@@ -1,44 +1,62 @@
#!/usr/bin/perl
use strict;
-use Test::More tests => 8484;
+use Test::More tests => 10201;
use Lingua::Stem::Snowball qw( stem );
use File::Spec;
-my @languages = qw( en da de es fi fr it nl no pt ru sv );
-my $stemmer = Lingua::Stem::Snowball->new();
-
-for my $iso (@languages) {
+my %languages = (
+ en => 'ISO-8859-1',
+ da => 'ISO-8859-1',
+ de => 'ISO-8859-1',
+ es => 'ISO-8859-1',
+ fi => 'ISO-8859-1',
+ fr => 'ISO-8859-1',
+ hu => 'ISO-8859-1',
+ it => 'ISO-8859-1',
+ nl => 'ISO-8859-1',
+ no => 'ISO-8859-1',
+ pt => 'ISO-8859-1',
+ ro => 'ISO-8859-2',
+ ru => 'KOI8-R',
+ sv => 'ISO-8859-1',
+ tr => undef,
+);
+my $stemmer = Lingua::Stem::Snowball->new();
+
+while ( my ( $iso, $encoding ) = each %languages ) {
my ( @before, @after );
- my $encoding;
- # set language
+ # Set language.
$stemmer->lang($iso);
- # test ISO-8859-1 / KOI8-R vocab
- $encoding = $iso eq 'ru' ? 'KOI8-R' : 'ISO-8859-1';
- my $default_enc_voc_path
- = File::Spec->catfile( 't', 'test_voc', "$iso.default_enc" );
- open( my $default_enc_voc_fh, '<', $default_enc_voc_path )
- or die "Couldn't open file '$default_enc_voc_path' for reading: $!";
- $stemmer->encoding($encoding);
- while (<$default_enc_voc_fh>) {
- chomp;
- my ( $raw, $expected ) = split;
- push @before, $raw;
- push @after, $expected;
- test_singles( $raw, $expected, $iso, $encoding );
+ # Test 8-bit vocab.
+ if ($encoding) {
+ my $default_enc_voc_path
+ = File::Spec->catfile( 't', 'test_voc', "$iso.default_enc" );
+ open( my $default_enc_voc_fh, '<', $default_enc_voc_path )
+ or die "Can't open '$default_enc_voc_path' for reading: $!";
+ $stemmer->encoding($encoding);
+ while (<$default_enc_voc_fh>) {
+ chomp;
+ my ( $raw, $expected ) = split;
+ push @before, $raw;
+ push @after, $expected;
+ test_singles( $raw, $expected, $iso, $encoding );
+ }
+ test_arrays( \@before, \@after, $iso, $encoding );
}
- test_arrays( \@before, \@after, $iso, $encoding );
- # test UTF-8 vocab
+ # Test UTF-8 vocab.
$encoding = 'UTF-8';
@before = ();
@after = ();
my $utf8_voc_path = File::Spec->catfile( 't', 'test_voc', "$iso.utf8" );
- open( my $utf8_voc_fh, '<:utf8', $utf8_voc_path )
+ my $open_mode = $] >= 5.8 ? "<:utf8" : "<";
+ open( my $utf8_voc_fh, $open_mode, $utf8_voc_path )
or die "Couldn't open file '$utf8_voc_path' for reading: $!";
$stemmer->encoding($encoding);
+
while (<$utf8_voc_fh>) {
chomp;
my ( $raw, $expected ) = split;
@@ -88,4 +106,3 @@ sub test_arrays {
$stemmer->stem_in_place( \@got );
is_deeply( \@got, $expected, "$iso \$s->stem_in_place(\@raw)" );
}
-
diff --git a/t/99-TestPodCoverage.t b/t/99-TestPodCoverage.t
index e5415c2..da4624b 100644
--- a/t/99-TestPodCoverage.t
+++ b/t/99-TestPodCoverage.t
@@ -3,4 +3,6 @@
use Test::More;
plan skip_all => "Test::Pod::Coverage required for testing POD"
unless eval "use Test::Pod::Coverage; 1";
-all_pod_coverage_ok();
+plan tests => 1;
+my $trustme = { trustme => [qr/^dl_load_flags$/] };
+pod_coverage_ok( "Lingua::Stem::Snowball", $trustme );
diff --git a/t/test_voc/hu.default_enc b/t/test_voc/hu.default_enc
new file mode 100644
index 0000000..f3e6329
--- /dev/null
+++ b/t/test_voc/hu.default_enc
@@ -0,0 +1,100 @@
+megtudhatok megtudhat
+be�lt�nk be�lt
+k�sz�l�kgy�rt�kra k�sz�l�kgy�rt�
+becs�sztatta becs�sztatt
+abszurdit�s�n abszurdit�s
+kamatt�mogat�st kamatt�mogat�s
+apja ap
+kocsm�n kocsm
+munkav�llal�-szerz�t munkav�llal�-szerz�
+nagyvil�gba nagyvil�g
+meglep�en meglep�
+alaki al
+b�nas�gba b�nas�g
+bok�mban boka
+kir�lyhoz kir�ly
+megk�l�nb�ztet�seket megk�l�nb�ztet�s
+janu�rig janu�r
+keresettek keresett
+j�vedelemtermel� j�vedelemtermel�
+negyvenre negyven
+kormeghat�roz�sai kormeghat�roz�s
+makroelemz�i makroelemz�
+karambolj�t karambol
+m�k�d�sben m�k�d�s
+lec�vekelni lec�vekeln
+nagys�gban nagys�g
+kiscsirk�ket kiscsirke
+k�rbeutazza k�rbeutazz
+belesodorva belesodorv
+katal�gusv�s�rl�s katal�gusv�s�rl�s
+m�lyebbr�l m�lyebb
+man�kenek man
+bev�s�rl�s bev�s�rl�s
+konstrukci�ja konstrukci�
+kamat kam
+lobog�t lobog�
+bajnoks�gokon bajnoks�g
+kecsegtet� kecsegtet�
+m�sodpercre m�sodperc
+k�vir�zsa k�vir�zs
+m�lym�vel�s� m�lym�vel�s�
+lehajthatom lehajthat
+lefedett lefedet
+l�pteivel l�pt
+koszt�mbe koszt�
+levelezik levelez
+magasba magas
+kamatleolvad�sra kamatleolvad�s
+k�rnyezet�hez k�rnyezet
+k�szp�nzt k�szp�nz
+k�tetk�nt k�tet
+percd�j percd�j
+k�ttethet k�tteth
+m�lattuk m�latt
+b�rmire b�rm
+b�r�s�ggal b�r�s�g
+belv�zelvezet� belv�zelvezet�
+beled�gleni beled�glen
+belesz�d�lt belesz�d�l
+kapaszkodtam kapaszkodt
+b�rbead�s b�rbead�s
+agyamban agy
+megnyugtat megnyugt
+meg�rdemlik meg�rdeml
+j�v�mben j�v�
+adatv�delemr�l adatv�del
+beszedt�k beszedte
+bamb�n bamb
+l�bas l�bas
+j�v�k�p�nek j�v�k�p
+k�sz�ti k�sz�t
+kondi kond
+bevon�s�t bevon�s
+ki�lt� ki�lta
+kil�t� kil�t�
+lep�d�tt lep�d�t
+nagyszab�s� nagyszab�s�
+kiejthet kiejth
+besz�lgethetnek besz�lgethet
+kiker�lik kiker�l
+megalkot�s�t�l megalkot�s
+m�v�szeket m�v�sz
+l�tottakat l�tott
+biztos�t�k biztos�t�
+angolb�l angol
+kib�v�tett kib�v�tet
+b�cs�zni b�cs�zn
+l�togatni l�togatn
+lov�sz�rt lov�sz
+b�cs�level�t b�cs�level
+arisztokrat�nak arisztokrat
+k�pmutat� k�pmutat�
+megn�vekedett megn�vekedet
+k�h�gtem k�h�gt
+len�z len�z
+k�s�ret�ben k�s�ret
+kart�vols�gnyira kart�vols�gny
+bekapcsol�dtunk bekapcsol�dt
+megjegyz�s�re megjegyz�s
+megvetnek megvet
diff --git a/t/test_voc/hu.utf8 b/t/test_voc/hu.utf8
new file mode 100644
index 0000000..5932cd2
--- /dev/null
+++ b/t/test_voc/hu.utf8
@@ -0,0 +1,100 @@
+megtudhatok megtudhat
+beültünk beült
+készülékgyártókra készülékgyártó
+becsúsztatta becsúsztatt
+abszurditásán abszurditás
+kamattámogatást kamattámogatás
+apja ap
+kocsmán kocsm
+munkavállaló-szerzõt munkavállaló-szerzõ
+nagyvilágba nagyvilág
+meglepõen meglepõ
+alaki al
+bénaságba bénaság
+bokámban boka
+királyhoz király
+megkülönböztetéseket megkülönböztetés
+januárig január
+keresettek keresett
+jövedelemtermelõ jövedelemtermelõ
+negyvenre negyven
+kormeghatározásai kormeghatározás
+makroelemzõi makroelemzõ
+karambolját karambol
+mûködésben mûködés
+lecövekelni lecövekeln
+nagyságban nagyság
+kiscsirkéket kiscsirke
+körbeutazza körbeutazz
+belesodorva belesodorv
+katalógusvásárlás katalógusvásárlás
+mélyebbrõl mélyebb
+manökenek man
+bevásárlás bevásárlás
+konstrukciója konstrukció
+kamat kam
+lobogót lobogó
+bajnokságokon bajnokság
+kecsegtetõ kecsegtetõ
+másodpercre másodperc
+kövirózsa kövirózs
+mélymûvelésû mélymûvelésû
+lehajthatom lehajthat
+lefedett lefedet
+lépteivel lépt
+kosztümbe kosztü
+levelezik levelez
+magasba magas
+kamatleolvadásra kamatleolvadás
+környezetéhez környezet
+készpénzt készpénz
+kötetként kötet
+percdíj percdíj
+köttethet kötteth
+múlattuk múlatt
+bármire bárm
+bírósággal bíróság
+belvízelvezetõ belvízelvezetõ
+beledögleni beledöglen
+beleszédült beleszédül
+kapaszkodtam kapaszkodt
+bérbeadás bérbeadás
+agyamban agy
+megnyugtat megnyugt
+megérdemlik megérdeml
+jövõmben jövõ
+adatvédelemrõl adatvédel
+beszedték beszedte
+bambán bamb
+lábas lábas
+jövõképének jövõkép
+készíti készít
+kondi kond
+bevonását bevonás
+kiáltá kiálta
+kilátó kilátó
+lepõdött lepõdöt
+nagyszabású nagyszabású
+kiejthet kiejth
+beszélgethetnek beszélgethet
+kikerülik kikerül
+megalkotásától megalkotás
+mûvészeket mûvész
+látottakat látott
+biztosítók biztosító
+angolból angol
+kibõvített kibõvítet
+búcsúzni búcsúzn
+látogatni látogatn
+lovászért lovász
+búcsúlevelét búcsúlevel
+arisztokratának arisztokrat
+képmutató képmutató
+megnövekedett megnövekedet
+köhögtem köhögt
+lenéz lenéz
+kíséretében kíséret
+kartávolságnyira kartávolságny
+bekapcsolódtunk bekapcsolódt
+megjegyzésére megjegyzés
+megvetnek megvet
diff --git a/t/test_voc/ro.default_enc b/t/test_voc/ro.default_enc
new file mode 100644
index 0000000..da54890
--- /dev/null
+++ b/t/test_voc/ro.default_enc
@@ -0,0 +1,100 @@
+�ntrerup�nd �ntrerup
+tr�snit tr�snit
+ideali�ti idealist
+frumoas� frumoas
+gr�ul gr�ul
+ocolesc ocol
+acuz� acuz
+�ndep�rteaz� �ndep�rt
+ie�iri ie�ir
+por�iune por�iun
+r�sturna�i r�sturn
+moara moar
+egalitare egalit
+insist insist
+pra�tie pra�t
+cranii cran
+nedumerire nedumer
+b�tute b�tut
+recunoa�tem recunoa�t
+�n�elege�i �n�eleg
+crea�ia crea�
+punte punt
+amintesc amint
+must��i must��
+furia furi
+trommelfeuer trommelfeuer
+rareori rareor
+explicativ� explic
+agita�ie agit
+alerg alerg
+fortifica�iile fortific
+veghe vegh
+admirabil admir
+fabrice fabric
+s�rb�toreasc� s�rb�tor
+sublinia sublin
+muncind munc
+s�r�c�cioas� s�r�c�c
+ocupa ocup
+constituiri constituir
+audiat audiat
+actualitatea actual
+profetizat profetiz
+caraghiosul caragh
+cicatricea cicatr
+segmentului segment
+rahitismul rahitist
+l�rge�te l�rg
+barajului baraj
+p�cali�i p�cal
+gustul gust
+recenzeze recenz
+abera�ii aber
+muncile munc
+�nv��a �nv��
+edi�ii edi�
+relativit��ii relat
+imperativul imper
+renovat� renov
+emo�ionat emo�ion
+exploat�rilor exploat�r
+nedreptatea nedrept
+incarnare incarn
+suprapunere suprapun
+argumentului argument
+justa just
+oaste oast
+leg�m leg
+aspira�iilor aspir
+num�rul num�r
+schimbat� schimbat
+cabinet cabinet
+doamnelor doamn
+�nfiora�i �nfior
+feminismului feminist
+zonia zoni
+puritan� puritan
+�njur�turi �njur�tur
+lovirii lovir
+inventeaz� invent
+nefericit neferic
+modelele model
+�nfundaser� �nfund
+moderni�tilor modernist
+fosforescent� fosforescent
+paralizat paraliz
+nesigure nesigur
+�ntrupare �ntrup
+nor nor
+coji�i coj
+�ablonul �ablon
+melancolii melancol
+v�leni v�len
+sleit sleit
+contorizarea contoriz
+nemul�umire nemul�um
+condamnabil� condamn
+floret� floret
+indigna�i indign
+practicat� practic
diff --git a/t/test_voc/ro.utf8 b/t/test_voc/ro.utf8
new file mode 100644
index 0000000..c65e38f
--- /dev/null
+++ b/t/test_voc/ro.utf8
@@ -0,0 +1,100 @@
+întrerupând întrerup
+trăsnit trăsnit
+idealişti idealist
+frumoasă frumoas
+grâul grâul
+ocolesc ocol
+acuză acuz
+îndepărtează îndepărt
+ieşiri ieşir
+porţiune porţiun
+răsturnaţi răsturn
+moara moar
+egalitare egalit
+insist insist
+praştie praşt
+cranii cran
+nedumerire nedumer
+bătute bătut
+recunoaştem recunoaşt
+înţelegeţi înţeleg
+creaţia creaţ
+punte punt
+amintesc amint
+mustăţi mustăţ
+furia furi
+trommelfeuer trommelfeuer
+rareori rareor
+explicativă explic
+agitaţie agit
+alerg alerg
+fortificaţiile fortific
+veghe vegh
+admirabil admir
+fabrice fabric
+sărbătorească sărbător
+sublinia sublin
+muncind munc
+sărăcăcioasă sărăcăc
+ocupa ocup
+constituiri constituir
+audiat audiat
+actualitatea actual
+profetizat profetiz
+caraghiosul caragh
+cicatricea cicatr
+segmentului segment
+rahitismul rahitist
+lărgeşte lărg
+barajului baraj
+păcaliţi păcal
+gustul gust
+recenzeze recenz
+aberaţii aber
+muncile munc
+învăţa învăţ
+ediţii ediţ
+relativităţii relat
+imperativul imper
+renovată renov
+emoţionat emoţion
+exploatărilor exploatăr
+nedreptatea nedrept
+incarnare incarn
+suprapunere suprapun
+argumentului argument
+justa just
+oaste oast
+legăm leg
+aspiraţiilor aspir
+numărul număr
+schimbată schimbat
+cabinet cabinet
+doamnelor doamn
+înfioraţi înfior
+feminismului feminist
+zonia zoni
+puritană puritan
+înjurături înjurătur
+lovirii lovir
+inventează invent
+nefericit neferic
+modelele model
+înfundaseră înfund
+moderniştilor modernist
+fosforescentă fosforescent
+paralizat paraliz
+nesigure nesigur
+întrupare întrup
+nor nor
+cojiţi coj
+şablonul şablon
+melancolii melancol
+văleni vălen
+sleit sleit
+contorizarea contoriz
+nemulţumire nemulţum
+condamnabilă condamn
+floretă floret
+indignaţi indign
+practicată practic
diff --git a/t/test_voc/tr.utf8 b/t/test_voc/tr.utf8
new file mode 100644
index 0000000..36fe4eb
--- /dev/null
+++ b/t/test_voc/tr.utf8
@@ -0,0 +1,100 @@
+masallarının masal
+değilken değil
+formaları forma
+kalkışılsa kalkışıl
+kayıtlar kayıt
+şeflik şeflik
+seçtim seç
+girerek girerek
+bölgesini bölge
+bando bando
+aydınlatmaya aydınlatma
+romina rom
+durmuþ durmuþ
+fıfa'ya fıfa'ya
+akım ak
+görevınde görev
+projesi'nde projesi'n
+kesimlerin kes
+nitelikte nitelik
+pazarlarına pazar
+enstitüsü'nde enstitüsü'n
+dÿnyadaki dÿnya
+mercilere merci
+yaþadýnýz yaþadýnýz
+getirilecek getirilecek
+spektrumun spektr
+açıklarız açık
+shçek'i shçek'i
+s s
+camiası'na camiası'na
+konulması konulmas
+mitolojisinde mitoloji
+partıden partıde
+derecesine derece
+metafiziği metafizik
+kalmaz kalmaz
+geçilmez geçilmez
+uyarıya' uyarıya'
+istihdamıyla istihdam
+başlatmayı başlatma
+bağimsizdir bağimsiz
+sahipseniz sahip
+kazanova kazanov
+akşam akşa
+kıyasladığım kıyasladık
+çevremizdeki çevre
+aklınızı akl
+kalemle kale
+platformların platform
+soluma sol
+gösteriyor' gösteriyor'
+pro pro
+vitesli vitesli
+döktüğü döktük
+laser laser
+pazardadır pazar
+donanması'na donanması'na
+sekreterlik sekreterlik
+aktivitedir aktivi
+uyarısını uyarı
+sözcülüğünü sözcülük
+torunlarınızla torun
+olmamasıdır olmamas
+büronuz büro
+dejenere dejener
+katılacağı katılacak
+güvenlikten güvenlik
+ılgılensenız ılgıle
+şesu'yu şesu'yu
+sasasorunun sasasor
+sahtecilere sahteci
+kullanarak kullanarak
+kurulların kurul
+downforce downforce
+kaymakamlýklar kaymakamlýk
+tarzından tarz
+stajlarının staj
+tüpraş'a tüpraş'a
+international'a international'a
+finlands finlands
+tekvandocular tekvandocu
+ptt'den ptt'den
+adadığı adadık
+evlenip evlenip
+mürüvvetini mürüvvet
+yılmaz'la yılmaz'la
+ormani'na ormani'na
+çizimler çizim
+snipes snipes
+þarký þarký
+zihnin zihn
+göcü göç
+abant'a abant'a
+bulunduğun bulunduk
+katırı katır
+chp'siz chp'siz
+rotalarını rota
+bolca bol
+festivali'ne festivali'ne
+teşkilatlarımızın teşkilat
diff --git a/typemap b/typemap
new file mode 100644
index 0000000..9486533
--- /dev/null
+++ b/typemap
@@ -0,0 +1,23 @@
+AV * T_AVREF
+HV * T_HVREF
+
+#############################################################################
+INPUT
+T_AVREF
+ if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)
+ $var = (AV*)SvRV($arg);
+ else
+ Perl_croak(aTHX_ \"$var is not an array reference\")
+T_HVREF
+ if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV)
+ $var = (HV*)SvRV($arg);
+ else
+ Perl_croak(aTHX_ \"$var is not a hash reference\")
+
+#############################################################################
+OUTPUT
+T_AVREF
+ $arg = newRV((SV*)$var);
+T_HVREF
+ $arg = newRV((SV*)$var);
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/liblingua-stem-snowball-perl.git
More information about the Pkg-perl-cvs-commits
mailing list