Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
f82b853b
Commit
f82b853b
authored
Sep 15, 2005
by
Teodor Sigaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1 Update Snowball sources
2 Makefile fixes
parent
3b0453b2
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
2269 additions
and
2337 deletions
+2269
-2337
contrib/tsearch2/dict_snowball.c
contrib/tsearch2/dict_snowball.c
+4
-4
contrib/tsearch2/gendict/README.gendict
contrib/tsearch2/gendict/README.gendict
+6
-5
contrib/tsearch2/gendict/config.sh
contrib/tsearch2/gendict/config.sh
+10
-3
contrib/tsearch2/ispell/Makefile
contrib/tsearch2/ispell/Makefile
+12
-8
contrib/tsearch2/snowball/Makefile
contrib/tsearch2/snowball/Makefile
+13
-8
contrib/tsearch2/snowball/api.c
contrib/tsearch2/snowball/api.c
+54
-74
contrib/tsearch2/snowball/api.h
contrib/tsearch2/snowball/api.h
+10
-17
contrib/tsearch2/snowball/english_stem.c
contrib/tsearch2/snowball/english_stem.c
+1078
-1029
contrib/tsearch2/snowball/english_stem.h
contrib/tsearch2/snowball/english_stem.h
+12
-3
contrib/tsearch2/snowball/header.h
contrib/tsearch2/snowball/header.h
+38
-31
contrib/tsearch2/snowball/russian_stem.c
contrib/tsearch2/snowball/russian_stem.c
+633
-698
contrib/tsearch2/snowball/russian_stem.h
contrib/tsearch2/snowball/russian_stem.h
+12
-3
contrib/tsearch2/snowball/utilities.c
contrib/tsearch2/snowball/utilities.c
+374
-446
contrib/tsearch2/wordparser/Makefile
contrib/tsearch2/wordparser/Makefile
+13
-8
No files found.
contrib/tsearch2/dict_snowball.c
View file @
f82b853b
...
...
@@ -49,7 +49,7 @@ snb_en_init(PG_FUNCTION_ARGS)
PG_FREE_IF_COPY
(
in
,
0
);
}
d
->
z
=
english_create_env
();
d
->
z
=
english_
ISO_8859_1_
create_env
();
if
(
!
d
->
z
)
{
freestoplist
(
&
(
d
->
stoplist
));
...
...
@@ -57,7 +57,7 @@ snb_en_init(PG_FUNCTION_ARGS)
(
errcode
(
ERRCODE_OUT_OF_MEMORY
),
errmsg
(
"out of memory"
)));
}
d
->
stem
=
english_stem
;
d
->
stem
=
english_
ISO_8859_1_
stem
;
PG_RETURN_POINTER
(
d
);
}
...
...
@@ -83,7 +83,7 @@ snb_ru_init(PG_FUNCTION_ARGS)
PG_FREE_IF_COPY
(
in
,
0
);
}
d
->
z
=
russian_create_env
();
d
->
z
=
russian_
KOI8_R_
create_env
();
if
(
!
d
->
z
)
{
freestoplist
(
&
(
d
->
stoplist
));
...
...
@@ -91,7 +91,7 @@ snb_ru_init(PG_FUNCTION_ARGS)
(
errcode
(
ERRCODE_OUT_OF_MEMORY
),
errmsg
(
"out of memory"
)));
}
d
->
stem
=
russian_stem
;
d
->
stem
=
russian_
KOI8_R_
stem
;
PG_RETURN_POINTER
(
d
);
}
...
...
contrib/tsearch2/gendict/README.gendict
View file @
f82b853b
...
...
@@ -50,7 +50,7 @@ Example 1:
2. Create template files for Portuguese
./config.sh -n pt -s -p portuguese -v -C'Snowball stemmer for Portuguese'
./config.sh -n pt -s -p portuguese
_ISO_8859_1
-v -C'Snowball stemmer for Portuguese'
Note, that argument for -p option should be *the same* as name of stemming
function in stem.c (without _stem)
...
...
@@ -82,8 +82,9 @@ Example 1:
psql -d testdict -c "select * from pg_ts_dict where dict_name='pt';"
dict_name | dict_init | dict_initoption | dict_lexize | dict_comment
-----------+-----------+-----------------+-------------+---------------------------------
pt | 7177806 | | 7159330 | Snowball stemmer for Portuguese
-----------+--------------------+-----------------+---------------------------------------+---------------------------------
pt | dinit_pt(internal) | | snb_lexize(internal,internal,integer) | Snowball stemmer for Portuguese
(1 row)
...
...
contrib/tsearch2/gendict/config.sh
View file @
f82b853b
...
...
@@ -131,11 +131,18 @@ fi
if
[
${#
cfile
}
-ne
0
]
||
[
${#
hfile
}
-ne
0
]
;
then
[
$verbose
=
"yes"
]
&&
echo
-n
'Copy source and header files... '
if
[
${#
cfile
}
-ne
0
]
;
then
if
[
$stemmode
=
"yes"
]
;
then
for
cfn
in
$cfile
do
sed
s#../runtime/## <
$cfn
>
../../
$dir
/
$cfn
done
else
if
!
cp
$cfile
../../
$dir
;
then
echo
"Can
t cp all or one of files:
$cfile
"
echo
"Can'
t cp all or one of files:
$cfile
"
exit
1
fi
fi
fi
if
[
${#
hfile
}
-ne
0
]
;
then
if
!
cp
$hfile
../../
$dir
;
then
echo
"Cant cp all or one of files:
$hfile
"
...
...
contrib/tsearch2/ispell/Makefile
View file @
f82b853b
# $PostgreSQL: pgsql/contrib/tsearch2/ispell/Makefile,v 1.
6 2004/06/23 11:06:11
teodor Exp $
# $PostgreSQL: pgsql/contrib/tsearch2/ispell/Makefile,v 1.
7 2005/09/15 11:14:18
teodor Exp $
subdir
=
contrib/tsearch2/ispell
PG_CPPFLAGS
=
-I
$(srcdir)
/..
SUBOBJS
=
spell.o regis.o
EXTRA_CLEAN
=
SUBSYS.o
$(SUBOBJS)
ifdef
USE_PGXS
PGXS
=
$(
shell
pg_config
--pgxs
)
include
$(PGXS)
else
subdir
=
contrib/tsearch2
top_builddir
=
../../..
include
$(top_builddir)/src/Makefile.global
include
$(top_srcdir)/contrib/contrib-global.mk
endif
PG_CPPFLAGS
=
-I
$(srcdir)
/..
$(CPPFLAGS)
override
CFLAGS
+=
$(CFLAGS_SL)
SUBOBJS
=
spell.o regis.o
all
:
SUBSYS.o
SUBSYS.o
:
$(SUBOBJS)
$(LD)
$(LDREL)
$(LDOUT)
$@
$^
EXTRA_CLEAN
=
SUBSYS.o
$(SUBOBJS)
include
$(top_srcdir)/contrib/contrib-global.mk
contrib/tsearch2/snowball/Makefile
View file @
f82b853b
# $PostgreSQL: pgsql/contrib/tsearch2/snowball/Makefile,v 1.
5 2003/11/29 19:51:36 pgsql
Exp $
# $PostgreSQL: pgsql/contrib/tsearch2/snowball/Makefile,v 1.
6 2005/09/15 11:14:18 teodor
Exp $
subdir
=
contrib/tsearch2/snowball
PG_CPPFLAGS
=
-I
$(srcdir)
/..
SUBOBJS
=
english_stem.o api.o russian_stem.o utilities.o
EXTRA_CLEAN
=
SUBSYS.o
$(SUBOBJS)
ifdef
USE_PGXS
PGXS
=
$(
shell
pg_config
--pgxs
)
include
$(PGXS)
else
subdir
=
contrib/tsearch2
top_builddir
=
../../..
include
$(top_builddir)/src/Makefile.global
include
$(top_srcdir)/contrib/contrib-global.mk
endif
PG_CPPFLAGS
=
-I
$(srcdir)
/..
override
CFLAGS
+=
$(CFLAGS_SL)
SUBOBJS
=
english_stem.o api.o russian_stem.o utilities.o
all
:
SUBSYS.o
SUBSYS.o
:
$(SUBOBJS)
$(LD)
$(LDREL)
$(LDOUT)
$@
$^
EXTRA_CLEAN
=
SUBSYS.o
$(SUBOBJS)
include
$(top_srcdir)/contrib/contrib-global.mk
contrib/tsearch2/snowball/api.c
View file @
f82b853b
#include <stdlib.h>
#include <stdlib.h>
/* for calloc, free */
#include "header.h"
struct
SN_env
*
SN_create_env
(
int
S_size
,
int
I_size
,
int
B_size
)
extern
struct
SN_env
*
SN_create_env
(
int
S_size
,
int
I_size
,
int
B_size
)
{
struct
SN_env
*
z
=
(
struct
SN_env
*
)
calloc
(
1
,
sizeof
(
struct
SN_env
));
struct
SN_env
*
z2
=
z
;
if
(
!
z
)
return
z
;
struct
SN_env
*
z
=
(
struct
SN_env
*
)
calloc
(
1
,
sizeof
(
struct
SN_env
));
if
(
z
==
NULL
)
return
NULL
;
z
->
p
=
create_s
();
if
(
!
z
->
p
)
z
=
NULL
;
if
(
z
&&
S_size
)
{
if
((
z
->
S
=
(
symbol
*
*
)
calloc
(
S_size
,
sizeof
(
symbol
*
))))
if
(
z
->
p
==
NULL
)
goto
error
;
if
(
S_size
)
{
int
i
;
z
->
S
=
(
symbol
*
*
)
calloc
(
S_size
,
sizeof
(
symbol
*
));
if
(
z
->
S
==
NULL
)
goto
error
;
for
(
i
=
0
;
i
<
S_size
;
i
++
)
{
if
(
!
(
z
->
S
[
i
]
=
create_s
()))
{
z
=
NULL
;
break
;
}
z
->
S
[
i
]
=
create_s
();
if
(
z
->
S
[
i
]
==
NULL
)
goto
error
;
}
z2
->
S_size
=
i
;
}
else
z
=
NULL
;
z
->
S_size
=
S_size
;
}
if
(
z
&&
I_size
)
if
(
I_size
)
{
z
->
I
=
(
int
*
)
calloc
(
I_size
,
sizeof
(
int
));
if
(
z
->
I
)
if
(
z
->
I
==
NULL
)
goto
error
;
z
->
I_size
=
I_size
;
else
z
=
NULL
;
}
if
(
z
&&
B_size
)
if
(
B_size
)
{
z
->
B
=
(
symbol
*
)
calloc
(
B_size
,
sizeof
(
symbol
));
if
(
z
->
B
)
if
(
z
->
B
==
NULL
)
goto
error
;
z
->
B_size
=
B_size
;
else
z
=
NULL
;
}
if
(
!
z
)
SN_close_env
(
z2
);
return
z
;
error:
SN_close_env
(
z
);
return
NULL
;
}
void
SN_close_env
(
struct
SN_env
*
z
)
extern
void
SN_close_env
(
struct
SN_env
*
z
)
{
if
(
z
->
S
&&
z
->
S_size
)
{
if
(
z
==
NULL
)
return
;
if
(
z
->
S_size
)
{
int
i
;
for
(
i
=
0
;
i
<
z
->
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
);
if
(
z
->
p
)
lose_s
(
z
->
p
);
if
(
z
->
I_size
)
free
(
z
->
I
);
if
(
z
->
B_size
)
free
(
z
->
B
);
if
(
z
->
p
)
lose_s
(
z
->
p
);
free
(
z
);
}
void
SN_set_current
(
struct
SN_env
*
z
,
int
size
,
const
symbol
*
s
)
extern
int
SN_set_current
(
struct
SN_env
*
z
,
int
size
,
const
symbol
*
s
)
{
replace_s
(
z
,
0
,
z
->
l
,
size
,
s
);
int
err
=
replace_s
(
z
,
0
,
z
->
l
,
size
,
s
,
NULL
);
z
->
c
=
0
;
return
err
;
}
contrib/tsearch2/snowball/api.h
View file @
f82b853b
...
...
@@ -11,24 +11,17 @@ 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
;
symbol
**
S
;
int
*
I
;
symbol
*
B
;
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
;
symbol
*
*
S
;
int
*
I
;
symbol
*
B
;
};
extern
struct
SN_env
*
SN_create_env
(
int
S_size
,
int
I_size
,
int
B_size
);
extern
struct
SN_env
*
SN_create_env
(
int
S_size
,
int
I_size
,
int
B_size
);
extern
void
SN_close_env
(
struct
SN_env
*
z
);
extern
void
SN_set_current
(
struct
SN_env
*
z
,
int
size
,
const
symbol
*
s
);
extern
int
SN_set_current
(
struct
SN_env
*
z
,
int
size
,
const
symbol
*
s
);
contrib/tsearch2/snowball/english_stem.c
View file @
f82b853b
...
...
@@ -3,7 +3,7 @@
#include "header.h"
extern
int
english
_stem
(
struct
SN_env
*
z
);
extern
int
english_ISO_8859_1
_stem
(
struct
SN_env
*
z
);
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
);
...
...
@@ -20,371 +20,387 @@ 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
);
extern
struct
SN_env
*
english
_create_env
(
void
);
extern
void
english_close_env
(
struct
SN_env
*
z
);
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
[
5
]
=
{
'g'
,
'e'
,
'n'
,
'e'
,
'r'
};
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
[
1
]
=
static
struct
among
a_0
[
2
]
=
{
/* 0 */
{
5
,
s_0_0
,
-
1
,
-
1
,
0
}
/* 0 */
{
6
,
s_0_0
,
-
1
,
-
1
,
0
},
/* 1 */
{
5
,
s_0_1
,
-
1
,
-
1
,
0
}
};
static
symbol
s_1_0
[
3
]
=
{
'i'
,
'e'
,
'd'
};
static
symbol
s_1_1
[
1
]
=
{
's'
};
static
symbol
s_1_2
[
3
]
=
{
'i'
,
'e'
,
's'
};
static
symbol
s_1_3
[
4
]
=
{
's'
,
's'
,
'e'
,
's'
};
static
symbol
s_1_4
[
2
]
=
{
's'
,
's'
};
static
symbol
s_1_5
[
2
]
=
{
'u'
,
's'
};
static
symbol
s_1_0
[
1
]
=
{
'\''
};
static
symbol
s_1_1
[
3
]
=
{
'\''
,
's'
,
'\''
};
static
symbol
s_1_2
[
2
]
=
{
'\''
,
's'
};
static
struct
among
a_1
[
6
]
=
static
struct
among
a_1
[
3
]
=
{
/* 0 */
{
3
,
s_1_0
,
-
1
,
2
,
0
},
/* 1 */
{
1
,
s_1_1
,
-
1
,
3
,
0
},
/* 2 */
{
3
,
s_1_2
,
1
,
2
,
0
},
/* 3 */
{
4
,
s_1_3
,
1
,
1
,
0
},
/* 4 */
{
2
,
s_1_4
,
1
,
-
1
,
0
},
/* 5 */
{
2
,
s_1_5
,
1
,
-
1
,
0
}
/* 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_1
[
2
]
=
{
'b'
,
'b'
};
static
symbol
s_2_2
[
2
]
=
{
'd'
,
'd'
};
static
symbol
s_2_3
[
2
]
=
{
'f'
,
'f'
};
static
symbol
s_2_4
[
2
]
=
{
'g'
,
'g'
};
static
symbol
s_2_5
[
2
]
=
{
'b'
,
'l'
};
static
symbol
s_2_6
[
2
]
=
{
'm'
,
'm'
};
static
symbol
s_2_7
[
2
]
=
{
'n'
,
'n'
};
static
symbol
s_2_8
[
2
]
=
{
'p'
,
'p'
};
static
symbol
s_2_9
[
2
]
=
{
'r'
,
'r'
};
static
symbol
s_2_10
[
2
]
=
{
'a'
,
't'
};
static
symbol
s_2_11
[
2
]
=
{
't'
,
't'
};
static
symbol
s_2_12
[
2
]
=
{
'i'
,
'z'
};
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
struct
among
a_2
[
13
]
=
static
struct
among
a_2
[
6
]
=
{
/* 0 */
{
0
,
0
,
-
1
,
3
,
0
},
/* 1 */
{
2
,
s_2_1
,
0
,
2
,
0
},
/* 2 */
{
2
,
s_2_2
,
0
,
2
,
0
},
/* 3 */
{
2
,
s_2_3
,
0
,
2
,
0
},
/* 4 */
{
2
,
s_2_4
,
0
,
2
,
0
},
/* 5 */
{
2
,
s_2_5
,
0
,
1
,
0
},
/* 6 */
{
2
,
s_2_6
,
0
,
2
,
0
},
/* 7 */
{
2
,
s_2_7
,
0
,
2
,
0
},
/* 8 */
{
2
,
s_2_8
,
0
,
2
,
0
},
/* 9 */
{
2
,
s_2_9
,
0
,
2
,
0
},
/* 10 */
{
2
,
s_2_10
,
0
,
1
,
0
},
/* 11 */
{
2
,
s_2_11
,
0
,
2
,
0
},
/* 12 */
{
2
,
s_2_12
,
0
,
1
,
0
}
/* 0 */
{
3
,
s_2_0
,
-
1
,
2
,
0
},
/* 1 */
{
1
,
s_2_1
,
-
1
,
3
,
0
},
/* 2 */
{
3
,
s_2_2
,
1
,
2
,
0
},
/* 3 */
{
4
,
s_2_3
,
1
,
1
,
0
},
/* 4 */
{
2
,
s_2_4
,
1
,
-
1
,
0
},
/* 5 */
{
2
,
s_2_5
,
1
,
-
1
,
0
}
};
static
symbol
s_3_0
[
2
]
=
{
'e'
,
'd'
};
static
symbol
s_3_1
[
3
]
=
{
'e'
,
'e'
,
'd'
};
static
symbol
s_3_2
[
3
]
=
{
'i'
,
'n'
,
'g'
};
static
symbol
s_3_3
[
4
]
=
{
'e'
,
'd'
,
'l'
,
'y'
};
static
symbol
s_3_4
[
5
]
=
{
'e'
,
'e'
,
'd'
,
'l'
,
'y'
};
static
symbol
s_3_5
[
5
]
=
{
'i'
,
'n'
,
'g'
,
'l'
,
'y'
};
static
struct
among
a_3
[
6
]
=
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
struct
among
a_3
[
13
]
=
{
/* 0 */
{
2
,
s_3_0
,
-
1
,
2
,
0
},
/* 1 */
{
3
,
s_3_1
,
0
,
1
,
0
},
/* 2 */
{
3
,
s_3_2
,
-
1
,
2
,
0
},
/* 3 */
{
4
,
s_3_3
,
-
1
,
2
,
0
},
/* 4 */
{
5
,
s_3_4
,
3
,
1
,
0
},
/* 5 */
{
5
,
s_3_5
,
-
1
,
2
,
0
}
/* 0 */
{
0
,
0
,
-
1
,
3
,
0
},
/* 1 */
{
2
,
s_3_1
,
0
,
2
,
0
},
/* 2 */
{
2
,
s_3_2
,
0
,
2
,
0
},
/* 3 */
{
2
,
s_3_3
,
0
,
2
,
0
},
/* 4 */
{
2
,
s_3_4
,
0
,
2
,
0
},
/* 5 */
{
2
,
s_3_5
,
0
,
1
,
0
},
/* 6 */
{
2
,
s_3_6
,
0
,
2
,
0
},
/* 7 */
{
2
,
s_3_7
,
0
,
2
,
0
},
/* 8 */
{
2
,
s_3_8
,
0
,
2
,
0
},
/* 9 */
{
2
,
s_3_9
,
0
,
2
,
0
},
/* 10 */
{
2
,
s_3_10
,
0
,
1
,
0
},
/* 11 */
{
2
,
s_3_11
,
0
,
2
,
0
},
/* 12 */
{
2
,
s_3_12
,
0
,
1
,
0
}
};
static
symbol
s_4_0
[
4
]
=
{
'a'
,
'n'
,
'c'
,
'i'
};
static
symbol
s_4_1
[
4
]
=
{
'e'
,
'n'
,
'c'
,
'i'
};
static
symbol
s_4_2
[
3
]
=
{
'o'
,
'g'
,
'i'
};
static
symbol
s_4_3
[
2
]
=
{
'l'
,
'i'
};
static
symbol
s_4_4
[
3
]
=
{
'b'
,
'l'
,
'i'
};
static
symbol
s_4_5
[
4
]
=
{
'a'
,
'b'
,
'l'
,
'i'
};
static
symbol
s_4_6
[
4
]
=
{
'a'
,
'l'
,
'l'
,
'i'
};
static
symbol
s_4_7
[
5
]
=
{
'f'
,
'u'
,
'l'
,
'l'
,
'i'
};
static
symbol
s_4_8
[
6
]
=
{
'l'
,
'e'
,
's'
,
's'
,
'l'
,
'i'
};
static
symbol
s_4_9
[
5
]
=
{
'o'
,
'u'
,
's'
,
'l'
,
'i'
};
static
symbol
s_4_10
[
5
]
=
{
'e'
,
'n'
,
't'
,
'l'
,
'i'
};
static
symbol
s_4_11
[
5
]
=
{
'a'
,
'l'
,
'i'
,
't'
,
'i'
};
static
symbol
s_4_12
[
6
]
=
{
'b'
,
'i'
,
'l'
,
'i'
,
't'
,
'i'
};
static
symbol
s_4_13
[
5
]
=
{
'i'
,
'v'
,
'i'
,
't'
,
'i'
};
static
symbol
s_4_14
[
6
]
=
{
't'
,
'i'
,
'o'
,
'n'
,
'a'
,
'l'
};
static
symbol
s_4_15
[
7
]
=
{
'a'
,
't'
,
'i'
,
'o'
,
'n'
,
'a'
,
'l'
};
static
symbol
s_4_16
[
5
]
=
{
'a'
,
'l'
,
'i'
,
's'
,
'm'
};
static
symbol
s_4_17
[
5
]
=
{
'a'
,
't'
,
'i'
,
'o'
,
'n'
};
static
symbol
s_4_18
[
7
]
=
{
'i'
,
'z'
,
'a'
,
't'
,
'i'
,
'o'
,
'n'
};
static
symbol
s_4_19
[
4
]
=
{
'i'
,
'z'
,
'e'
,
'r'
};
static
symbol
s_4_20
[
4
]
=
{
'a'
,
't'
,
'o'
,
'r'
};
static
symbol
s_4_21
[
7
]
=
{
'i'
,
'v'
,
'e'
,
'n'
,
'e'
,
's'
,
's'
};
static
symbol
s_4_22
[
7
]
=
{
'f'
,
'u'
,
'l'
,
'n'
,
'e'
,
's'
,
's'
};
static
symbol
s_4_23
[
7
]
=
{
'o'
,
'u'
,
's'
,
'n'
,
'e'
,
's'
,
's'
};
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
struct
among
a_4
[
24
]
=
static
struct
among
a_4
[
6
]
=
{
/* 0 */
{
4
,
s_4_0
,
-
1
,
3
,
0
},
/* 1 */
{
4
,
s_4_1
,
-
1
,
2
,
0
},
/* 2 */
{
3
,
s_4_2
,
-
1
,
13
,
0
},
/* 3 */
{
2
,
s_4_3
,
-
1
,
16
,
0
},
/* 4 */
{
3
,
s_4_4
,
3
,
12
,
0
},
/* 5 */
{
4
,
s_4_5
,
4
,
4
,
0
},
/* 6 */
{
4
,
s_4_6
,
3
,
8
,
0
},
/* 7 */
{
5
,
s_4_7
,
3
,
14
,
0
},
/* 8 */
{
6
,
s_4_8
,
3
,
15
,
0
},
/* 9 */
{
5
,
s_4_9
,
3
,
10
,
0
},
/* 10 */
{
5
,
s_4_10
,
3
,
5
,
0
},
/* 11 */
{
5
,
s_4_11
,
-
1
,
8
,
0
},
/* 12 */
{
6
,
s_4_12
,
-
1
,
12
,
0
},
/* 13 */
{
5
,
s_4_13
,
-
1
,
11
,
0
},
/* 14 */
{
6
,
s_4_14
,
-
1
,
1
,
0
},
/* 15 */
{
7
,
s_4_15
,
14
,
7
,
0
},
/* 16 */
{
5
,
s_4_16
,
-
1
,
8
,
0
},
/* 17 */
{
5
,
s_4_17
,
-
1
,
7
,
0
},
/* 18 */
{
7
,
s_4_18
,
17
,
6
,
0
},
/* 19 */
{
4
,
s_4_19
,
-
1
,
6
,
0
},
/* 20 */
{
4
,
s_4_20
,
-
1
,
7
,
0
},
/* 21 */
{
7
,
s_4_21
,
-
1
,
11
,
0
},
/* 22 */
{
7
,
s_4_22
,
-
1
,
9
,
0
},
/* 23 */
{
7
,
s_4_23
,
-
1
,
10
,
0
}
/* 0 */
{
2
,
s_4_0
,
-
1
,
2
,
0
},
/* 1 */
{
3
,
s_4_1
,
0
,
1
,
0
},
/* 2 */
{
3
,
s_4_2
,
-
1
,
2
,
0
},
/* 3 */
{
4
,
s_4_3
,
-
1
,
2
,
0
},
/* 4 */
{
5
,
s_4_4
,
3
,
1
,
0
},
/* 5 */
{
5
,
s_4_5
,
-
1
,
2
,
0
}
};
static
symbol
s_5_0
[
5
]
=
{
'i'
,
'c'
,
'a'
,
't'
,
'e'
};
static
symbol
s_5_1
[
5
]
=
{
'a'
,
't'
,
'i'
,
'v'
,
'e'
};
static
symbol
s_5_2
[
5
]
=
{
'a'
,
'l'
,
'i'
,
'z'
,
'e'
};
static
symbol
s_5_3
[
5
]
=
{
'i'
,
'c'
,
'i'
,
't'
,
'i'
};
static
symbol
s_5_4
[
4
]
=
{
'i'
,
'c'
,
'a'
,
'l'
};
static
symbol
s_5_5
[
6
]
=
{
't'
,
'i'
,
'o'
,
'n'
,
'a'
,
'l'
};
static
symbol
s_5_6
[
7
]
=
{
'a'
,
't'
,
'i'
,
'o'
,
'n'
,
'a'
,
'l'
};
static
symbol
s_5_7
[
3
]
=
{
'f'
,
'u'
,
'l'
};
static
symbol
s_5_8
[
4
]
=
{
'n'
,
'e'
,
's'
,
's'
};
static
struct
among
a_5
[
9
]
=
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
struct
among
a_5
[
24
]
=
{
/* 0 */
{
5
,
s_5_0
,
-
1
,
4
,
0
},
/* 1 */
{
5
,
s_5_1
,
-
1
,
6
,
0
},
/* 2 */
{
5
,
s_5_2
,
-
1
,
3
,
0
},
/* 3 */
{
5
,
s_5_3
,
-
1
,
4
,
0
},
/* 4 */
{
4
,
s_5_4
,
-
1
,
4
,
0
},
/* 5 */
{
6
,
s_5_5
,
-
1
,
1
,
0
},
/* 6 */
{
7
,
s_5_6
,
5
,
2
,
0
},
/* 7 */
{
3
,
s_5_7
,
-
1
,
5
,
0
},
/* 8 */
{
4
,
s_5_8
,
-
1
,
5
,
0
}
/* 0 */
{
4
,
s_5_0
,
-
1
,
3
,
0
},
/* 1 */
{
4
,
s_5_1
,
-
1
,
2
,
0
},
/* 2 */
{
3
,
s_5_2
,
-
1
,
13
,
0
},
/* 3 */
{
2
,
s_5_3
,
-
1
,
16
,
0
},
/* 4 */
{
3
,
s_5_4
,
3
,
12
,
0
},
/* 5 */
{
4
,
s_5_5
,
4
,
4
,
0
},
/* 6 */
{
4
,
s_5_6
,
3
,
8
,
0
},
/* 7 */
{
5
,
s_5_7
,
3
,
14
,
0
},
/* 8 */
{
6
,
s_5_8
,
3
,
15
,
0
},
/* 9 */
{
5
,
s_5_9
,
3
,
10
,
0
},
/* 10 */
{
5
,
s_5_10
,
3
,
5
,
0
},
/* 11 */
{
5
,
s_5_11
,
-
1
,
8
,
0
},
/* 12 */
{
6
,
s_5_12
,
-
1
,
12
,
0
},
/* 13 */
{
5
,
s_5_13
,
-
1
,
11
,
0
},
/* 14 */
{
6
,
s_5_14
,
-
1
,
1
,
0
},
/* 15 */
{
7
,
s_5_15
,
14
,
7
,
0
},
/* 16 */
{
5
,
s_5_16
,
-
1
,
8
,
0
},
/* 17 */
{
5
,
s_5_17
,
-
1
,
7
,
0
},
/* 18 */
{
7
,
s_5_18
,
17
,
6
,
0
},
/* 19 */
{
4
,
s_5_19
,
-
1
,
6
,
0
},
/* 20 */
{
4
,
s_5_20
,
-
1
,
7
,
0
},
/* 21 */
{
7
,
s_5_21
,
-
1
,
11
,
0
},
/* 22 */
{
7
,
s_5_22
,
-
1
,
9
,
0
},
/* 23 */
{
7
,
s_5_23
,
-
1
,
10
,
0
}
};
static
symbol
s_6_0
[
2
]
=
{
'i'
,
'c'
};
static
symbol
s_6_1
[
4
]
=
{
'a'
,
'n'
,
'c'
,
'e'
};
static
symbol
s_6_2
[
4
]
=
{
'e'
,
'n'
,
'c'
,
'e'
};
static
symbol
s_6_3
[
4
]
=
{
'a'
,
'b'
,
'l'
,
'e'
};
static
symbol
s_6_4
[
4
]
=
{
'i'
,
'b'
,
'l'
,
'e'
};
static
symbol
s_6_5
[
3
]
=
{
'a'
,
't'
,
'e'
};
static
symbol
s_6_6
[
3
]
=
{
'i'
,
'v'
,
'e'
};
static
symbol
s_6_7
[
3
]
=
{
'i'
,
'z'
,
'e'
};
static
symbol
s_6_8
[
3
]
=
{
'i'
,
't'
,
'i'
};
static
symbol
s_6_9
[
2
]
=
{
'a'
,
'l'
};
static
symbol
s_6_10
[
3
]
=
{
'i'
,
's'
,
'm'
};
static
symbol
s_6_11
[
3
]
=
{
'i'
,
'o'
,
'n'
};
static
symbol
s_6_12
[
2
]
=
{
'e'
,
'r'
};
static
symbol
s_6_13
[
3
]
=
{
'o'
,
'u'
,
's'
};
static
symbol
s_6_14
[
3
]
=
{
'a'
,
'n'
,
't'
};
static
symbol
s_6_15
[
3
]
=
{
'e'
,
'n'
,
't'
};
static
symbol
s_6_16
[
4
]
=
{
'm'
,
'e'
,
'n'
,
't'
};
static
symbol
s_6_17
[
5
]
=
{
'e'
,
'm'
,
'e'
,
'n'
,
't'
};
static
struct
among
a_6
[
18
]
=
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
struct
among
a_6
[
9
]
=
{
/* 0 */
{
2
,
s_6_0
,
-
1
,
1
,
0
},
/* 1 */
{
4
,
s_6_1
,
-
1
,
1
,
0
},
/* 2 */
{
4
,
s_6_2
,
-
1
,
1
,
0
},
/* 3 */
{
4
,
s_6_3
,
-
1
,
1
,
0
},
/* 4 */
{
4
,
s_6_4
,
-
1
,
1
,
0
},
/* 5 */
{
3
,
s_6_5
,
-
1
,
1
,
0
},
/* 6 */
{
3
,
s_6_6
,
-
1
,
1
,
0
},
/* 7 */
{
3
,
s_6_7
,
-
1
,
1
,
0
},
/* 8 */
{
3
,
s_6_8
,
-
1
,
1
,
0
},
/* 9 */
{
2
,
s_6_9
,
-
1
,
1
,
0
},
/* 10 */
{
3
,
s_6_10
,
-
1
,
1
,
0
},
/* 11 */
{
3
,
s_6_11
,
-
1
,
2
,
0
},
/* 12 */
{
2
,
s_6_12
,
-
1
,
1
,
0
},
/* 13 */
{
3
,
s_6_13
,
-
1
,
1
,
0
},
/* 14 */
{
3
,
s_6_14
,
-
1
,
1
,
0
},
/* 15 */
{
3
,
s_6_15
,
-
1
,
1
,
0
},
/* 16 */
{
4
,
s_6_16
,
15
,
1
,
0
},
/* 17 */
{
5
,
s_6_17
,
16
,
1
,
0
}
/* 0 */
{
5
,
s_6_0
,
-
1
,
4
,
0
},
/* 1 */
{
5
,
s_6_1
,
-
1
,
6
,
0
},
/* 2 */
{
5
,
s_6_2
,
-
1
,
3
,
0
},
/* 3 */
{
5
,
s_6_3
,
-
1
,
4
,
0
},
/* 4 */
{
4
,
s_6_4
,
-
1
,
4
,
0
},
/* 5 */
{
6
,
s_6_5
,
-
1
,
1
,
0
},
/* 6 */
{
7
,
s_6_6
,
5
,
2
,
0
},
/* 7 */
{
3
,
s_6_7
,
-
1
,
5
,
0
},
/* 8 */
{
4
,
s_6_8
,
-
1
,
5
,
0
}
};
static
symbol
s_7_0
[
1
]
=
{
'e'
};
static
symbol
s_7_1
[
1
]
=
{
'l'
};
static
struct
among
a_7
[
2
]
=
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
struct
among
a_7
[
18
]
=
{
/* 0 */
{
1
,
s_7_0
,
-
1
,
1
,
0
},
/* 1 */
{
1
,
s_7_1
,
-
1
,
2
,
0
}
/* 0 */
{
2
,
s_7_0
,
-
1
,
1
,
0
},
/* 1 */
{
4
,
s_7_1
,
-
1
,
1
,
0
},
/* 2 */
{
4
,
s_7_2
,
-
1
,
1
,
0
},
/* 3 */
{
4
,
s_7_3
,
-
1
,
1
,
0
},
/* 4 */
{
4
,
s_7_4
,
-
1
,
1
,
0
},
/* 5 */
{
3
,
s_7_5
,
-
1
,
1
,
0
},
/* 6 */
{
3
,
s_7_6
,
-
1
,
1
,
0
},
/* 7 */
{
3
,
s_7_7
,
-
1
,
1
,
0
},
/* 8 */
{
3
,
s_7_8
,
-
1
,
1
,
0
},
/* 9 */
{
2
,
s_7_9
,
-
1
,
1
,
0
},
/* 10 */
{
3
,
s_7_10
,
-
1
,
1
,
0
},
/* 11 */
{
3
,
s_7_11
,
-
1
,
2
,
0
},
/* 12 */
{
2
,
s_7_12
,
-
1
,
1
,
0
},
/* 13 */
{
3
,
s_7_13
,
-
1
,
1
,
0
},
/* 14 */
{
3
,
s_7_14
,
-
1
,
1
,
0
},
/* 15 */
{
3
,
s_7_15
,
-
1
,
1
,
0
},
/* 16 */
{
4
,
s_7_16
,
15
,
1
,
0
},
/* 17 */
{
5
,
s_7_17
,
16
,
1
,
0
}
};
static
symbol
s_8_0
[
7
]
=
{
's'
,
'u'
,
'c'
,
'c'
,
'e'
,
'e'
,
'd'
};
static
symbol
s_8_1
[
7
]
=
{
'p'
,
'r'
,
'o'
,
'c'
,
'e'
,
'e'
,
'd'
};
static
symbol
s_8_2
[
6
]
=
{
'e'
,
'x'
,
'c'
,
'e'
,
'e'
,
'd'
};
static
symbol
s_8_3
[
7
]
=
{
'c'
,
'a'
,
'n'
,
'n'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_8_4
[
6
]
=
{
'i'
,
'n'
,
'n'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_8_5
[
7
]
=
{
'e'
,
'a'
,
'r'
,
'r'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_8_6
[
7
]
=
{
'h'
,
'e'
,
'r'
,
'r'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_8_7
[
6
]
=
{
'o'
,
'u'
,
't'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_8_0
[
1
]
=
{
'e'
};
static
symbol
s_8_1
[
1
]
=
{
'l'
};
static
struct
among
a_8
[
8
]
=
static
struct
among
a_8
[
2
]
=
{
/* 0 */
{
7
,
s_8_0
,
-
1
,
-
1
,
0
},
/* 1 */
{
7
,
s_8_1
,
-
1
,
-
1
,
0
},
/* 2 */
{
6
,
s_8_2
,
-
1
,
-
1
,
0
},
/* 3 */
{
7
,
s_8_3
,
-
1
,
-
1
,
0
},
/* 4 */
{
6
,
s_8_4
,
-
1
,
-
1
,
0
},
/* 5 */
{
7
,
s_8_5
,
-
1
,
-
1
,
0
},
/* 6 */
{
7
,
s_8_6
,
-
1
,
-
1
,
0
},
/* 7 */
{
6
,
s_8_7
,
-
1
,
-
1
,
0
}
/* 0 */
{
1
,
s_8_0
,
-
1
,
1
,
0
},
/* 1 */
{
1
,
s_8_1
,
-
1
,
2
,
0
}
};
static
symbol
s_9_0
[
5
]
=
{
'a'
,
'n'
,
'd'
,
'e'
,
's'
};
static
symbol
s_9_1
[
5
]
=
{
'a'
,
't'
,
'l'
,
'a'
,
's'
};
static
symbol
s_9_2
[
4
]
=
{
'b'
,
'i'
,
'a'
,
's'
};
static
symbol
s_9_3
[
6
]
=
{
'c'
,
'o'
,
's'
,
'm'
,
'o'
,
's'
};
static
symbol
s_9_4
[
5
]
=
{
'd'
,
'y'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_9_5
[
5
]
=
{
'e'
,
'a'
,
'r'
,
'l'
,
'y'
};
static
symbol
s_9_6
[
6
]
=
{
'g'
,
'e'
,
'n'
,
't'
,
'l'
,
'y'
};
static
symbol
s_9_7
[
4
]
=
{
'h'
,
'o'
,
'w'
,
'e'
};
static
symbol
s_9_8
[
4
]
=
{
'i'
,
'd'
,
'l'
,
'y'
};
static
symbol
s_9_9
[
5
]
=
{
'l'
,
'y'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_9_10
[
4
]
=
{
'n'
,
'e'
,
'w'
,
's'
};
static
symbol
s_9_11
[
4
]
=
{
'o'
,
'n'
,
'l'
,
'y'
};
static
symbol
s_9_12
[
6
]
=
{
's'
,
'i'
,
'n'
,
'g'
,
'l'
,
'y'
};
static
symbol
s_9_13
[
5
]
=
{
's'
,
'k'
,
'i'
,
'e'
,
's'
};
static
symbol
s_9_14
[
4
]
=
{
's'
,
'k'
,
'i'
,
's'
};
static
symbol
s_9_15
[
3
]
=
{
's'
,
'k'
,
'y'
};
static
symbol
s_9_16
[
5
]
=
{
't'
,
'y'
,
'i'
,
'n'
,
'g'
};
static
symbol
s_9_17
[
4
]
=
{
'u'
,
'g'
,
'l'
,
'y'
};
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
struct
among
a_9
[
1
8
]
=
static
struct
among
a_9
[
8
]
=
{
/* 0 */
{
5
,
s_9_0
,
-
1
,
-
1
,
0
},
/* 1 */
{
5
,
s_9_1
,
-
1
,
-
1
,
0
},
/* 2 */
{
4
,
s_9_2
,
-
1
,
-
1
,
0
},
/* 3 */
{
6
,
s_9_3
,
-
1
,
-
1
,
0
},
/* 4 */
{
5
,
s_9_4
,
-
1
,
3
,
0
},
/* 5 */
{
5
,
s_9_5
,
-
1
,
9
,
0
},
/* 6 */
{
6
,
s_9_6
,
-
1
,
7
,
0
},
/* 7 */
{
4
,
s_9_7
,
-
1
,
-
1
,
0
},
/* 8 */
{
4
,
s_9_8
,
-
1
,
6
,
0
},
/* 9 */
{
5
,
s_9_9
,
-
1
,
4
,
0
},
/* 10 */
{
4
,
s_9_10
,
-
1
,
-
1
,
0
},
/* 11 */
{
4
,
s_9_11
,
-
1
,
10
,
0
},
/* 12 */
{
6
,
s_9_12
,
-
1
,
11
,
0
},
/* 13 */
{
5
,
s_9_13
,
-
1
,
2
,
0
},
/* 14 */
{
4
,
s_9_14
,
-
1
,
1
,
0
},
/* 15 */
{
3
,
s_9_15
,
-
1
,
-
1
,
0
},
/* 16 */
{
5
,
s_9_16
,
-
1
,
5
,
0
},
/* 17 */
{
4
,
s_9_17
,
-
1
,
8
,
0
}
/* 0 */
{
7
,
s_9_0
,
-
1
,
-
1
,
0
},
/* 1 */
{
7
,
s_9_1
,
-
1
,
-
1
,
0
},
/* 2 */
{
6
,
s_9_2
,
-
1
,
-
1
,
0
},
/* 3 */
{
7
,
s_9_3
,
-
1
,
-
1
,
0
},
/* 4 */
{
6
,
s_9_4
,
-
1
,
-
1
,
0
},
/* 5 */
{
7
,
s_9_5
,
-
1
,
-
1
,
0
},
/* 6 */
{
7
,
s_9_6
,
-
1
,
-
1
,
0
},
/* 7 */
{
6
,
s_9_7
,
-
1
,
-
1
,
0
}
};
static
unsigned
char
g_v
[]
=
{
17
,
65
,
16
,
1
};
static
unsigned
char
g_v_WXY
[]
=
{
1
,
17
,
65
,
208
,
1
};
static
unsigned
char
g_valid_LI
[]
=
{
55
,
141
,
2
};
static
symbol
s_0
[]
=
{
'y'
};
static
symbol
s_1
[]
=
{
'Y'
};
static
symbol
s_2
[]
=
{
'y'
};
static
symbol
s_3
[]
=
{
'Y'
};
static
symbol
s_4
[]
=
{
's'
,
's'
};
static
symbol
s_5
[]
=
{
'i'
,
'e'
};
static
symbol
s_6
[]
=
{
'i'
};
static
symbol
s_7
[]
=
{
'e'
,
'e'
};
static
symbol
s_8
[]
=
{
'e'
};
static
symbol
s_9
[]
=
{
'e'
};
static
symbol
s_10
[]
=
{
'y'
};
static
symbol
s_11
[]
=
{
'Y'
};
static
symbol
s_12
[]
=
{
'i'
};
static
symbol
s_13
[]
=
{
't'
,
'i'
,
'o'
,
'n'
};
static
symbol
s_14
[]
=
{
'e'
,
'n'
,
'c'
,
'e'
};
static
symbol
s_15
[]
=
{
'a'
,
'n'
,
'c'
,
'e'
};
static
symbol
s_16
[]
=
{
'a'
,
'b'
,
'l'
,
'e'
};
static
symbol
s_17
[]
=
{
'e'
,
'n'
,
't'
};
static
symbol
s_18
[]
=
{
'i'
,
'z'
,
'e'
};
static
symbol
s_19
[]
=
{
'a'
,
't'
,
'e'
};
static
symbol
s_20
[]
=
{
'a'
,
'l'
};
static
symbol
s_21
[]
=
{
'f'
,
'u'
,
'l'
};
static
symbol
s_22
[]
=
{
'o'
,
'u'
,
's'
};
static
symbol
s_23
[]
=
{
'i'
,
'v'
,
'e'
};
static
symbol
s_24
[]
=
{
'b'
,
'l'
,
'e'
};
static
symbol
s_25
[]
=
{
'l'
};
static
symbol
s_26
[]
=
{
'o'
,
'g'
};
static
symbol
s_27
[]
=
{
'f'
,
'u'
,
'l'
};
static
symbol
s_28
[]
=
{
'l'
,
'e'
,
's'
,
's'
};
static
symbol
s_29
[]
=
{
't'
,
'i'
,
'o'
,
'n'
};
static
symbol
s_30
[]
=
{
'a'
,
't'
,
'e'
};
static
symbol
s_31
[]
=
{
'a'
,
'l'
};
static
symbol
s_32
[]
=
{
'i'
,
'c'
};
static
symbol
s_33
[]
=
{
's'
};
static
symbol
s_34
[]
=
{
't'
};
static
symbol
s_35
[]
=
{
'l'
};
static
symbol
s_36
[]
=
{
's'
,
'k'
,
'i'
};
static
symbol
s_37
[]
=
{
's'
,
'k'
,
'y'
};
static
symbol
s_38
[]
=
{
'd'
,
'i'
,
'e'
};
static
symbol
s_39
[]
=
{
'l'
,
'i'
,
'e'
};
static
symbol
s_40
[]
=
{
't'
,
'i'
,
'e'
};
static
symbol
s_41
[]
=
{
'i'
,
'd'
,
'l'
};
static
symbol
s_42
[]
=
{
'g'
,
'e'
,
'n'
,
't'
,
'l'
};
static
symbol
s_43
[]
=
{
'u'
,
'g'
,
'l'
,
'i'
};
static
symbol
s_44
[]
=
{
'e'
,
'a'
,
'r'
,
'l'
,
'i'
};
static
symbol
s_45
[]
=
{
'o'
,
'n'
,
'l'
,
'i'
};
static
symbol
s_46
[]
=
{
's'
,
'i'
,
'n'
,
'g'
,
'l'
};
static
symbol
s_47
[]
=
{
'Y'
};
static
symbol
s_48
[]
=
{
'y'
};
static
int
r_prelude
(
struct
SN_env
*
z
)
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
struct
among
a_10
[
18
]
=
{
z
->
B
[
0
]
=
0
;
/* unset Y_found, line 24 */
{
int
c
=
z
->
c
;
/* do, line 25 */
/* 0 */
{
5
,
s_10_0
,
-
1
,
-
1
,
0
},
/* 1 */
{
5
,
s_10_1
,
-
1
,
-
1
,
0
},
/* 2 */
{
4
,
s_10_2
,
-
1
,
-
1
,
0
},
/* 3 */
{
6
,
s_10_3
,
-
1
,
-
1
,
0
},
/* 4 */
{
5
,
s_10_4
,
-
1
,
3
,
0
},
/* 5 */
{
5
,
s_10_5
,
-
1
,
9
,
0
},
/* 6 */
{
6
,
s_10_6
,
-
1
,
7
,
0
},
/* 7 */
{
4
,
s_10_7
,
-
1
,
-
1
,
0
},
/* 8 */
{
4
,
s_10_8
,
-
1
,
6
,
0
},
/* 9 */
{
5
,
s_10_9
,
-
1
,
4
,
0
},
/* 10 */
{
4
,
s_10_10
,
-
1
,
-
1
,
0
},
/* 11 */
{
4
,
s_10_11
,
-
1
,
10
,
0
},
/* 12 */
{
6
,
s_10_12
,
-
1
,
11
,
0
},
/* 13 */
{
5
,
s_10_13
,
-
1
,
2
,
0
},
/* 14 */
{
4
,
s_10_14
,
-
1
,
1
,
0
},
/* 15 */
{
3
,
s_10_15
,
-
1
,
-
1
,
0
},
/* 16 */
{
5
,
s_10_16
,
-
1
,
5
,
0
},
/* 17 */
{
4
,
s_10_17
,
-
1
,
8
,
0
}
};
z
->
bra
=
z
->
c
;
/* [, line 25 */
if
(
!
(
eq_s
(
z
,
1
,
s_0
)))
goto
lab0
;
z
->
ket
=
z
->
c
;
/* ], line 25 */
if
(
!
(
in_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab0
;
slice_from_s
(
z
,
1
,
s_1
);
/* <-, line 25 */
z
->
B
[
0
]
=
1
;
/* set Y_found, line 25 */
lab0:
static
unsigned
char
g_v
[]
=
{
17
,
65
,
16
,
1
};
static
unsigned
char
g_v_WXY
[]
=
{
1
,
17
,
65
,
208
,
1
};
static
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'
,
'e'
};
static
symbol
s_7
[]
=
{
'i'
};
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
int
r_prelude
(
struct
SN_env
*
z
)
{
z
->
B
[
0
]
=
0
;
/* unset Y_found, line 26 */
{
int
c
=
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 */
if
(
ret
<
0
)
return
ret
;
}
lab0:
z
->
c
=
c
;
}
{
int
c
=
z
->
c
;
/* do, line 26 */
while
(
1
)
{
/* repeat, line 26 */
{
int
c
=
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 */
if
(
!
(
in_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab1
;
{
int
ret
;
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
;
}
{
int
c
=
z
->
c
;
/* do, line 29 */
while
(
1
)
{
/* repeat, line 29 */
int
c
=
z
->
c
;
while
(
1
)
{
/* goto, line 26 */
while
(
1
)
{
/* goto, line 29 */
int
c
=
z
->
c
;
if
(
!
(
in_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab3
;
z
->
bra
=
z
->
c
;
/* [, line 26 */
if
(
!
(
eq_s
(
z
,
1
,
s_2
)))
goto
lab3
;
z
->
ket
=
z
->
c
;
/* ], line 26 */
if
(
!
(
in_grouping
(
z
,
g_v
,
97
,
121
)))
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
;
break
;
lab3
:
lab4
:
z
->
c
=
c
;
if
(
z
->
c
>=
z
->
l
)
goto
lab2
;
z
->
c
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab3
;
z
->
c
++
;
/* goto, line 29 */
}
slice_from_s
(
z
,
1
,
s_3
);
/* <-, line 26 */
z
->
B
[
0
]
=
1
;
/* set Y_found, line 26 */
{
int
ret
;
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
;
lab2
:
lab3
:
z
->
c
=
c
;
break
;
}
...
...
@@ -393,248 +409,223 @@ lab0:
return
1
;
}
static
int
r_mark_regions
(
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 32 */
{
int
c
=
z
->
c
;
/* or, line 36 */
if
(
!
(
find_among
(
z
,
a_0
,
1
)))
goto
lab2
;
/* among, line 33 */
{
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 */
goto
lab1
;
lab2:
z
->
c
=
c
;
while
(
1
)
{
/* gopast, line 36 */
if
(
!
(
in_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab3
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 40 */
}
while
(
1
)
{
/* gopast, line 36 */
if
(
!
(
out_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab4
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 40 */
}
}
lab1:
z
->
I
[
0
]
=
z
->
c
;
/* setmark p1, line 37 */
while
(
1
)
{
/* gopast, line 38 */
if
(
!
(
in_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab5
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 42 */
}
while
(
1
)
{
/* gopast, line 38 */
if
(
!
(
out_grouping
(
z
,
g_v
,
97
,
121
)))
goto
lab6
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 42 */
}
z
->
I
[
1
]
=
z
->
c
;
/* setmark p2, line 38
*/
lab0:
z
->
I
[
1
]
=
z
->
c
;
/* setmark p2, line 42
*/
lab0:
z
->
c
=
c
;
}
return
1
;
}
static
int
r_shortv
(
struct
SN_env
*
z
)
{
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 46 */
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
;
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
;
goto
lab0
;
lab1:
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 47 */
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 */
}
lab0:
return
1
;
}
static
int
r_R1
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
I
[
0
]
<=
z
->
c
))
return
0
;
static
int
r_R1
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
I
[
0
]
<=
z
->
c
))
return
0
;
return
1
;
}
static
int
r_R2
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
I
[
1
]
<=
z
->
c
))
return
0
;
static
int
r_R2
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
I
[
1
]
<=
z
->
c
))
return
0
;
return
1
;
}
static
int
r_Step_1a
(
struct
SN_env
*
z
)
{
static
int
r_Step_1a
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 54 */
among_var
=
find_among_b
(
z
,
a_1
,
6
);
/* substring, line 54 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 54 */
switch
(
among_var
)
{
case
0
:
return
0
;
{
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 */
switch
(
among_var
)
{
case
0
:
{
z
->
c
=
z
->
l
-
m
;
goto
lab0
;
}
case
1
:
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 61 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
lab0:
;
}
z
->
ket
=
z
->
c
;
/* [, line 64 */
among_var
=
find_among_b
(
z
,
a_2
,
6
);
/* substring, line 64 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 64 */
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
slice_from_s
(
z
,
2
,
s_4
);
/* <-, line 55 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_5
);
/* <-, line 65 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 57 */
if
(
z
->
c
<=
z
->
lb
)
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* or, line 67 */
if
(
z
->
c
<=
z
->
lb
)
goto
lab2
;
z
->
c
--
;
/* next, line 67 */
if
(
z
->
c
>
z
->
lb
)
goto
lab2
;
/* atlimit, line 67 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_6
);
/* <-, line 67 */
if
(
ret
<
0
)
return
ret
;
}
goto
lab1
;
z
->
c
--
;
/* next, line 57 */
if
(
z
->
c
>
z
->
lb
)
goto
lab1
;
/* atlimit, line 57 */
slice_from_s
(
z
,
2
,
s_5
);
/* <-, line 57 */
goto
lab0
;
lab1:
lab2:
z
->
c
=
z
->
l
-
m
;
slice_from_s
(
z
,
1
,
s_6
);
/* <-, line 57 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
1
,
s_7
);
/* <-, line 67 */
if
(
ret
<
0
)
return
ret
;
}
lab0:
}
lab1:
break
;
case
3
:
if
(
z
->
c
<=
z
->
lb
)
return
0
;
z
->
c
--
;
/* next, line 58 */
while
(
1
)
{
/* gopast, line 58 */
if
(
!
(
in_grouping_b
(
z
,
g_v
,
97
,
121
)))
goto
lab2
;
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
;
lab2:
if
(
z
->
c
<=
z
->
lb
)
return
0
;
z
->
c
--
;
lab3:
if
(
z
->
c
<=
z
->
lb
)
return
0
;
z
->
c
--
;
/* gopast, line 68 */
}
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 68 */
if
(
ret
<
0
)
return
ret
;
}
slice_del
(
z
);
/* delete, line 58 */
break
;
}
return
1
;
}
static
int
r_Step_1b
(
struct
SN_env
*
z
)
{
static
int
r_Step_1b
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 64 */
among_var
=
find_among_b
(
z
,
a_3
,
6
);
/* substring, line 64 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 64 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 74 */
among_var
=
find_among_b
(
z
,
a_4
,
6
);
/* substring, line 74 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 74 */
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
if
(
!
r_R1
(
z
))
return
0
;
/* call R1, line 66 */
slice_from_s
(
z
,
2
,
s_7
);
/* <-, line 66 */
{
int
ret
=
r_R1
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R1, line 76 */
if
(
ret
<
0
)
return
ret
;
}
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_8
);
/* <-, line 76 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
{
int
m_test
=
z
->
l
-
z
->
c
;
/* test, line 69 */
while
(
1
)
{
/* gopast, line 69 */
if
(
!
(
in_grouping_b
(
z
,
g_v
,
97
,
121
)))
goto
lab0
;
{
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
--
;
if
(
z
->
c
<=
z
->
lb
)
return
0
;
z
->
c
--
;
/* gopast, line 79 */
}
z
->
c
=
z
->
l
-
m_test
;
}
slice_del
(
z
);
/* delete, line 69 */
{
int
m_test
=
z
->
l
-
z
->
c
;
/* test, line 70 */
among_var
=
find_among_b
(
z
,
a_2
,
13
);
/* substring, line 7
0 */
if
(
!
(
among_var
))
return
0
;
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 79 */
if
(
ret
<
0
)
return
ret
;
}
{
int
m_test
=
z
->
l
-
z
->
c
;
/* test, line 8
0 */
among_var
=
find_among_b
(
z
,
a_3
,
13
);
/* substring, line 80 */
if
(
!
(
among_var
))
return
0
;
z
->
c
=
z
->
l
-
m_test
;
}
switch
(
among_var
)
{
case
0
:
return
0
;
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
{
int
c
=
z
->
c
;
insert_s
(
z
,
z
->
c
,
z
->
c
,
1
,
s_8
);
/* <+, line 72 */
{
int
ret
;
{
int
c
=
z
->
c
;
ret
=
insert_s
(
z
,
z
->
c
,
z
->
c
,
1
,
s_9
);
/* <+, line 82 */
z
->
c
=
c
;
}
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
z
->
ket
=
z
->
c
;
/* [, line 75 */
if
(
z
->
c
<=
z
->
lb
)
return
0
;
z
->
c
--
;
/* next, line 75 */
z
->
bra
=
z
->
c
;
/* ], line 75 */
slice_del
(
z
);
/* delete, line 75 */
z
->
ket
=
z
->
c
;
/* [, line 85 */
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 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
3
:
if
(
z
->
c
!=
z
->
I
[
0
])
return
0
;
/* atmark, line 76 */
{
int
m_test
=
z
->
l
-
z
->
c
;
/* test, line 76 */
if
(
!
r_shortv
(
z
))
return
0
;
/* call shortv, line 76 */
if
(
z
->
c
!=
z
->
I
[
0
])
return
0
;
/* atmark, line 86 */
{
int
m_test
=
z
->
l
-
z
->
c
;
/* test, line 86 */
{
int
ret
=
r_shortv
(
z
);
if
(
ret
==
0
)
return
0
;
/* call shortv, line 86 */
if
(
ret
<
0
)
return
ret
;
}
z
->
c
=
z
->
l
-
m_test
;
}
{
int
c
=
z
->
c
;
insert_s
(
z
,
z
->
c
,
z
->
c
,
1
,
s_9
);
/* <+, line 76 */
{
int
ret
;
{
int
c
=
z
->
c
;
ret
=
insert_s
(
z
,
z
->
c
,
z
->
c
,
1
,
s_10
);
/* <+, line 86 */
z
->
c
=
c
;
}
if
(
ret
<
0
)
return
ret
;
}
break
;
}
break
;
...
...
@@ -642,451 +633,516 @@ r_Step_1b(struct SN_env * z)
return
1
;
}
static
int
r_Step_1c
(
struct
SN_env
*
z
)
{
z
->
ket
=
z
->
c
;
/* [, line 83 */
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 83 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_10
)))
goto
lab1
;
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 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_11
)))
goto
lab1
;
goto
lab0
;
lab1:
lab1:
z
->
c
=
z
->
l
-
m
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_11
)))
return
0
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_12
)))
return
0
;
}
lab0:
z
->
bra
=
z
->
c
;
/* ], line 83 */
if
(
!
(
out_grouping_b
(
z
,
g_v
,
97
,
121
)))
return
0
;
{
int
m
=
z
->
l
-
z
->
c
;
/* not, line 84 */
if
(
z
->
c
>
z
->
lb
)
goto
lab2
;
/* atlimit, line 84 */
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 */
return
0
;
lab2:
lab2:
z
->
c
=
z
->
l
-
m
;
}
slice_from_s
(
z
,
1
,
s_12
);
/* <-, line 85 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
1
,
s_13
);
/* <-, line 95 */
if
(
ret
<
0
)
return
ret
;
}
return
1
;
}
static
int
r_Step_2
(
struct
SN_env
*
z
)
{
static
int
r_Step_2
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 89 */
among_var
=
find_among_b
(
z
,
a_4
,
24
);
/* substring, line 89 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 89 */
if
(
!
r_R1
(
z
))
return
0
;
/* call R1, line 89 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 99 */
among_var
=
find_among_b
(
z
,
a_5
,
24
);
/* substring, line 99 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 99 */
{
int
ret
=
r_R1
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R1, line 99 */
if
(
ret
<
0
)
return
ret
;
}
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
slice_from_s
(
z
,
4
,
s_13
);
/* <-, line 90 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_14
);
/* <-, line 100 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
slice_from_s
(
z
,
4
,
s_14
);
/* <-, line 91 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_15
);
/* <-, line 101 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
3
:
slice_from_s
(
z
,
4
,
s_15
);
/* <-, line 92 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_16
);
/* <-, line 102 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
4
:
slice_from_s
(
z
,
4
,
s_16
);
/* <-, line 93 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_17
);
/* <-, line 103 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
5
:
slice_from_s
(
z
,
3
,
s_17
);
/* <-, line 94 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_18
);
/* <-, line 104 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
6
:
slice_from_s
(
z
,
3
,
s_18
);
/* <-, line 96 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_19
);
/* <-, line 106 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
7
:
slice_from_s
(
z
,
3
,
s_19
);
/* <-, line 98 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_20
);
/* <-, line 108 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
8
:
slice_from_s
(
z
,
2
,
s_20
);
/* <-, line 100 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_21
);
/* <-, line 110 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
9
:
slice_from_s
(
z
,
3
,
s_21
);
/* <-, line 101 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_22
);
/* <-, line 111 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
10
:
slice_from_s
(
z
,
3
,
s_22
);
/* <-, line 103 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_23
);
/* <-, line 113 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
11
:
slice_from_s
(
z
,
3
,
s_23
);
/* <-, line 105 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_24
);
/* <-, line 115 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
12
:
slice_from_s
(
z
,
3
,
s_24
);
/* <-, line 107 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_25
);
/* <-, line 117 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
13
:
if
(
!
(
eq_s_b
(
z
,
1
,
s_25
)))
return
0
;
slice_from_s
(
z
,
2
,
s_26
);
/* <-, line 108 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_26
)))
return
0
;
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_27
);
/* <-, line 118 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
14
:
slice_from_s
(
z
,
3
,
s_27
);
/* <-, line 109 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_28
);
/* <-, line 119 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
15
:
slice_from_s
(
z
,
4
,
s_28
);
/* <-, line 110 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_29
);
/* <-, line 120 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
16
:
if
(
!
(
in_grouping_b
(
z
,
g_valid_LI
,
99
,
116
)))
return
0
;
slice_del
(
z
);
/* delete, line 111 */
if
(
!
(
in_grouping_b
(
z
,
g_valid_LI
,
99
,
116
)))
return
0
;
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 121 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_Step_3
(
struct
SN_env
*
z
)
{
static
int
r_Step_3
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 116 */
among_var
=
find_among_b
(
z
,
a_5
,
9
);
/* substring, line 116 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 116 */
if
(
!
r_R1
(
z
))
return
0
;
/* call R1, line 116 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 126 */
among_var
=
find_among_b
(
z
,
a_6
,
9
);
/* substring, line 126 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 126 */
{
int
ret
=
r_R1
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R1, line 126 */
if
(
ret
<
0
)
return
ret
;
}
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
slice_from_s
(
z
,
4
,
s_29
);
/* <-, line 117 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_30
);
/* <-, line 127 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
slice_from_s
(
z
,
3
,
s_30
);
/* <-, line 118 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_31
);
/* <-, line 128 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
3
:
slice_from_s
(
z
,
2
,
s_31
);
/* <-, line 119 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_32
);
/* <-, line 129 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
4
:
slice_from_s
(
z
,
2
,
s_32
);
/* <-, line 121 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
2
,
s_33
);
/* <-, line 131 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
5
:
slice_del
(
z
);
/* delete, line 123 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 133 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
6
:
if
(
!
r_R2
(
z
))
return
0
;
/* call R2, line 125 */
slice_del
(
z
);
/* delete, line 125 */
{
int
ret
=
r_R2
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R2, line 135 */
if
(
ret
<
0
)
return
ret
;
}
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 135 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_Step_4
(
struct
SN_env
*
z
)
{
static
int
r_Step_4
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 130 */
among_var
=
find_among_b
(
z
,
a_6
,
18
);
/* substring, line 130 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 130 */
if
(
!
r_R2
(
z
))
return
0
;
/* call R2, line 130 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 140 */
among_var
=
find_among_b
(
z
,
a_7
,
18
);
/* substring, line 140 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 140 */
{
int
ret
=
r_R2
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R2, line 140 */
if
(
ret
<
0
)
return
ret
;
}
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
slice_del
(
z
);
/* delete, line 133 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 143 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 134 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_33
)))
goto
lab1
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* or, line 144 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_34
)))
goto
lab1
;
goto
lab0
;
lab1:
z
->
c
=
z
->
l
-
m
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_34
)))
return
0
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_35
)))
return
0
;
}
lab0:
slice_del
(
z
);
/* delete, line 134 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 144 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_Step_5
(
struct
SN_env
*
z
)
{
static
int
r_Step_5
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 139 */
among_var
=
find_among_b
(
z
,
a_7
,
2
);
/* substring, line 139 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 139 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 149 */
among_var
=
find_among_b
(
z
,
a_8
,
2
);
/* substring, line 149 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 149 */
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 140 */
if
(
!
r_R2
(
z
))
goto
lab1
;
/* call R2, line 140 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* or, line 150 */
{
int
ret
=
r_R2
(
z
);
if
(
ret
==
0
)
goto
lab1
;
/* call R2, line 150 */
if
(
ret
<
0
)
return
ret
;
}
goto
lab0
;
lab1:
z
->
c
=
z
->
l
-
m
;
if
(
!
r_R1
(
z
))
return
0
;
/* call R1, line 140 */
{
int
m
=
z
->
l
-
z
->
c
;
/* not, line 140 */
if
(
!
r_shortv
(
z
))
goto
lab2
;
/* call shortv, line 140 */
{
int
ret
=
r_R1
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R1, line 150 */
if
(
ret
<
0
)
return
ret
;
}
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* not, line 150 */
{
int
ret
=
r_shortv
(
z
);
if
(
ret
==
0
)
goto
lab2
;
/* call shortv, line 150 */
if
(
ret
<
0
)
return
ret
;
}
return
0
;
lab2:
z
->
c
=
z
->
l
-
m
;
}
}
lab0:
slice_del
(
z
);
/* delete, line 140 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 150 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
if
(
!
r_R2
(
z
))
return
0
;
/* call R2, line 141 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_35
)))
return
0
;
slice_del
(
z
);
/* delete, line 141 */
{
int
ret
=
r_R2
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R2, line 151 */
if
(
ret
<
0
)
return
ret
;
}
if
(
!
(
eq_s_b
(
z
,
1
,
s_36
)))
return
0
;
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 151 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_exception2
(
struct
SN_env
*
z
)
{
z
->
ket
=
z
->
c
;
/* [, line 147 */
if
(
!
(
find_among_b
(
z
,
a_8
,
8
)))
return
0
;
/* substring, line 147 */
z
->
bra
=
z
->
c
;
/* ], line 147 */
if
(
z
->
c
>
z
->
lb
)
return
0
;
/* atlimit, line 147 */
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 */
return
1
;
}
static
int
r_exception1
(
struct
SN_env
*
z
)
{
static
int
r_exception1
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
bra
=
z
->
c
;
/* [, line 159 */
among_var
=
find_among
(
z
,
a_9
,
18
);
/* substring, line 159 */
if
(
!
(
among_var
))
return
0
;
z
->
ket
=
z
->
c
;
/* ], line 159 */
if
(
z
->
c
<
z
->
l
)
return
0
;
/* atlimit, line 159 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
bra
=
z
->
c
;
/* [, line 169 */
among_var
=
find_among
(
z
,
a_10
,
18
);
/* substring, line 169 */
if
(
!
(
among_var
))
return
0
;
z
->
ket
=
z
->
c
;
/* ], line 169 */
if
(
z
->
c
<
z
->
l
)
return
0
;
/* atlimit, line 169 */
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
slice_from_s
(
z
,
3
,
s_36
);
/* <-, line 163 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_37
);
/* <-, line 173 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
slice_from_s
(
z
,
3
,
s_37
);
/* <-, line 164 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_38
);
/* <-, line 174 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
3
:
slice_from_s
(
z
,
3
,
s_38
);
/* <-, line 165 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_39
);
/* <-, line 175 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
4
:
slice_from_s
(
z
,
3
,
s_39
);
/* <-, line 166 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_40
);
/* <-, line 176 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
5
:
slice_from_s
(
z
,
3
,
s_40
);
/* <-, line 167 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_41
);
/* <-, line 177 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
6
:
slice_from_s
(
z
,
3
,
s_41
);
/* <-, line 171 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
3
,
s_42
);
/* <-, line 181 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
7
:
slice_from_s
(
z
,
5
,
s_42
);
/* <-, line 172 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
5
,
s_43
);
/* <-, line 182 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
8
:
slice_from_s
(
z
,
4
,
s_43
);
/* <-, line 173 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_44
);
/* <-, line 183 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
9
:
slice_from_s
(
z
,
5
,
s_44
);
/* <-, line 174 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
5
,
s_45
);
/* <-, line 184 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
10
:
slice_from_s
(
z
,
4
,
s_45
);
/* <-, line 175 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
4
,
s_46
);
/* <-, line 185 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
11
:
slice_from_s
(
z
,
5
,
s_46
);
/* <-, line 176 */
{
int
ret
;
ret
=
slice_from_s
(
z
,
5
,
s_47
);
/* <-, line 186 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_postlude
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
B
[
0
]))
return
0
;
/* Boolean test Y_found, line 192 */
while
(
1
)
{
/* repeat, line 192 */
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 192 */
while
(
1
)
{
/* goto, line 202 */
int
c
=
z
->
c
;
z
->
bra
=
z
->
c
;
/* [, line 192 */
if
(
!
(
eq_s
(
z
,
1
,
s_47
)))
goto
lab1
;
z
->
ket
=
z
->
c
;
/* ], line 192 */
z
->
bra
=
z
->
c
;
/* [, line 202 */
if
(
!
(
eq_s
(
z
,
1
,
s_48
)))
goto
lab1
;
z
->
ket
=
z
->
c
;
/* ], line 202 */
z
->
c
=
c
;
break
;
lab1:
z
->
c
=
c
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* goto, line 202 */
}
{
int
ret
;
ret
=
slice_from_s
(
z
,
1
,
s_49
);
/* <-, line 202 */
if
(
ret
<
0
)
return
ret
;
}
slice_from_s
(
z
,
1
,
s_48
);
/* <-, line 192 */
continue
;
lab0:
lab0:
z
->
c
=
c
;
break
;
}
return
1
;
}
extern
int
english_stem
(
struct
SN_env
*
z
)
{
{
int
c
=
z
->
c
;
/* or, line 196 */
if
(
!
r_exception1
(
z
))
goto
lab1
;
/* call exception1, line 196 */
extern
int
english_ISO_8859_1_stem
(
struct
SN_env
*
z
)
{
{
int
c
=
z
->
c
;
/* or, line 206 */
{
int
ret
=
r_exception1
(
z
);
if
(
ret
==
0
)
goto
lab1
;
/* call exception1, line 206 */
if
(
ret
<
0
)
return
ret
;
}
goto
lab0
;
lab1:
lab1:
z
->
c
=
c
;
{
int
c_test
=
z
->
c
;
/* test, line 198 */
{
int
c
=
z
->
c
+
3
;
if
(
0
>
c
||
c
>
z
->
l
)
return
0
;
z
->
c
=
c
;
/* hop, line 198 */
{
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
=
c_test
;
goto
lab2
;
lab3:
z
->
c
=
c
;
}
{
int
c
=
z
->
c
;
/* do, line 199 */
if
(
!
r_prelude
(
z
))
goto
lab2
;
/* call prelude, line 199 */
goto
lab0
;
lab2:
z
->
c
=
c
;
{
int
c
=
z
->
c
;
/* do, line 208 */
{
int
ret
=
r_prelude
(
z
);
if
(
ret
==
0
)
goto
lab4
;
/* call prelude, line 208 */
if
(
ret
<
0
)
return
ret
;
}
{
int
c
=
z
->
c
;
/* do, line 200 */
if
(
!
r_mark_regions
(
z
))
goto
lab3
;
/* call mark_regions, line 200 */
lab3:
lab4:
z
->
c
=
c
;
}
z
->
lb
=
z
->
c
;
z
->
c
=
z
->
l
;
/* backwards, line 201 */
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 203 */
if
(
!
r_Step_1a
(
z
))
goto
lab4
;
/* call Step_1a, line 203 */
lab4:
z
->
c
=
z
->
l
-
m
;
{
int
c
=
z
->
c
;
/* do, line 209 */
{
int
ret
=
r_mark_regions
(
z
);
if
(
ret
==
0
)
goto
lab5
;
/* call mark_regions, line 209 */
if
(
ret
<
0
)
return
ret
;
}
lab5:
z
->
c
=
c
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 205 */
z
->
lb
=
z
->
c
;
z
->
c
=
z
->
l
;
/* backwards, line 210 */
if
(
!
r_exception2
(
z
))
goto
lab6
;
/* call exception2, line 205 */
goto
lab5
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 212 */
{
int
ret
=
r_Step_1a
(
z
);
if
(
ret
==
0
)
goto
lab6
;
/* call Step_1a, line 212 */
if
(
ret
<
0
)
return
ret
;
}
lab6:
z
->
c
=
z
->
l
-
m
;
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 207 */
if
(
!
r_Step_1b
(
z
))
goto
lab7
;
/* call Step_1b, line 207 */
lab7:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 208 */
if
(
!
r_Step_1c
(
z
))
goto
lab8
;
/* call Step_1c, line 208 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* or, line 214 */
{
int
ret
=
r_exception2
(
z
);
if
(
ret
==
0
)
goto
lab8
;
/* call exception2, line 214 */
if
(
ret
<
0
)
return
ret
;
}
goto
lab7
;
lab8:
z
->
c
=
z
->
l
-
m
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 216 */
{
int
ret
=
r_Step_1b
(
z
);
if
(
ret
==
0
)
goto
lab9
;
/* call Step_1b, line 216 */
if
(
ret
<
0
)
return
ret
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 210 */
if
(
!
r_Step_2
(
z
))
goto
lab9
;
/* call Step_2, line 210 */
lab9:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 211 */
if
(
!
r_Step_3
(
z
))
goto
lab10
;
/* call Step_3, line 211 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 217 */
{
int
ret
=
r_Step_1c
(
z
);
if
(
ret
==
0
)
goto
lab10
;
/* call Step_1c, line 217 */
if
(
ret
<
0
)
return
ret
;
}
lab10:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 212 */
if
(
!
r_Step_4
(
z
))
goto
lab11
;
/* call Step_4, line 212 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 219 */
{
int
ret
=
r_Step_2
(
z
);
if
(
ret
==
0
)
goto
lab11
;
/* call Step_2, line 219 */
if
(
ret
<
0
)
return
ret
;
}
lab11:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 214 */
if
(
!
r_Step_5
(
z
))
goto
lab12
;
/* call Step_5, line 214 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 220 */
{
int
ret
=
r_Step_3
(
z
);
if
(
ret
==
0
)
goto
lab12
;
/* call Step_3, line 220 */
if
(
ret
<
0
)
return
ret
;
}
lab12:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 221 */
{
int
ret
=
r_Step_4
(
z
);
if
(
ret
==
0
)
goto
lab13
;
/* call Step_4, line 221 */
if
(
ret
<
0
)
return
ret
;
}
lab5:
z
->
c
=
z
->
lb
;
{
int
c
=
z
->
c
;
/* do, line 217 */
if
(
!
r_postlude
(
z
))
goto
lab13
;
/* call postlude, line 217 */
lab13:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 223 */
{
int
ret
=
r_Step_5
(
z
);
if
(
ret
==
0
)
goto
lab14
;
/* call Step_5, line 223 */
if
(
ret
<
0
)
return
ret
;
}
lab14:
z
->
c
=
z
->
l
-
m
;
}
}
lab7:
z
->
c
=
z
->
lb
;
{
int
c
=
z
->
c
;
/* do, line 226 */
{
int
ret
=
r_postlude
(
z
);
if
(
ret
==
0
)
goto
lab15
;
/* call postlude, line 226 */
if
(
ret
<
0
)
return
ret
;
}
lab15:
z
->
c
=
c
;
}
}
...
...
@@ -1094,14 +1150,7 @@ lab0:
return
1
;
}
extern
struct
SN_env
*
english_create_env
(
void
)
{
return
SN_create_env
(
0
,
2
,
1
);
}
extern
struct
SN_env
*
english_ISO_8859_1_create_env
(
void
)
{
return
SN_create_env
(
0
,
2
,
1
);
}
extern
void
english_ISO_8859_1_close_env
(
struct
SN_env
*
z
)
{
SN_close_env
(
z
);
}
extern
void
english_close_env
(
struct
SN_env
*
z
)
{
SN_close_env
(
z
);
}
contrib/tsearch2/snowball/english_stem.h
View file @
f82b853b
/* This file was generated automatically by the Snowball to ANSI C compiler */
extern
struct
SN_env
*
english_create_env
(
void
);
extern
void
english_close_env
(
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
);
extern
int
english_ISO_8859_1_stem
(
struct
SN_env
*
z
);
#ifdef __cplusplus
}
#endif
extern
int
english_stem
(
struct
SN_env
*
z
);
contrib/tsearch2/snowball/header.h
View file @
f82b853b
#include <limits.h>
#include "api.h"
#define MAXINT INT_MAX
#define MININT INT_MIN
#define HEAD 2*sizeof(int)
#define SIZE(p) ((int *)(p))[-1]
...
...
@@ -7,26 +13,27 @@
#define CAPACITY(p) ((int *)(p))[-2]
struct
among
{
int
s_size
;
/* number of chars in string */
symbol
*
s
;
/* search string */
int
substring_i
;
/* index to longest matching substring */
{
int
s_size
;
/* number of chars in string */
symbol
*
s
;
/* search string */
int
substring_i
;
/* index to longest matching substring */
int
result
;
/* result of the lookup */
int
(
*
function
)
(
struct
SN_env
*
);
int
(
*
function
)
(
struct
SN_env
*
);
};
extern
symbol
*
create_s
(
void
);
extern
symbol
*
create_s
(
void
);
extern
void
lose_s
(
symbol
*
p
);
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
skip_utf8
(
const
symbol
*
p
,
int
c
,
int
lb
,
int
l
,
int
n
);
extern
int
in_range
(
struct
SN_env
*
z
,
int
min
,
int
max
);
extern
int
in_range_b
(
struct
SN_env
*
z
,
int
min
,
int
max
);
extern
int
out_range
(
struct
SN_env
*
z
,
int
min
,
int
max
);
extern
int
out_range_b
(
struct
SN_env
*
z
,
int
min
,
int
max
);
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
(
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
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
);
...
...
@@ -36,16 +43,16 @@ extern int eq_v_b(struct SN_env * z, 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
symbol
*
increase_size
(
symbol
*
p
,
int
n
);
extern
int
replace_s
(
struct
SN_env
*
z
,
int
c_bra
,
int
c_ket
,
int
s_size
,
const
symbol
*
s
);
extern
void
slice_from_s
(
struct
SN_env
*
z
,
int
s_size
,
symbol
*
s
);
extern
void
slice_from_v
(
struct
SN_env
*
z
,
symbol
*
p
);
extern
void
slice_del
(
struct
SN_env
*
z
);
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_del
(
struct
SN_env
*
z
);
extern
void
insert_s
(
struct
SN_env
*
z
,
int
bra
,
int
ket
,
int
s_size
,
symbol
*
s
);
extern
void
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
,
symbol
*
s
);
extern
int
insert_v
(
struct
SN_env
*
z
,
int
bra
,
int
ket
,
symbol
*
p
);
extern
symbol
*
slice_to
(
struct
SN_env
*
z
,
symbol
*
p
);
extern
symbol
*
assign_to
(
struct
SN_env
*
z
,
symbol
*
p
);
extern
symbol
*
slice_to
(
struct
SN_env
*
z
,
symbol
*
p
);
extern
symbol
*
assign_to
(
struct
SN_env
*
z
,
symbol
*
p
);
extern
void
debug
(
struct
SN_env
*
z
,
int
number
,
int
line_count
);
contrib/tsearch2/snowball/russian_stem.c
View file @
f82b853b
...
...
@@ -3,7 +3,7 @@
#include "header.h"
extern
int
russian
_stem
(
struct
SN_env
*
z
);
extern
int
russian_KOI8_R
_stem
(
struct
SN_env
*
z
);
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
);
...
...
@@ -15,700 +15,645 @@ 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
);
extern
struct
SN_env
*
russian
_create_env
(
void
);
extern
void
russian_close_env
(
struct
SN_env
*
z
);
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
]
=
{
215
,
219
,
201
};
static
symbol
s_0_1
[
4
]
=
{
201
,
215
,
219
,
201
};
static
symbol
s_0_2
[
4
]
=
{
217
,
215
,
219
,
201
};
static
symbol
s_0_3
[
1
]
=
{
215
};
static
symbol
s_0_4
[
2
]
=
{
201
,
215
};
static
symbol
s_0_5
[
2
]
=
{
217
,
215
};
static
symbol
s_0_6
[
5
]
=
{
215
,
219
,
201
,
211
,
216
};
static
symbol
s_0_7
[
6
]
=
{
201
,
215
,
219
,
201
,
211
,
216
};
static
symbol
s_0_8
[
6
]
=
{
217
,
215
,
219
,
201
,
211
,
216
};
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
]
=
{
/* 0 */
{
3
,
s_0_0
,
-
1
,
1
,
0
},
/* 1 */
{
4
,
s_0_1
,
0
,
2
,
0
},
/* 2 */
{
4
,
s_0_2
,
0
,
2
,
0
},
/* 3 */
{
1
,
s_0_3
,
-
1
,
1
,
0
},
/* 4 */
{
2
,
s_0_4
,
3
,
2
,
0
},
/* 5 */
{
2
,
s_0_5
,
3
,
2
,
0
},
/* 6 */
{
5
,
s_0_6
,
-
1
,
1
,
0
},
/* 7 */
{
6
,
s_0_7
,
6
,
2
,
0
},
/* 8 */
{
6
,
s_0_8
,
6
,
2
,
0
}
/* 0 */
{
3
,
s_0_0
,
-
1
,
1
,
0
},
/* 1 */
{
4
,
s_0_1
,
0
,
2
,
0
},
/* 2 */
{
4
,
s_0_2
,
0
,
2
,
0
},
/* 3 */
{
1
,
s_0_3
,
-
1
,
1
,
0
},
/* 4 */
{
2
,
s_0_4
,
3
,
2
,
0
},
/* 5 */
{
2
,
s_0_5
,
3
,
2
,
0
},
/* 6 */
{
5
,
s_0_6
,
-
1
,
1
,
0
},
/* 7 */
{
6
,
s_0_7
,
6
,
2
,
0
},
/* 8 */
{
6
,
s_0_8
,
6
,
2
,
0
}
};
static
symbol
s_1_0
[
2
]
=
{
192
,
192
};
static
symbol
s_1_1
[
2
]
=
{
197
,
192
};
static
symbol
s_1_2
[
2
]
=
{
207
,
192
};
static
symbol
s_1_3
[
2
]
=
{
213
,
192
};
static
symbol
s_1_4
[
2
]
=
{
197
,
197
};
static
symbol
s_1_5
[
2
]
=
{
201
,
197
};
static
symbol
s_1_6
[
2
]
=
{
207
,
197
};
static
symbol
s_1_7
[
2
]
=
{
217
,
197
};
static
symbol
s_1_8
[
2
]
=
{
201
,
200
};
static
symbol
s_1_9
[
2
]
=
{
217
,
200
};
static
symbol
s_1_10
[
3
]
=
{
201
,
205
,
201
};
static
symbol
s_1_11
[
3
]
=
{
217
,
205
,
201
};
static
symbol
s_1_12
[
2
]
=
{
197
,
202
};
static
symbol
s_1_13
[
2
]
=
{
201
,
202
};
static
symbol
s_1_14
[
2
]
=
{
207
,
202
};
static
symbol
s_1_15
[
2
]
=
{
217
,
202
};
static
symbol
s_1_16
[
2
]
=
{
197
,
205
};
static
symbol
s_1_17
[
2
]
=
{
201
,
205
};
static
symbol
s_1_18
[
2
]
=
{
207
,
205
};
static
symbol
s_1_19
[
2
]
=
{
217
,
205
};
static
symbol
s_1_20
[
3
]
=
{
197
,
199
,
207
};
static
symbol
s_1_21
[
3
]
=
{
207
,
199
,
207
};
static
symbol
s_1_22
[
2
]
=
{
193
,
209
};
static
symbol
s_1_23
[
2
]
=
{
209
,
209
};
static
symbol
s_1_24
[
3
]
=
{
197
,
205
,
213
};
static
symbol
s_1_25
[
3
]
=
{
207
,
205
,
213
};
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
]
=
{
/* 0 */
{
2
,
s_1_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_1_1
,
-
1
,
1
,
0
},
/* 2 */
{
2
,
s_1_2
,
-
1
,
1
,
0
},
/* 3 */
{
2
,
s_1_3
,
-
1
,
1
,
0
},
/* 4 */
{
2
,
s_1_4
,
-
1
,
1
,
0
},
/* 5 */
{
2
,
s_1_5
,
-
1
,
1
,
0
},
/* 6 */
{
2
,
s_1_6
,
-
1
,
1
,
0
},
/* 7 */
{
2
,
s_1_7
,
-
1
,
1
,
0
},
/* 8 */
{
2
,
s_1_8
,
-
1
,
1
,
0
},
/* 9 */
{
2
,
s_1_9
,
-
1
,
1
,
0
},
/* 10 */
{
3
,
s_1_10
,
-
1
,
1
,
0
},
/* 11 */
{
3
,
s_1_11
,
-
1
,
1
,
0
},
/* 12 */
{
2
,
s_1_12
,
-
1
,
1
,
0
},
/* 13 */
{
2
,
s_1_13
,
-
1
,
1
,
0
},
/* 14 */
{
2
,
s_1_14
,
-
1
,
1
,
0
},
/* 15 */
{
2
,
s_1_15
,
-
1
,
1
,
0
},
/* 16 */
{
2
,
s_1_16
,
-
1
,
1
,
0
},
/* 17 */
{
2
,
s_1_17
,
-
1
,
1
,
0
},
/* 18 */
{
2
,
s_1_18
,
-
1
,
1
,
0
},
/* 19 */
{
2
,
s_1_19
,
-
1
,
1
,
0
},
/* 20 */
{
3
,
s_1_20
,
-
1
,
1
,
0
},
/* 21 */
{
3
,
s_1_21
,
-
1
,
1
,
0
},
/* 22 */
{
2
,
s_1_22
,
-
1
,
1
,
0
},
/* 23 */
{
2
,
s_1_23
,
-
1
,
1
,
0
},
/* 24 */
{
3
,
s_1_24
,
-
1
,
1
,
0
},
/* 25 */
{
3
,
s_1_25
,
-
1
,
1
,
0
}
/* 0 */
{
2
,
s_1_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_1_1
,
-
1
,
1
,
0
},
/* 2 */
{
2
,
s_1_2
,
-
1
,
1
,
0
},
/* 3 */
{
2
,
s_1_3
,
-
1
,
1
,
0
},
/* 4 */
{
2
,
s_1_4
,
-
1
,
1
,
0
},
/* 5 */
{
2
,
s_1_5
,
-
1
,
1
,
0
},
/* 6 */
{
2
,
s_1_6
,
-
1
,
1
,
0
},
/* 7 */
{
2
,
s_1_7
,
-
1
,
1
,
0
},
/* 8 */
{
2
,
s_1_8
,
-
1
,
1
,
0
},
/* 9 */
{
2
,
s_1_9
,
-
1
,
1
,
0
},
/* 10 */
{
3
,
s_1_10
,
-
1
,
1
,
0
},
/* 11 */
{
3
,
s_1_11
,
-
1
,
1
,
0
},
/* 12 */
{
2
,
s_1_12
,
-
1
,
1
,
0
},
/* 13 */
{
2
,
s_1_13
,
-
1
,
1
,
0
},
/* 14 */
{
2
,
s_1_14
,
-
1
,
1
,
0
},
/* 15 */
{
2
,
s_1_15
,
-
1
,
1
,
0
},
/* 16 */
{
2
,
s_1_16
,
-
1
,
1
,
0
},
/* 17 */
{
2
,
s_1_17
,
-
1
,
1
,
0
},
/* 18 */
{
2
,
s_1_18
,
-
1
,
1
,
0
},
/* 19 */
{
2
,
s_1_19
,
-
1
,
1
,
0
},
/* 20 */
{
3
,
s_1_20
,
-
1
,
1
,
0
},
/* 21 */
{
3
,
s_1_21
,
-
1
,
1
,
0
},
/* 22 */
{
2
,
s_1_22
,
-
1
,
1
,
0
},
/* 23 */
{
2
,
s_1_23
,
-
1
,
1
,
0
},
/* 24 */
{
3
,
s_1_24
,
-
1
,
1
,
0
},
/* 25 */
{
3
,
s_1_25
,
-
1
,
1
,
0
}
};
static
symbol
s_2_0
[
2
]
=
{
197
,
205
};
static
symbol
s_2_1
[
2
]
=
{
206
,
206
};
static
symbol
s_2_2
[
2
]
=
{
215
,
219
};
static
symbol
s_2_3
[
3
]
=
{
201
,
215
,
219
};
static
symbol
s_2_4
[
3
]
=
{
217
,
215
,
219
};
static
symbol
s_2_5
[
1
]
=
{
221
};
static
symbol
s_2_6
[
2
]
=
{
192
,
221
};
static
symbol
s_2_7
[
3
]
=
{
213
,
192
,
221
};
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
struct
among
a_2
[
8
]
=
{
/* 0 */
{
2
,
s_2_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_2_1
,
-
1
,
1
,
0
},
/* 2 */
{
2
,
s_2_2
,
-
1
,
1
,
0
},
/* 3 */
{
3
,
s_2_3
,
2
,
2
,
0
},
/* 4 */
{
3
,
s_2_4
,
2
,
2
,
0
},
/* 5 */
{
1
,
s_2_5
,
-
1
,
1
,
0
},
/* 6 */
{
2
,
s_2_6
,
5
,
1
,
0
},
/* 7 */
{
3
,
s_2_7
,
6
,
2
,
0
}
/* 0 */
{
2
,
s_2_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_2_1
,
-
1
,
1
,
0
},
/* 2 */
{
2
,
s_2_2
,
-
1
,
1
,
0
},
/* 3 */
{
3
,
s_2_3
,
2
,
2
,
0
},
/* 4 */
{
3
,
s_2_4
,
2
,
2
,
0
},
/* 5 */
{
1
,
s_2_5
,
-
1
,
1
,
0
},
/* 6 */
{
2
,
s_2_6
,
5
,
1
,
0
},
/* 7 */
{
3
,
s_2_7
,
6
,
2
,
0
}
};
static
symbol
s_3_0
[
2
]
=
{
211
,
209
};
static
symbol
s_3_1
[
2
]
=
{
211
,
216
};
static
symbol
s_3_0
[
2
]
=
{
0xD3
,
0xD1
};
static
symbol
s_3_1
[
2
]
=
{
0xD3
,
0xD8
};
static
struct
among
a_3
[
2
]
=
{
/* 0 */
{
2
,
s_3_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_3_1
,
-
1
,
1
,
0
}
/* 0 */
{
2
,
s_3_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_3_1
,
-
1
,
1
,
0
}
};
static
symbol
s_4_0
[
1
]
=
{
192
};
static
symbol
s_4_1
[
2
]
=
{
213
,
192
};
static
symbol
s_4_2
[
2
]
=
{
204
,
193
};
static
symbol
s_4_3
[
3
]
=
{
201
,
204
,
193
};
static
symbol
s_4_4
[
3
]
=
{
217
,
204
,
193
};
static
symbol
s_4_5
[
2
]
=
{
206
,
193
};
static
symbol
s_4_6
[
3
]
=
{
197
,
206
,
193
};
static
symbol
s_4_7
[
3
]
=
{
197
,
212
,
197
};
static
symbol
s_4_8
[
3
]
=
{
201
,
212
,
197
};
static
symbol
s_4_9
[
3
]
=
{
202
,
212
,
197
};
static
symbol
s_4_10
[
4
]
=
{
197
,
202
,
212
,
197
};
static
symbol
s_4_11
[
4
]
=
{
213
,
202
,
212
,
197
};
static
symbol
s_4_12
[
2
]
=
{
204
,
201
};
static
symbol
s_4_13
[
3
]
=
{
201
,
204
,
201
};
static
symbol
s_4_14
[
3
]
=
{
217
,
204
,
201
};
static
symbol
s_4_15
[
1
]
=
{
202
};
static
symbol
s_4_16
[
2
]
=
{
197
,
202
};
static
symbol
s_4_17
[
2
]
=
{
213
,
202
};
static
symbol
s_4_18
[
1
]
=
{
204
};
static
symbol
s_4_19
[
2
]
=
{
201
,
204
};
static
symbol
s_4_20
[
2
]
=
{
217
,
204
};
static
symbol
s_4_21
[
2
]
=
{
197
,
205
};
static
symbol
s_4_22
[
2
]
=
{
201
,
205
};
static
symbol
s_4_23
[
2
]
=
{
217
,
205
};
static
symbol
s_4_24
[
1
]
=
{
206
};
static
symbol
s_4_25
[
2
]
=
{
197
,
206
};
static
symbol
s_4_26
[
2
]
=
{
204
,
207
};
static
symbol
s_4_27
[
3
]
=
{
201
,
204
,
207
};
static
symbol
s_4_28
[
3
]
=
{
217
,
204
,
207
};
static
symbol
s_4_29
[
2
]
=
{
206
,
207
};
static
symbol
s_4_30
[
3
]
=
{
197
,
206
,
207
};
static
symbol
s_4_31
[
3
]
=
{
206
,
206
,
207
};
static
symbol
s_4_32
[
2
]
=
{
192
,
212
};
static
symbol
s_4_33
[
3
]
=
{
213
,
192
,
212
};
static
symbol
s_4_34
[
2
]
=
{
197
,
212
};
static
symbol
s_4_35
[
3
]
=
{
213
,
197
,
212
};
static
symbol
s_4_36
[
2
]
=
{
201
,
212
};
static
symbol
s_4_37
[
2
]
=
{
209
,
212
};
static
symbol
s_4_38
[
2
]
=
{
217
,
212
};
static
symbol
s_4_39
[
2
]
=
{
212
,
216
};
static
symbol
s_4_40
[
3
]
=
{
201
,
212
,
216
};
static
symbol
s_4_41
[
3
]
=
{
217
,
212
,
216
};
static
symbol
s_4_42
[
3
]
=
{
197
,
219
,
216
};
static
symbol
s_4_43
[
3
]
=
{
201
,
219
,
216
};
static
symbol
s_4_44
[
2
]
=
{
206
,
217
};
static
symbol
s_4_45
[
3
]
=
{
197
,
206
,
217
};
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
]
=
{
/* 0 */
{
1
,
s_4_0
,
-
1
,
2
,
0
},
/* 1 */
{
2
,
s_4_1
,
0
,
2
,
0
},
/* 2 */
{
2
,
s_4_2
,
-
1
,
1
,
0
},
/* 3 */
{
3
,
s_4_3
,
2
,
2
,
0
},
/* 4 */
{
3
,
s_4_4
,
2
,
2
,
0
},
/* 5 */
{
2
,
s_4_5
,
-
1
,
1
,
0
},
/* 6 */
{
3
,
s_4_6
,
5
,
2
,
0
},
/* 7 */
{
3
,
s_4_7
,
-
1
,
1
,
0
},
/* 8 */
{
3
,
s_4_8
,
-
1
,
2
,
0
},
/* 9 */
{
3
,
s_4_9
,
-
1
,
1
,
0
},
/* 10 */
{
4
,
s_4_10
,
9
,
2
,
0
},
/* 11 */
{
4
,
s_4_11
,
9
,
2
,
0
},
/* 12 */
{
2
,
s_4_12
,
-
1
,
1
,
0
},
/* 13 */
{
3
,
s_4_13
,
12
,
2
,
0
},
/* 14 */
{
3
,
s_4_14
,
12
,
2
,
0
},
/* 15 */
{
1
,
s_4_15
,
-
1
,
1
,
0
},
/* 16 */
{
2
,
s_4_16
,
15
,
2
,
0
},
/* 17 */
{
2
,
s_4_17
,
15
,
2
,
0
},
/* 18 */
{
1
,
s_4_18
,
-
1
,
1
,
0
},
/* 19 */
{
2
,
s_4_19
,
18
,
2
,
0
},
/* 20 */
{
2
,
s_4_20
,
18
,
2
,
0
},
/* 21 */
{
2
,
s_4_21
,
-
1
,
1
,
0
},
/* 22 */
{
2
,
s_4_22
,
-
1
,
2
,
0
},
/* 23 */
{
2
,
s_4_23
,
-
1
,
2
,
0
},
/* 24 */
{
1
,
s_4_24
,
-
1
,
1
,
0
},
/* 25 */
{
2
,
s_4_25
,
24
,
2
,
0
},
/* 26 */
{
2
,
s_4_26
,
-
1
,
1
,
0
},
/* 27 */
{
3
,
s_4_27
,
26
,
2
,
0
},
/* 28 */
{
3
,
s_4_28
,
26
,
2
,
0
},
/* 29 */
{
2
,
s_4_29
,
-
1
,
1
,
0
},
/* 30 */
{
3
,
s_4_30
,
29
,
2
,
0
},
/* 31 */
{
3
,
s_4_31
,
29
,
1
,
0
},
/* 32 */
{
2
,
s_4_32
,
-
1
,
1
,
0
},
/* 33 */
{
3
,
s_4_33
,
32
,
2
,
0
},
/* 34 */
{
2
,
s_4_34
,
-
1
,
1
,
0
},
/* 35 */
{
3
,
s_4_35
,
34
,
2
,
0
},
/* 36 */
{
2
,
s_4_36
,
-
1
,
2
,
0
},
/* 37 */
{
2
,
s_4_37
,
-
1
,
2
,
0
},
/* 38 */
{
2
,
s_4_38
,
-
1
,
2
,
0
},
/* 39 */
{
2
,
s_4_39
,
-
1
,
1
,
0
},
/* 40 */
{
3
,
s_4_40
,
39
,
2
,
0
},
/* 41 */
{
3
,
s_4_41
,
39
,
2
,
0
},
/* 42 */
{
3
,
s_4_42
,
-
1
,
1
,
0
},
/* 43 */
{
3
,
s_4_43
,
-
1
,
2
,
0
},
/* 44 */
{
2
,
s_4_44
,
-
1
,
1
,
0
},
/* 45 */
{
3
,
s_4_45
,
44
,
2
,
0
}
/* 0 */
{
1
,
s_4_0
,
-
1
,
2
,
0
},
/* 1 */
{
2
,
s_4_1
,
0
,
2
,
0
},
/* 2 */
{
2
,
s_4_2
,
-
1
,
1
,
0
},
/* 3 */
{
3
,
s_4_3
,
2
,
2
,
0
},
/* 4 */
{
3
,
s_4_4
,
2
,
2
,
0
},
/* 5 */
{
2
,
s_4_5
,
-
1
,
1
,
0
},
/* 6 */
{
3
,
s_4_6
,
5
,
2
,
0
},
/* 7 */
{
3
,
s_4_7
,
-
1
,
1
,
0
},
/* 8 */
{
3
,
s_4_8
,
-
1
,
2
,
0
},
/* 9 */
{
3
,
s_4_9
,
-
1
,
1
,
0
},
/* 10 */
{
4
,
s_4_10
,
9
,
2
,
0
},
/* 11 */
{
4
,
s_4_11
,
9
,
2
,
0
},
/* 12 */
{
2
,
s_4_12
,
-
1
,
1
,
0
},
/* 13 */
{
3
,
s_4_13
,
12
,
2
,
0
},
/* 14 */
{
3
,
s_4_14
,
12
,
2
,
0
},
/* 15 */
{
1
,
s_4_15
,
-
1
,
1
,
0
},
/* 16 */
{
2
,
s_4_16
,
15
,
2
,
0
},
/* 17 */
{
2
,
s_4_17
,
15
,
2
,
0
},
/* 18 */
{
1
,
s_4_18
,
-
1
,
1
,
0
},
/* 19 */
{
2
,
s_4_19
,
18
,
2
,
0
},
/* 20 */
{
2
,
s_4_20
,
18
,
2
,
0
},
/* 21 */
{
2
,
s_4_21
,
-
1
,
1
,
0
},
/* 22 */
{
2
,
s_4_22
,
-
1
,
2
,
0
},
/* 23 */
{
2
,
s_4_23
,
-
1
,
2
,
0
},
/* 24 */
{
1
,
s_4_24
,
-
1
,
1
,
0
},
/* 25 */
{
2
,
s_4_25
,
24
,
2
,
0
},
/* 26 */
{
2
,
s_4_26
,
-
1
,
1
,
0
},
/* 27 */
{
3
,
s_4_27
,
26
,
2
,
0
},
/* 28 */
{
3
,
s_4_28
,
26
,
2
,
0
},
/* 29 */
{
2
,
s_4_29
,
-
1
,
1
,
0
},
/* 30 */
{
3
,
s_4_30
,
29
,
2
,
0
},
/* 31 */
{
3
,
s_4_31
,
29
,
1
,
0
},
/* 32 */
{
2
,
s_4_32
,
-
1
,
1
,
0
},
/* 33 */
{
3
,
s_4_33
,
32
,
2
,
0
},
/* 34 */
{
2
,
s_4_34
,
-
1
,
1
,
0
},
/* 35 */
{
3
,
s_4_35
,
34
,
2
,
0
},
/* 36 */
{
2
,
s_4_36
,
-
1
,
2
,
0
},
/* 37 */
{
2
,
s_4_37
,
-
1
,
2
,
0
},
/* 38 */
{
2
,
s_4_38
,
-
1
,
2
,
0
},
/* 39 */
{
2
,
s_4_39
,
-
1
,
1
,
0
},
/* 40 */
{
3
,
s_4_40
,
39
,
2
,
0
},
/* 41 */
{
3
,
s_4_41
,
39
,
2
,
0
},
/* 42 */
{
3
,
s_4_42
,
-
1
,
1
,
0
},
/* 43 */
{
3
,
s_4_43
,
-
1
,
2
,
0
},
/* 44 */
{
2
,
s_4_44
,
-
1
,
1
,
0
},
/* 45 */
{
3
,
s_4_45
,
44
,
2
,
0
}
};
static
symbol
s_5_0
[
1
]
=
{
192
};
static
symbol
s_5_1
[
2
]
=
{
201
,
192
};
static
symbol
s_5_2
[
2
]
=
{
216
,
192
};
static
symbol
s_5_3
[
1
]
=
{
193
};
static
symbol
s_5_4
[
1
]
=
{
197
};
static
symbol
s_5_5
[
2
]
=
{
201
,
197
};
static
symbol
s_5_6
[
2
]
=
{
216
,
197
};
static
symbol
s_5_7
[
2
]
=
{
193
,
200
};
static
symbol
s_5_8
[
2
]
=
{
209
,
200
};
static
symbol
s_5_9
[
3
]
=
{
201
,
209
,
200
};
static
symbol
s_5_10
[
1
]
=
{
201
};
static
symbol
s_5_11
[
2
]
=
{
197
,
201
};
static
symbol
s_5_12
[
2
]
=
{
201
,
201
};
static
symbol
s_5_13
[
3
]
=
{
193
,
205
,
201
};
static
symbol
s_5_14
[
3
]
=
{
209
,
205
,
201
};
static
symbol
s_5_15
[
4
]
=
{
201
,
209
,
205
,
201
};
static
symbol
s_5_16
[
1
]
=
{
202
};
static
symbol
s_5_17
[
2
]
=
{
197
,
202
};
static
symbol
s_5_18
[
3
]
=
{
201
,
197
,
202
};
static
symbol
s_5_19
[
2
]
=
{
201
,
202
};
static
symbol
s_5_20
[
2
]
=
{
207
,
202
};
static
symbol
s_5_21
[
2
]
=
{
193
,
205
};
static
symbol
s_5_22
[
2
]
=
{
197
,
205
};
static
symbol
s_5_23
[
3
]
=
{
201
,
197
,
205
};
static
symbol
s_5_24
[
2
]
=
{
207
,
205
};
static
symbol
s_5_25
[
2
]
=
{
209
,
205
};
static
symbol
s_5_26
[
3
]
=
{
201
,
209
,
205
};
static
symbol
s_5_27
[
1
]
=
{
207
};
static
symbol
s_5_28
[
1
]
=
{
209
};
static
symbol
s_5_29
[
2
]
=
{
201
,
209
};
static
symbol
s_5_30
[
2
]
=
{
216
,
209
};
static
symbol
s_5_31
[
1
]
=
{
213
};
static
symbol
s_5_32
[
2
]
=
{
197
,
215
};
static
symbol
s_5_33
[
2
]
=
{
207
,
215
};
static
symbol
s_5_34
[
1
]
=
{
216
};
static
symbol
s_5_35
[
1
]
=
{
217
};
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
]
=
{
/* 0 */
{
1
,
s_5_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_5_1
,
0
,
1
,
0
},
/* 2 */
{
2
,
s_5_2
,
0
,
1
,
0
},
/* 3 */
{
1
,
s_5_3
,
-
1
,
1
,
0
},
/* 4 */
{
1
,
s_5_4
,
-
1
,
1
,
0
},
/* 5 */
{
2
,
s_5_5
,
4
,
1
,
0
},
/* 6 */
{
2
,
s_5_6
,
4
,
1
,
0
},
/* 7 */
{
2
,
s_5_7
,
-
1
,
1
,
0
},
/* 8 */
{
2
,
s_5_8
,
-
1
,
1
,
0
},
/* 9 */
{
3
,
s_5_9
,
8
,
1
,
0
},
/* 10 */
{
1
,
s_5_10
,
-
1
,
1
,
0
},
/* 11 */
{
2
,
s_5_11
,
10
,
1
,
0
},
/* 12 */
{
2
,
s_5_12
,
10
,
1
,
0
},
/* 13 */
{
3
,
s_5_13
,
10
,
1
,
0
},
/* 14 */
{
3
,
s_5_14
,
10
,
1
,
0
},
/* 15 */
{
4
,
s_5_15
,
14
,
1
,
0
},
/* 16 */
{
1
,
s_5_16
,
-
1
,
1
,
0
},
/* 17 */
{
2
,
s_5_17
,
16
,
1
,
0
},
/* 18 */
{
3
,
s_5_18
,
17
,
1
,
0
},
/* 19 */
{
2
,
s_5_19
,
16
,
1
,
0
},
/* 20 */
{
2
,
s_5_20
,
16
,
1
,
0
},
/* 21 */
{
2
,
s_5_21
,
-
1
,
1
,
0
},
/* 22 */
{
2
,
s_5_22
,
-
1
,
1
,
0
},
/* 23 */
{
3
,
s_5_23
,
22
,
1
,
0
},
/* 24 */
{
2
,
s_5_24
,
-
1
,
1
,
0
},
/* 25 */
{
2
,
s_5_25
,
-
1
,
1
,
0
},
/* 26 */
{
3
,
s_5_26
,
25
,
1
,
0
},
/* 27 */
{
1
,
s_5_27
,
-
1
,
1
,
0
},
/* 28 */
{
1
,
s_5_28
,
-
1
,
1
,
0
},
/* 29 */
{
2
,
s_5_29
,
28
,
1
,
0
},
/* 30 */
{
2
,
s_5_30
,
28
,
1
,
0
},
/* 31 */
{
1
,
s_5_31
,
-
1
,
1
,
0
},
/* 32 */
{
2
,
s_5_32
,
-
1
,
1
,
0
},
/* 33 */
{
2
,
s_5_33
,
-
1
,
1
,
0
},
/* 34 */
{
1
,
s_5_34
,
-
1
,
1
,
0
},
/* 35 */
{
1
,
s_5_35
,
-
1
,
1
,
0
}
/* 0 */
{
1
,
s_5_0
,
-
1
,
1
,
0
},
/* 1 */
{
2
,
s_5_1
,
0
,
1
,
0
},
/* 2 */
{
2
,
s_5_2
,
0
,
1
,
0
},
/* 3 */
{
1
,
s_5_3
,
-
1
,
1
,
0
},
/* 4 */
{
1
,
s_5_4
,
-
1
,
1
,
0
},
/* 5 */
{
2
,
s_5_5
,
4
,
1
,
0
},
/* 6 */
{
2
,
s_5_6
,
4
,
1
,
0
},
/* 7 */
{
2
,
s_5_7
,
-
1
,
1
,
0
},
/* 8 */
{
2
,
s_5_8
,
-
1
,
1
,
0
},
/* 9 */
{
3
,
s_5_9
,
8
,
1
,
0
},
/* 10 */
{
1
,
s_5_10
,
-
1
,
1
,
0
},
/* 11 */
{
2
,
s_5_11
,
10
,
1
,
0
},
/* 12 */
{
2
,
s_5_12
,
10
,
1
,
0
},
/* 13 */
{
3
,
s_5_13
,
10
,
1
,
0
},
/* 14 */
{
3
,
s_5_14
,
10
,
1
,
0
},
/* 15 */
{
4
,
s_5_15
,
14
,
1
,
0
},
/* 16 */
{
1
,
s_5_16
,
-
1
,
1
,
0
},
/* 17 */
{
2
,
s_5_17
,
16
,
1
,
0
},
/* 18 */
{
3
,
s_5_18
,
17
,
1
,
0
},
/* 19 */
{
2
,
s_5_19
,
16
,
1
,
0
},
/* 20 */
{
2
,
s_5_20
,
16
,
1
,
0
},
/* 21 */
{
2
,
s_5_21
,
-
1
,
1
,
0
},
/* 22 */
{
2
,
s_5_22
,
-
1
,
1
,
0
},
/* 23 */
{
3
,
s_5_23
,
22
,
1
,
0
},
/* 24 */
{
2
,
s_5_24
,
-
1
,
1
,
0
},
/* 25 */
{
2
,
s_5_25
,
-
1
,
1
,
0
},
/* 26 */
{
3
,
s_5_26
,
25
,
1
,
0
},
/* 27 */
{
1
,
s_5_27
,
-
1
,
1
,
0
},
/* 28 */
{
1
,
s_5_28
,
-
1
,
1
,
0
},
/* 29 */
{
2
,
s_5_29
,
28
,
1
,
0
},
/* 30 */
{
2
,
s_5_30
,
28
,
1
,
0
},
/* 31 */
{
1
,
s_5_31
,
-
1
,
1
,
0
},
/* 32 */
{
2
,
s_5_32
,
-
1
,
1
,
0
},
/* 33 */
{
2
,
s_5_33
,
-
1
,
1
,
0
},
/* 34 */
{
1
,
s_5_34
,
-
1
,
1
,
0
},
/* 35 */
{
1
,
s_5_35
,
-
1
,
1
,
0
}
};
static
symbol
s_6_0
[
3
]
=
{
207
,
211
,
212
};
static
symbol
s_6_1
[
4
]
=
{
207
,
211
,
212
,
216
};
static
symbol
s_6_0
[
3
]
=
{
0xCF
,
0xD3
,
0xD4
};
static
symbol
s_6_1
[
4
]
=
{
0xCF
,
0xD3
,
0xD4
,
0xD8
};
static
struct
among
a_6
[
2
]
=
{
/* 0 */
{
3
,
s_6_0
,
-
1
,
1
,
0
},
/* 1 */
{
4
,
s_6_1
,
-
1
,
1
,
0
}
/* 0 */
{
3
,
s_6_0
,
-
1
,
1
,
0
},
/* 1 */
{
4
,
s_6_1
,
-
1
,
1
,
0
}
};
static
symbol
s_7_0
[
4
]
=
{
197
,
202
,
219
,
197
};
static
symbol
s_7_1
[
1
]
=
{
206
};
static
symbol
s_7_2
[
1
]
=
{
216
};
static
symbol
s_7_3
[
3
]
=
{
197
,
202
,
219
};
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
struct
among
a_7
[
4
]
=
{
/* 0 */
{
4
,
s_7_0
,
-
1
,
1
,
0
},
/* 1 */
{
1
,
s_7_1
,
-
1
,
2
,
0
},
/* 2 */
{
1
,
s_7_2
,
-
1
,
3
,
0
},
/* 3 */
{
3
,
s_7_3
,
-
1
,
1
,
0
}
/* 0 */
{
4
,
s_7_0
,
-
1
,
1
,
0
},
/* 1 */
{
1
,
s_7_1
,
-
1
,
2
,
0
},
/* 2 */
{
1
,
s_7_2
,
-
1
,
3
,
0
},
/* 3 */
{
3
,
s_7_3
,
-
1
,
1
,
0
}
};
static
unsigned
char
g_v
[]
=
{
35
,
130
,
34
,
18
};
static
symbol
s_0
[]
=
{
193
};
static
symbol
s_1
[]
=
{
209
};
static
symbol
s_2
[]
=
{
193
};
static
symbol
s_3
[]
=
{
209
};
static
symbol
s_4
[]
=
{
193
};
static
symbol
s_5
[]
=
{
209
};
static
symbol
s_6
[]
=
{
206
};
static
symbol
s_7
[]
=
{
206
};
static
symbol
s_8
[]
=
{
206
};
static
symbol
s_9
[]
=
{
201
};
static
int
r_mark_regions
(
struct
SN_env
*
z
)
{
static
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
int
r_mark_regions
(
struct
SN_env
*
z
)
{
z
->
I
[
0
]
=
z
->
l
;
z
->
I
[
1
]
=
z
->
l
;
{
int
c
=
z
->
c
;
/* do, line 100 */
while
(
1
)
{
/* gopast, line 101 */
if
(
!
(
in_grouping
(
z
,
g_v
,
192
,
220
)))
goto
lab1
;
{
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 64 */
}
z
->
I
[
0
]
=
z
->
c
;
/* setmark pV, line 101 */
while
(
1
)
{
/* gopast, line 101 */
if
(
!
(
out_grouping
(
z
,
g_v
,
192
,
220
)))
goto
lab2
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 64 */
}
while
(
1
)
{
/* gopast, line 102 */
if
(
!
(
in_grouping
(
z
,
g_v
,
192
,
220
)))
goto
lab3
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 65 */
}
while
(
1
)
{
/* gopast, line 102 */
if
(
!
(
out_grouping
(
z
,
g_v
,
192
,
220
)))
goto
lab4
;
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
++
;
if
(
z
->
c
>=
z
->
l
)
goto
lab0
;
z
->
c
++
;
/* gopast, line 65 */
}
z
->
I
[
1
]
=
z
->
c
;
/* setmark p2, line 102
*/
lab0:
z
->
I
[
1
]
=
z
->
c
;
/* setmark p2, line 65
*/
lab0:
z
->
c
=
c
;
}
return
1
;
}
static
int
r_R2
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
I
[
1
]
<=
z
->
c
))
return
0
;
static
int
r_R2
(
struct
SN_env
*
z
)
{
if
(
!
(
z
->
I
[
1
]
<=
z
->
c
))
return
0
;
return
1
;
}
static
int
r_perfective_gerund
(
struct
SN_env
*
z
)
{
static
int
r_perfective_gerund
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 111 */
among_var
=
find_among_b
(
z
,
a_0
,
9
);
/* substring, line 111 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 111 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 74 */
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
;
/* or, line 115 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_0
)))
goto
lab1
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* or, line 78 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_0
)))
goto
lab1
;
goto
lab0
;
lab1:
z
->
c
=
z
->
l
-
m
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_1
)))
return
0
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_1
)))
return
0
;
}
lab0:
slice_del
(
z
);
/* delete, line 115 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 78 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
slice_del
(
z
);
/* delete, line 122 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 85 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_adjective
(
struct
SN_env
*
z
)
{
static
int
r_adjective
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 127 */
among_var
=
find_among_b
(
z
,
a_1
,
26
);
/* substring, line 127 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 127 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 90 */
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
:
slice_del
(
z
);
/* delete, line 136 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 99 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_adjectival
(
struct
SN_env
*
z
)
{
static
int
r_adjectival
(
struct
SN_env
*
z
)
{
int
among_var
;
if
(
!
r_adjective
(
z
))
return
0
;
/* call adjective, line 141 */
{
int
m
=
z
->
l
-
z
->
c
;
/* try, line 148 */
z
->
ket
=
z
->
c
;
/* [, line 149 */
among_var
=
find_among_b
(
z
,
a_2
,
8
);
/* substring, line 149 */
if
(
!
(
among_var
))
{
z
->
c
=
z
->
l
-
m
;
goto
lab0
;
}
z
->
bra
=
z
->
c
;
/* ], line 149 */
switch
(
among_var
)
{
case
0
:
{
z
->
c
=
z
->
l
-
m
;
goto
lab0
;
{
int
ret
=
r_adjective
(
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 */
z
->
ket
=
z
->
c
;
/* [, line 112 */
among_var
=
find_among_b
(
z
,
a_2
,
8
);
/* substring, line 112 */
if
(
!
(
among_var
))
{
z
->
c
=
z
->
l
-
m
;
goto
lab0
;
}
z
->
bra
=
z
->
c
;
/* ], line 112 */
switch
(
among_var
)
{
case
0
:
{
z
->
c
=
z
->
l
-
m
;
goto
lab0
;
}
case
1
:
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 154 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_2
)))
goto
lab2
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* 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
;
}
if
(
!
(
eq_s_b
(
z
,
1
,
s_3
)))
{
z
->
c
=
z
->
l
-
m
;
goto
lab0
;
}
}
lab1:
slice_del
(
z
);
/* delete, line 154 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 117 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
slice_del
(
z
);
/* delete, line 161 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 124 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
lab0:
lab0:
;
}
return
1
;
}
static
int
r_reflexive
(
struct
SN_env
*
z
)
{
static
int
r_reflexive
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 168 */
among_var
=
find_among_b
(
z
,
a_3
,
2
);
/* substring, line 168 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 168 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 131 */
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
:
slice_del
(
z
);
/* delete, line 171 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 134 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_verb
(
struct
SN_env
*
z
)
{
static
int
r_verb
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 176 */
among_var
=
find_among_b
(
z
,
a_4
,
46
);
/* substring, line 176 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 176 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 139 */
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
;
/* or, line 182 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_4
)))
goto
lab1
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* or, line 145 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_4
)))
goto
lab1
;
goto
lab0
;
lab1:
z
->
c
=
z
->
l
-
m
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_5
)))
return
0
;
if
(
!
(
eq_s_b
(
z
,
1
,
s_5
)))
return
0
;
}
lab0:
slice_del
(
z
);
/* delete, line 182 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 145 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
slice_del
(
z
);
/* delete, line 190 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 153 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_noun
(
struct
SN_env
*
z
)
{
static
int
r_noun
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 199 */
among_var
=
find_among_b
(
z
,
a_5
,
36
);
/* substring, line 199 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 199 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 162 */
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
:
slice_del
(
z
);
/* delete, line 206 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 169 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_derivational
(
struct
SN_env
*
z
)
{
static
int
r_derivational
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 215 */
among_var
=
find_among_b
(
z
,
a_6
,
2
);
/* substring, line 215 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 215 */
if
(
!
r_R2
(
z
))
return
0
;
/* call R2, line 215 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 178 */
among_var
=
find_among_b
(
z
,
a_6
,
2
);
/* substring, line 178 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 178 */
{
int
ret
=
r_R2
(
z
);
if
(
ret
==
0
)
return
0
;
/* call R2, line 178 */
if
(
ret
<
0
)
return
ret
;
}
switch
(
among_var
)
{
case
0
:
return
0
;
case
1
:
slice_del
(
z
);
/* delete, line 218 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 181 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
static
int
r_tidy_up
(
struct
SN_env
*
z
)
{
static
int
r_tidy_up
(
struct
SN_env
*
z
)
{
int
among_var
;
z
->
ket
=
z
->
c
;
/* [, line 223 */
among_var
=
find_among_b
(
z
,
a_7
,
4
);
/* substring, line 223 */
if
(
!
(
among_var
))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 223 */
switch
(
among_var
)
{
case
0
:
return
0
;
z
->
ket
=
z
->
c
;
/* [, line 186 */
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
:
slice_del
(
z
);
/* delete, line 227 */
z
->
ket
=
z
->
c
;
/* [, line 228 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_6
)))
return
0
;
z
->
bra
=
z
->
c
;
/* ], line 228 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_7
)))
return
0
;
slice_del
(
z
);
/* delete, line 228 */
{
int
ret
;
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 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
2
:
if
(
!
(
eq_s_b
(
z
,
1
,
s_8
)))
return
0
;
slice_del
(
z
);
/* delete, line 231 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_8
)))
return
0
;
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 194 */
if
(
ret
<
0
)
return
ret
;
}
break
;
case
3
:
slice_del
(
z
);
/* delete, line 233 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 196 */
if
(
ret
<
0
)
return
ret
;
}
break
;
}
return
1
;
}
extern
int
russian_stem
(
struct
SN_env
*
z
)
{
{
int
c
=
z
->
c
;
/* do, line 240 */
if
(
!
r_mark_regions
(
z
))
goto
lab0
;
/* call mark_regions, line 240 */
lab0:
extern
int
russian_KOI8_R_stem
(
struct
SN_env
*
z
)
{
{
int
c
=
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
->
lb
=
z
->
c
;
z
->
c
=
z
->
l
;
/* backwards, line 241 */
{
int
m
=
z
->
l
-
z
->
c
;
/* setlimit, line 241 */
int
m3
;
z
->
lb
=
z
->
c
;
z
->
c
=
z
->
l
;
/* backwards, line 204 */
if
(
z
->
c
<
z
->
I
[
0
])
return
0
;
z
->
c
=
z
->
I
[
0
];
/* tomark, line 241 */
m3
=
z
->
lb
;
z
->
lb
=
z
->
c
;
{
int
m3
;
/* setlimit, line 204 */
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
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
;
/* do, line 242 */
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 243 */
if
(
!
r_perfective_gerund
(
z
))
goto
lab3
;
/* call perfective_gerund, line 243 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* do, line 205 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* 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
;
/* try, line 244 */
if
(
!
r_reflexive
(
z
))
{
z
->
c
=
z
->
l
-
m
;
goto
lab4
;
}
/* call reflexive, line 244 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* 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
)
return
ret
;
}
lab4:
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* or, line 245 */
if
(
!
r_adjectival
(
z
))
goto
lab6
;
/* call adjectival, line 245 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* 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
;
if
(
!
r_verb
(
z
))
goto
lab7
;
/* call verb, line 245 */
{
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
;
if
(
!
r_noun
(
z
))
goto
lab1
;
/* call noun, line 245 */
{
int
ret
=
r_noun
(
z
);
if
(
ret
==
0
)
goto
lab1
;
/* call noun, line 208 */
if
(
ret
<
0
)
return
ret
;
}
}
lab5:
;
...
...
@@ -717,33 +662,30 @@ lab0:
lab1:
z
->
c
=
z
->
l
-
m
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* try, line 248 */
z
->
ket
=
z
->
c
;
/* [, line 248 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_9
)))
{
z
->
c
=
z
->
l
-
m
;
goto
lab8
;
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* try, line 211 */
z
->
ket
=
z
->
c
;
/* [, line 211 */
if
(
!
(
eq_s_b
(
z
,
1
,
s_9
)))
{
z
->
c
=
z
->
l
-
m
;
goto
lab8
;
}
z
->
bra
=
z
->
c
;
/* ], line 211 */
{
int
ret
;
ret
=
slice_del
(
z
);
/* delete, line 211 */
if
(
ret
<
0
)
return
ret
;
}
z
->
bra
=
z
->
c
;
/* ], line 248 */
slice_del
(
z
);
/* delete, line 248 */
lab8:
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 251 */
if
(
!
r_derivational
(
z
))
goto
lab9
;
/* call derivational, line 251 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* 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
;
}
{
int
m
=
z
->
l
-
z
->
c
;
/* do, line 252 */
if
(
!
r_tidy_up
(
z
))
goto
lab10
;
/* call tidy_up, line 252 */
{
int
m
=
z
->
l
-
z
->
c
;
(
void
)
m
;
/* 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
;
}
...
...
@@ -753,14 +695,7 @@ lab0:
return
1
;
}
extern
struct
SN_env
*
russian_create_env
(
void
)
{
return
SN_create_env
(
0
,
2
,
0
);
}
extern
struct
SN_env
*
russian_KOI8_R_create_env
(
void
)
{
return
SN_create_env
(
0
,
2
,
0
);
}
extern
void
russian_KOI8_R_close_env
(
struct
SN_env
*
z
)
{
SN_close_env
(
z
);
}
extern
void
russian_close_env
(
struct
SN_env
*
z
)
{
SN_close_env
(
z
);
}
contrib/tsearch2/snowball/russian_stem.h
View file @
f82b853b
/* This file was generated automatically by the Snowball to ANSI C compiler */
extern
struct
SN_env
*
russian_create_env
(
void
);
extern
void
russian_close_env
(
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
);
extern
int
russian_KOI8_R_stem
(
struct
SN_env
*
z
);
#ifdef __cplusplus
}
#endif
extern
int
russian_stem
(
struct
SN_env
*
z
);
contrib/tsearch2/snowball/utilities.c
View file @
f82b853b
...
...
@@ -9,510 +9,438 @@
#define CREATE_SIZE 1
symbol
*
create_s
(
void
)
{
symbol
*
p
=
(
symbol
*
)
(
HEAD
+
(
char
*
)
malloc
(
HEAD
+
(
CREATE_SIZE
+
1
)
*
sizeof
(
symbol
)));
if
(
p
==
(
symbol
*
)
(
HEAD
))
return
NULL
;
extern
symbol
*
create_s
(
void
)
{
symbol
*
p
;
void
*
mem
=
malloc
(
HEAD
+
(
CREATE_SIZE
+
1
)
*
sizeof
(
symbol
));
if
(
mem
==
NULL
)
return
NULL
;
p
=
(
symbol
*
)
(
HEAD
+
(
char
*
)
mem
);
CAPACITY
(
p
)
=
CREATE_SIZE
;
SET_SIZE
(
p
,
CREATE_SIZE
);
return
p
;
}
void
lose_s
(
symbol
*
p
)
{
extern
void
lose_s
(
symbol
*
p
)
{
if
(
p
==
NULL
)
return
;
free
((
char
*
)
p
-
HEAD
);
}
int
in_grouping
(
struct
SN_env
*
z
,
unsigned
char
*
s
,
int
min
,
int
max
)
{
if
(
z
->
c
>=
z
->
l
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
];
/*
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
position, or 0 on failure.
if
(
ch
>
max
||
(
ch
-=
min
)
<
0
||
(
s
[
ch
>>
3
]
&
(
0X1
<<
(
ch
&
0X7
)))
==
0
)
return
0
;
-- used to implement hop and next in the utf8 case.
*/
extern
int
skip_utf8
(
const
symbol
*
p
,
int
c
,
int
lb
,
int
l
,
int
n
)
{
int
b
;
if
(
n
>=
0
)
{
for
(;
n
>
0
;
n
--
)
{
if
(
c
>=
l
)
return
-
1
;
b
=
p
[
c
++
];
if
(
b
>=
0xC0
)
{
/* 1100 0000 */
while
(
c
<
l
)
{
b
=
p
[
c
];
if
(
b
>=
0xC0
||
b
<
0x80
)
break
;
/* break unless b is 10------ */
c
++
;
}
}
}
}
else
{
for
(;
n
<
0
;
n
++
)
{
if
(
c
<=
lb
)
return
-
1
;
b
=
p
[
--
c
];
if
(
b
>=
0x80
)
{
/* 1000 0000 */
while
(
c
>
lb
)
{
b
=
p
[
c
];
if
(
b
>=
0xC0
)
break
;
/* 1100 0000 */
c
--
;
}
}
z
->
c
++
;
return
1
;
}
}
return
c
;
}
int
in_grouping_b
(
struct
SN_env
*
z
,
unsigned
char
*
s
,
int
min
,
int
max
)
{
if
(
z
->
c
<=
z
->
lb
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
-
1
];
/* Code for character groupings: utf8 cases */
if
(
ch
>
max
||
(
ch
-=
min
)
<
0
||
(
s
[
ch
>>
3
]
&
(
0X1
<<
(
ch
&
0X7
)))
==
0
)
return
0
;
static
int
get_utf8
(
const
symbol
*
p
,
int
c
,
int
l
,
int
*
slot
)
{
int
b0
,
b1
;
if
(
c
>=
l
)
return
0
;
b0
=
p
[
c
++
];
if
(
b0
<
0xC0
||
c
==
l
)
{
/* 1100 0000 */
*
slot
=
b0
;
return
1
;
}
b1
=
p
[
c
++
];
if
(
b0
<
0xE0
||
c
==
l
)
{
/* 1110 0000 */
*
slot
=
(
b0
&
0x1F
)
<<
6
|
(
b1
&
0x3F
);
return
2
;
}
z
->
c
--
;
return
1
;
*
slot
=
(
b0
&
0xF
)
<<
12
|
(
b1
&
0x3F
)
<<
6
|
(
*
p
&
0x3F
);
return
3
;
}
int
out_grouping
(
struct
SN_env
*
z
,
unsigned
char
*
s
,
int
min
,
int
max
)
{
if
(
z
->
c
>=
z
->
l
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
];
unless
(
ch
>
max
||
(
ch
-=
min
)
<
0
||
(
s
[
ch
>>
3
]
&
(
0X1
<<
(
ch
&
0X7
)))
==
0
)
return
0
;
static
int
get_b_utf8
(
const
symbol
*
p
,
int
c
,
int
lb
,
int
*
slot
)
{
int
b0
,
b1
;
if
(
c
<=
lb
)
return
0
;
b0
=
p
[
--
c
];
if
(
b0
<
0x80
||
c
==
lb
)
{
/* 1000 0000 */
*
slot
=
b0
;
return
1
;
}
z
->
c
++
;
return
1
;
b1
=
p
[
--
c
];
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
;
}
int
out_grouping_b
(
struct
SN_env
*
z
,
unsigned
char
*
s
,
int
min
,
int
max
)
{
if
(
z
->
c
<=
z
->
lb
)
return
0
;
{
int
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
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_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
;
}
int
in_range
(
struct
SN_env
*
z
,
int
min
,
int
max
)
{
if
(
z
->
c
>=
z
->
l
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
];
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
;
}
if
(
ch
>
max
||
ch
<
min
)
return
0
;
}
z
->
c
++
;
return
1
;
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
;
}
int
in_range_b
(
struct
SN_env
*
z
,
int
min
,
int
max
)
{
if
(
z
->
c
<=
z
->
lb
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
-
1
];
/* Code for character groupings: non-utf8 cases */
if
(
ch
>
max
||
ch
<
min
)
return
0
;
}
z
->
c
--
;
return
1
;
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
;
}
int
out_range
(
struct
SN_env
*
z
,
int
min
,
int
max
)
{
if
(
z
->
c
>=
z
->
l
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
];
unless
(
ch
>
max
||
ch
<
min
)
return
0
;
}
z
->
c
++
;
return
1
;
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
;
}
int
out_range_b
(
struct
SN_env
*
z
,
int
min
,
int
max
)
{
if
(
z
->
c
<=
z
->
lb
)
return
0
;
{
int
ch
=
z
->
p
[
z
->
c
-
1
];
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
;
}
unless
(
ch
>
max
||
ch
<
min
)
return
0
;
}
z
->
c
--
;
return
1
;
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
;
}
int
eq_s
(
struct
SN_env
*
z
,
int
s_size
,
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
(
struct
SN_env
*
z
,
int
s_size
,
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
;
}
int
eq_s_b
(
struct
SN_env
*
z
,
int
s_size
,
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_s_b
(
struct
SN_env
*
z
,
int
s_size
,
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
;
}
int
eq_v
(
struct
SN_env
*
z
,
symbol
*
p
)
{
extern
int
eq_v
(
struct
SN_env
*
z
,
symbol
*
p
)
{
return
eq_s
(
z
,
SIZE
(
p
),
p
);
}
int
eq_v_b
(
struct
SN_env
*
z
,
symbol
*
p
)
{
extern
int
eq_v_b
(
struct
SN_env
*
z
,
symbol
*
p
)
{
return
eq_s_b
(
z
,
SIZE
(
p
),
p
);
}
int
find_among
(
struct
SN_env
*
z
,
struct
among
*
v
,
int
v_size
)
{
extern
int
find_among
(
struct
SN_env
*
z
,
struct
among
*
v
,
int
v_size
)
{
int
i
=
0
;
int
j
=
v_size
;
int
c
=
z
->
c
;
int
l
=
z
->
l
;
symbol
*
q
=
z
->
p
+
c
;
int
c
=
z
->
c
;
int
l
=
z
->
l
;
symbol
*
q
=
z
->
p
+
c
;
struct
among
*
w
;
struct
among
*
w
;
int
common_i
=
0
;
int
common_j
=
0
;
int
first_key_inspected
=
0
;
while
(
1
)
{
while
(
1
)
{
int
k
=
i
+
((
j
-
i
)
>>
1
);
int
diff
=
0
;
int
common
=
common_i
<
common_j
?
common_i
:
common_j
;
/* smaller */
w
=
v
+
k
;
{
int
i
;
for
(
i
=
common
;
i
<
w
->
s_size
;
i
++
)
{
if
(
c
+
common
==
l
)
{
diff
=
-
1
;
break
;
}
int
i
;
for
(
i
=
common
;
i
<
w
->
s_size
;
i
++
)
{
if
(
c
+
common
==
l
)
{
diff
=
-
1
;
break
;
}
diff
=
q
[
common
]
-
w
->
s
[
i
];
if
(
diff
!=
0
)
break
;
if
(
diff
!=
0
)
break
;
common
++
;
}
}
if
(
diff
<
0
)
{
j
=
k
;
common_j
=
common
;
}
else
{
i
=
k
;
common_i
=
common
;
}
if
(
j
-
i
<=
1
)
{
if
(
i
>
0
)
break
;
/* v->s has been inspected */
if
(
j
==
i
)
break
;
/* only one item in v */
/*
* - but now we need to go round once more to get v->s
* inspected. This looks messy, but is actually the optimal
* approach.
*/
if
(
diff
<
0
)
{
j
=
k
;
common_j
=
common
;
}
else
{
i
=
k
;
common_i
=
common
;
}
if
(
j
-
i
<=
1
)
{
if
(
i
>
0
)
break
;
/* v->s has been inspected */
if
(
j
==
i
)
break
;
/* only one item in v */
if
(
first_key_inspected
)
break
;
/* - but now we need to go round once more to get
v->s inspected. This looks messy, but is actually
the optimal approach. */
if
(
first_key_inspected
)
break
;
first_key_inspected
=
1
;
}
}
while
(
1
)
{
while
(
1
)
{
w
=
v
+
i
;
if
(
common_i
>=
w
->
s_size
)
{
if
(
common_i
>=
w
->
s_size
)
{
z
->
c
=
c
+
w
->
s_size
;
if
(
w
->
function
==
0
)
return
w
->
result
;
if
(
w
->
function
==
0
)
return
w
->
result
;
{
int
res
=
w
->
function
(
z
);
z
->
c
=
c
+
w
->
s_size
;
if
(
res
)
return
w
->
result
;
if
(
res
)
return
w
->
result
;
}
}
i
=
w
->
substring_i
;
if
(
i
<
0
)
return
0
;
if
(
i
<
0
)
return
0
;
}
}
/* find_among_b is for backwards processing. Same comments apply */
int
find_among_b
(
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
)
{
int
i
=
0
;
int
j
=
v_size
;
int
c
=
z
->
c
;
int
lb
=
z
->
lb
;
symbol
*
q
=
z
->
p
+
c
-
1
;
int
c
=
z
->
c
;
int
lb
=
z
->
lb
;
symbol
*
q
=
z
->
p
+
c
-
1
;
struct
among
*
w
;
struct
among
*
w
;
int
common_i
=
0
;
int
common_j
=
0
;
int
first_key_inspected
=
0
;
while
(
1
)
{
while
(
1
)
{
int
k
=
i
+
((
j
-
i
)
>>
1
);
int
diff
=
0
;
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
--
)
{
if
(
c
-
common
==
lb
)
{
diff
=
-
1
;
break
;
}
diff
=
q
[
-
common
]
-
w
->
s
[
i
];
if
(
diff
!=
0
)
break
;
int
i
;
for
(
i
=
w
->
s_size
-
1
-
common
;
i
>=
0
;
i
--
)
{
if
(
c
-
common
==
lb
)
{
diff
=
-
1
;
break
;
}
diff
=
q
[
-
common
]
-
w
->
s
[
i
];
if
(
diff
!=
0
)
break
;
common
++
;
}
}
if
(
diff
<
0
)
{
j
=
k
;
common_j
=
common
;
}
else
{
i
=
k
;
common_i
=
common
;
}
if
(
j
-
i
<=
1
)
{
if
(
i
>
0
)
break
;
if
(
j
==
i
)
break
;
if
(
first_key_inspected
)
break
;
if
(
diff
<
0
)
{
j
=
k
;
common_j
=
common
;
}
else
{
i
=
k
;
common_i
=
common
;
}
if
(
j
-
i
<=
1
)
{
if
(
i
>
0
)
break
;
if
(
j
==
i
)
break
;
if
(
first_key_inspected
)
break
;
first_key_inspected
=
1
;
}
}
while
(
1
)
{
while
(
1
)
{
w
=
v
+
i
;
if
(
common_i
>=
w
->
s_size
)
{
if
(
common_i
>=
w
->
s_size
)
{
z
->
c
=
c
-
w
->
s_size
;
if
(
w
->
function
==
0
)
return
w
->
result
;
if
(
w
->
function
==
0
)
return
w
->
result
;
{
int
res
=
w
->
function
(
z
);
z
->
c
=
c
-
w
->
s_size
;
if
(
res
)
return
w
->
result
;
if
(
res
)
return
w
->
result
;
}
}
i
=
w
->
substring_i
;
if
(
i
<
0
)
return
0
;
if
(
i
<
0
)
return
0
;
}
}
symbol
*
increase_size
(
symbol
*
p
,
int
n
)
{
/* Increase the size of the buffer pointed to by p to at least n symbols.
* If insufficient memory, returns NULL and frees the old buffer.
*/
static
symbol
*
increase_size
(
symbol
*
p
,
int
n
)
{
symbol
*
q
;
int
new_size
=
n
+
20
;
symbol
*
q
=
(
symbol
*
)
(
HEAD
+
(
char
*
)
malloc
(
HEAD
+
(
new_size
+
1
)
*
sizeof
(
symbol
)));
CAPACITY
(
q
)
=
new_size
;
memmove
(
q
,
p
,
CAPACITY
(
p
)
*
sizeof
(
symbol
));
void
*
mem
=
realloc
((
char
*
)
p
-
HEAD
,
HEAD
+
(
new_size
+
1
)
*
sizeof
(
symbol
));
if
(
mem
==
NULL
)
{
lose_s
(
p
);
return
NULL
;
}
q
=
(
symbol
*
)
(
HEAD
+
(
char
*
)
mem
);
CAPACITY
(
q
)
=
new_size
;
return
q
;
}
/* to replace symbols between c_bra and c_ket in z->p by the
s_size symbols at s
s_size symbols at s.
Returns 0 on success, -1 on error.
Also, frees z->p (and sets it to NULL) on error.
*/
int
replace_s
(
struct
SN_env
*
z
,
int
c_bra
,
int
c_ket
,
int
s_size
,
const
symbol
*
s
)
extern
int
replace_s
(
struct
SN_env
*
z
,
int
c_bra
,
int
c_ket
,
int
s_size
,
const
symbol
*
s
,
int
*
adjptr
)
{
int
adjustment
=
s_size
-
(
c_ket
-
c_bra
);
int
len
=
SIZE
(
z
->
p
);
if
(
adjustment
!=
0
)
{
if
(
adjustment
+
len
>
CAPACITY
(
z
->
p
))
int
adjustment
;
int
len
;
if
(
z
->
p
==
NULL
)
{
z
->
p
=
create_s
();
if
(
z
->
p
==
NULL
)
return
-
1
;
}
adjustment
=
s_size
-
(
c_ket
-
c_bra
);
len
=
SIZE
(
z
->
p
);
if
(
adjustment
!=
0
)
{
if
(
adjustment
+
len
>
CAPACITY
(
z
->
p
))
{
z
->
p
=
increase_size
(
z
->
p
,
adjustment
+
len
);
memmove
(
z
->
p
+
c_ket
+
adjustment
,
z
->
p
+
c_ket
,
(
len
-
c_ket
)
*
sizeof
(
symbol
));
if
(
z
->
p
==
NULL
)
return
-
1
;
}
memmove
(
z
->
p
+
c_ket
+
adjustment
,
z
->
p
+
c_ket
,
(
len
-
c_ket
)
*
sizeof
(
symbol
));
SET_SIZE
(
z
->
p
,
adjustment
+
len
);
z
->
l
+=
adjustment
;
if
(
z
->
c
>=
c_ket
)
z
->
c
+=
adjustment
;
else
if
(
z
->
c
>
c_bra
)
else
if
(
z
->
c
>
c_bra
)
z
->
c
=
c_bra
;
}
unless
(
s_size
==
0
)
memmove
(
z
->
p
+
c_bra
,
s
,
s_size
*
sizeof
(
symbol
));
return
adjustment
;
unless
(
s_size
==
0
)
memmove
(
z
->
p
+
c_bra
,
s
,
s_size
*
sizeof
(
symbol
));
if
(
adjptr
!=
NULL
)
*
adjptr
=
adjustment
;
return
0
;
}
static
void
slice_check
(
struct
SN_env
*
z
)
{
if
(
!
(
0
<=
z
->
bra
&&
z
->
bra
<=
z
->
ket
&&
z
->
ket
<=
z
->
l
&&
z
->
l
<=
SIZE
(
z
->
p
)))
/* this line could be removed */
static
int
slice_check
(
struct
SN_env
*
z
)
{
if
(
z
->
bra
<
0
||
z
->
bra
>
z
->
ket
||
z
->
ket
>
z
->
l
||
z
->
p
==
NULL
||
z
->
l
>
SIZE
(
z
->
p
))
/* this line could be removed */
{
#if 0
fprintf(stderr, "faulty slice operation:\n");
debug(z, -1, 0);
exit
(
1
);
#endif
return
-
1
;
}
return
0
;
}
void
slice_from_s
(
struct
SN_env
*
z
,
int
s_size
,
symbol
*
s
)
{
slice_check
(
z
);
replace_s
(
z
,
z
->
bra
,
z
->
ket
,
s_size
,
s
);
extern
int
slice_from_s
(
struct
SN_env
*
z
,
int
s_size
,
symbol
*
s
)
{
if
(
slice_check
(
z
))
return
-
1
;
return
replace_s
(
z
,
z
->
bra
,
z
->
ket
,
s_size
,
s
,
NULL
);
}
void
slice_from_v
(
struct
SN_env
*
z
,
symbol
*
p
)
{
slice_from_s
(
z
,
SIZE
(
p
),
p
);
extern
int
slice_from_v
(
struct
SN_env
*
z
,
symbol
*
p
)
{
return
slice_from_s
(
z
,
SIZE
(
p
),
p
);
}
void
slice_del
(
struct
SN_env
*
z
)
{
slice_from_s
(
z
,
0
,
NULL
);
extern
int
slice_del
(
struct
SN_env
*
z
)
{
return
slice_from_s
(
z
,
0
,
0
);
}
void
insert_s
(
struct
SN_env
*
z
,
int
bra
,
int
ket
,
int
s_size
,
symbol
*
s
)
{
int
adjustment
=
replace_s
(
z
,
bra
,
ket
,
s_size
,
s
);
if
(
bra
<=
z
->
bra
)
z
->
bra
+=
adjustment
;
if
(
bra
<=
z
->
ket
)
z
->
ket
+=
adjustment
;
extern
int
insert_s
(
struct
SN_env
*
z
,
int
bra
,
int
ket
,
int
s_size
,
symbol
*
s
)
{
int
adjustment
;
if
(
replace_s
(
z
,
bra
,
ket
,
s_size
,
s
,
&
adjustment
))
return
-
1
;
if
(
bra
<=
z
->
bra
)
z
->
bra
+=
adjustment
;
if
(
bra
<=
z
->
ket
)
z
->
ket
+=
adjustment
;
return
0
;
}
void
insert_v
(
struct
SN_env
*
z
,
int
bra
,
int
ket
,
symbol
*
p
)
{
int
adjustment
=
replace_s
(
z
,
bra
,
ket
,
SIZE
(
p
),
p
);
if
(
bra
<=
z
->
bra
)
z
->
bra
+=
adjustment
;
if
(
bra
<=
z
->
ket
)
z
->
ket
+=
adjustment
;
extern
int
insert_v
(
struct
SN_env
*
z
,
int
bra
,
int
ket
,
symbol
*
p
)
{
int
adjustment
;
if
(
replace_s
(
z
,
bra
,
ket
,
SIZE
(
p
),
p
,
&
adjustment
))
return
-
1
;
if
(
bra
<=
z
->
bra
)
z
->
bra
+=
adjustment
;
if
(
bra
<=
z
->
ket
)
z
->
ket
+=
adjustment
;
return
0
;
}
symbol
*
slice_to
(
struct
SN_env
*
z
,
symbol
*
p
)
{
slice_check
(
z
);
extern
symbol
*
slice_to
(
struct
SN_env
*
z
,
symbol
*
p
)
{
if
(
slice_check
(
z
))
{
lose_s
(
p
);
return
NULL
;
}
{
int
len
=
z
->
ket
-
z
->
bra
;
if
(
CAPACITY
(
p
)
<
len
)
if
(
CAPACITY
(
p
)
<
len
)
{
p
=
increase_size
(
p
,
len
);
if
(
p
==
NULL
)
return
NULL
;
}
memmove
(
p
,
z
->
p
+
z
->
bra
,
len
*
sizeof
(
symbol
));
SET_SIZE
(
p
,
len
);
}
return
p
;
}
symbol
*
assign_to
(
struct
SN_env
*
z
,
symbol
*
p
)
{
extern
symbol
*
assign_to
(
struct
SN_env
*
z
,
symbol
*
p
)
{
int
len
=
z
->
l
;
if
(
CAPACITY
(
p
)
<
len
)
if
(
CAPACITY
(
p
)
<
len
)
{
p
=
increase_size
(
p
,
len
);
if
(
p
==
NULL
)
return
NULL
;
}
memmove
(
p
,
z
->
p
,
len
*
sizeof
(
symbol
));
SET_SIZE
(
p
,
len
);
return
p
;
}
void
debug
(
struct
SN_env
*
z
,
int
number
,
int
line_count
)
{
#if 0
extern void debug(struct SN_env * z, int number, int line_count) {
int i;
int limit = SIZE(z->p);
/* if (number >= 0) printf("%3d (line %4d): '", number, line_count); */
if
(
number
>=
0
)
printf
(
"%3d (line %4d): [%d]'"
,
number
,
line_count
,
limit
);
for
(
i
=
0
;
i
<=
limit
;
i
++
)
{
if
(
z
->
lb
==
i
)
printf
(
"{"
);
if
(
z
->
bra
==
i
)
printf
(
"["
);
if
(
z
->
c
==
i
)
printf
(
"|"
);
if
(
z
->
ket
==
i
)
printf
(
"]"
);
if
(
z
->
l
==
i
)
printf
(
"}"
);
/*if (number >= 0) printf("%3d (line %4d): '", number, line_count);*/
if (number >= 0) printf("%3d (line %4d): [%d]'", number, line_count,limit);
for (i = 0; i <= limit; i++) {
if (z->lb == i) printf("{");
if (z->bra == i) printf("[");
if (z->c == i) printf("|");
if (z->ket == i) printf("]");
if (z->l == i) printf("}");
if (i < limit)
{
int
ch
=
z
->
p
[
i
];
if
(
ch
==
0
)
ch
=
'#'
;
{ int ch = z->p[i];
if (ch == 0) ch = '#';
printf("%c", ch);
}
}
printf("'\n");
}
#endif
contrib/tsearch2/wordparser/Makefile
View file @
f82b853b
# $PostgreSQL: pgsql/contrib/tsearch2/wordparser/Makefile,v 1.
5 2003/11/29 19:51:36 pgsql
Exp $
# $PostgreSQL: pgsql/contrib/tsearch2/wordparser/Makefile,v 1.
6 2005/09/15 11:14:18 teodor
Exp $
subdir
=
contrib/tsearch2/wordparser
PG_CPPFLAGS
=
-I
$(srcdir)
/..
SUBOBJS
=
parser.o deflex.o
EXTRA_CLEAN
=
SUBSYS.o
$(SUBOBJS)
parser.c
ifdef
USE_PGXS
PGXS
=
$(
shell
pg_config
--pgxs
)
include
$(PGXS)
else
subdir
=
contrib/tsearch2
top_builddir
=
../../..
include
$(top_builddir)/src/Makefile.global
include
$(top_srcdir)/contrib/contrib-global.mk
endif
PG_CPPFLAGS
=
-I
$(srcdir)
/..
override
CFLAGS
+=
$(CFLAGS_SL)
SUBOBJS
=
parser.o deflex.o
all
:
SUBSYS.o
parser.c
:
parser.l
...
...
@@ -22,6 +29,4 @@ endif
SUBSYS.o
:
$(SUBOBJS)
$(LD)
$(LDREL)
$(LDOUT)
$@
$^
EXTRA_CLEAN
=
SUBSYS.o
$(SUBOBJS)
parser.c
include
$(top_srcdir)/contrib/contrib-global.mk
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment