Commit 7a88488b authored by Roman Zippel's avatar Roman Zippel Committed by Linus Torvalds

[PATCH] kconfig: use gperf for kconfig keywords

Use gperf to generate a hash for the kconfig keywords.  This greatly reduces
the size of the generated scanner and makes it easier to extend kconfig.
Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 491d7110
...@@ -114,7 +114,7 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o ...@@ -114,7 +114,7 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
endif endif
clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
.tmp_gtkcheck zconf.tab.c lex.zconf.c .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
# Needed for systems without gettext # Needed for systems without gettext
KBUILD_HAVE_NLS := $(shell \ KBUILD_HAVE_NLS := $(shell \
...@@ -201,7 +201,7 @@ $(obj)/.tmp_gtkcheck: ...@@ -201,7 +201,7 @@ $(obj)/.tmp_gtkcheck:
fi fi
endif endif
$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
$(obj)/kconfig_load.o: $(obj)/lkc_defs.h $(obj)/kconfig_load.o: $(obj)/lkc_defs.h
...@@ -217,7 +217,7 @@ $(obj)/lkc_defs.h: $(src)/lkc_proto.h ...@@ -217,7 +217,7 @@ $(obj)/lkc_defs.h: $(src)/lkc_proto.h
### ###
# The following requires flex/bison # The following requires flex/bison/gperf
# By default we use the _shipped versions, uncomment the following line if # By default we use the _shipped versions, uncomment the following line if
# you are modifying the flex/bison src. # you are modifying the flex/bison src.
# LKC_GENPARSER := 1 # LKC_GENPARSER := 1
...@@ -226,6 +226,7 @@ ifdef LKC_GENPARSER ...@@ -226,6 +226,7 @@ ifdef LKC_GENPARSER
$(obj)/zconf.tab.c: $(src)/zconf.y $(obj)/zconf.tab.c: $(src)/zconf.y
$(obj)/lex.zconf.c: $(src)/zconf.l $(obj)/lex.zconf.c: $(src)/zconf.l
$(obj)/zconf.hash.c: $(src)/zconf.gperf
%.tab.c: %.y %.tab.c: %.y
bison -l -b $* -p $(notdir $*) $< bison -l -b $* -p $(notdir $*) $<
...@@ -235,4 +236,8 @@ lex.%.c: %.l ...@@ -235,4 +236,8 @@ lex.%.c: %.l
flex -L -P$(notdir $*) -o$@ $< flex -L -P$(notdir $*) -o$@ $<
cp $@ $@_shipped cp $@ $@_shipped
%.hash.c: %.gperf
gperf < $< > $@
cp $@ $@_shipped
endif endif
#line 3 "lex.zconf.c" #line 3 "scripts/kconfig/lex.zconf.c"
#define YY_INT_ALIGNED short int #define YY_INT_ALIGNED short int
...@@ -338,1567 +338,323 @@ int zconflineno = 1; ...@@ -338,1567 +338,323 @@ int zconflineno = 1;
extern char *zconftext; extern char *zconftext;
#define yytext_ptr zconftext #define yytext_ptr zconftext
static yyconst flex_int16_t yy_nxt[][38] = static yyconst flex_int16_t yy_nxt[][17] =
{ {
{ {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
},
{
11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12
},
{
11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12
},
{
11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
16, 16, 16, 18, 16, 16, 18, 18, 19, 20,
21, 22, 18, 18, 23, 24, 18, 25, 18, 26,
27, 18, 28, 29, 30, 18, 18, 16
},
{
11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
16, 16, 16, 18, 16, 16, 18, 18, 19, 20,
21, 22, 18, 18, 23, 24, 18, 25, 18, 26,
27, 18, 28, 29, 30, 18, 18, 16
},
{
11, 31, 32, 33, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31
},
{
11, 31, 32, 33, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31
},
{
11, 34, 34, 35, 34, 36, 34, 34, 36, 34,
34, 34, 34, 34, 34, 37, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34
},
{
11, 34, 34, 35, 34, 36, 34, 34, 36, 34,
34, 34, 34, 34, 34, 37, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34
},
{
11, 38, 38, 39, 40, 41, 42, 43, 41, 44,
45, 46, 47, 47, 48, 49, 47, 47, 47, 47,
47, 47, 47, 47, 47, 50, 47, 47, 47, 51,
47, 47, 47, 47, 47, 47, 47, 52
},
{
11, 38, 38, 39, 40, 41, 42, 43, 41, 44,
45, 46, 47, 47, 48, 49, 47, 47, 47, 47,
47, 47, 47, 47, 47, 50, 47, 47, 47, 51,
47, 47, 47, 47, 47, 47, 47, 52
},
{
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11
},
{
11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12
},
{
11, -13, 53, 54, -13, -13, 55, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13
},
{
11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14
},
{
11, 56, 56, 57, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56
},
{
11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16
},
{
11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17
},
{
11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, 58, -18, -18, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -18
},
{
11, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, 58, -19, -19, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 59,
58, 58, 58, 58, 58, 58, 58, -19
},
{
11, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, 58, -20, -20, 58, 58, 58, 58,
58, 58, 58, 58, 60, 58, 58, 58, 58, 61,
58, 58, 58, 58, 58, 58, 58, -20
},
{
11, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, 58, -21, -21, 58, 58, 58, 58,
58, 62, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -21
},
{
11, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, 58, -22, -22, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 63, 58,
58, 58, 58, 58, 58, 58, 58, -22
},
{
11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, 58, -23, -23, 58, 58, 58, 58,
58, 64, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -23
},
{
11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, 58, -24, -24, 58, 58, 58, 58,
58, 58, 65, 58, 58, 58, 58, 58, 66, 58,
58, 58, 58, 58, 58, 58, 58, -24
},
{
11, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, 58, -25, -25, 58, 67, 58, 58,
58, 68, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -25
},
{
11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, 58, -26, -26, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
69, 58, 58, 58, 58, 58, 58, -26
},
{
11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, 58, -27, -27, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 70, 58, 58, 58, 58, -27
},
{
11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, 58, -28, -28, 58, 71, 58, 58,
58, 72, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -28
},
{
11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, 58, -29, -29, 58, 58, 58, 58,
58, 73, 58, 58, 58, 58, 58, 58, 58, 74,
58, 58, 58, 58, 75, 58, 58, -29
},
{
11, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, 58, -30, -30, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 76, 58, 58, 58, 58, -30
},
{
11, 77, 77, -31, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77
},
{
11, -32, 78, 79, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32
},
{
11, 80, -33, -33, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80
},
{
11, 81, 81, 82, 81, -34, 81, 81, -34, 81,
81, 81, 81, 81, 81, -34, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81
},
{
11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35
},
{
11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36
},
{
11, 83, 83, 84, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83
},
{
11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38
},
{
11, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39
},
{
11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, 85, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40
},
{
11, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41
},
{
11, 86, 86, -42, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86
},
{
11, -43, -43, -43, -43, -43, -43, 87, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43
},
{
11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44
},
{
11, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45
},
{
11, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, 88, 89, 89, -46, -46, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -46
},
{
11, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, 89, 89, 89, -47, -47, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -47
},
{
11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48
},
{
11, -49, -49, 90, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49
},
{
11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, 89, 89, 89, -50, -50, 89, 89, 89, 89,
89, 89, 91, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -50
},
{
11, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, 89, 89, 89, -51, -51, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 92, 89,
89, 89, 89, 89, 89, 89, 89, -51
},
{
11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, 93
},
{
11, -53, 53, 54, -53, -53, 55, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53
},
{
11, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54
},
{
11, 56, 56, 57, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56
},
{
11, 56, 56, 57, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56
},
{
11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57
},
{
11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, 58, -58, -58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -58
},
{
11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, 58, -59, -59, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 94,
58, 58, 58, 58, 58, 58, 58, -59
},
{
11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, 58, -60, -60, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 95,
58, 58, 58, 58, 58, 58, 58, -60
},
{
11, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, 58, -61, -61, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 96, 97, 58,
58, 58, 58, 58, 58, 58, 58, -61
},
{
11, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, 58, -62, -62, 58, 58, 58, 58,
58, 58, 98, 58, 58, 58, 58, 58, 58, 58,
99, 58, 58, 58, 58, 58, 58, -62
},
{
11, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, 58, -63, -63, 58, 100, 58, 58,
101, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -63
},
{
11, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, 58, -64, -64, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 102, 58, 58, 58,
58, 58, 58, 58, 58, 58, 103, -64
},
{
11, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, 58, -65, -65, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -65
},
{
11, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, 58, -66, -66, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 104, 58, 58, -66
},
{
11, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, 58, -67, -67, 58, 58, 58, 58,
58, 58, 58, 58, 58, 105, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -67
},
{
11, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, 58, -68, -68, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 106, 58,
58, 58, 58, 58, 58, 58, 58, -68
},
{
11, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, 58, -69, -69, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 107, 58, 58, -69
},
{
11, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, 58, -70, -70, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 108,
58, 58, 58, 58, 58, 58, 58, -70
},
{
11, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, 58, -71, -71, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 109, 58,
58, 58, 58, 58, 58, 58, 58, -71
},
{
11, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, 58, -72, -72, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 110, 58, 58, 58, 58, 58, -72
},
{
11, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, 58, -73, -73, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 111, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -73
},
{
11, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, 58, -74, -74, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 112, 58, -74
},
{
11, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, 58, -75, -75, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 113, 58, 58, 58, 58, -75
},
{
11, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, 58, -76, -76, 58, 58, 58, 58,
58, 58, 58, 58, 58, 114, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -76
},
{
11, 77, 77, -77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77
},
{
11, -78, 78, 79, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78
},
{
11, 80, -79, -79, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80
},
{
11, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80
},
{
11, 81, 81, 82, 81, -81, 81, 81, -81, 81,
81, 81, 81, 81, 81, -81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81
},
{
11, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82
},
{
11, -83, -83, 84, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83
},
{
11, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84
},
{
11, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85
},
{
11, 86, 86, -86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86
},
{
11, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87
},
{
11, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, 115, 89, 89, -88, -88, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -88
},
{
11, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, 89, 89, 89, -89, -89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -89
},
{
11, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90
},
{
11, -91, -91, -91, -91, -91, -91, -91, -91, -91,
-91, 89, 89, 89, -91, -91, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -91
},
{
11, -92, -92, -92, -92, -92, -92, -92, -92, -92,
-92, 89, 89, 89, -92, -92, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -92
},
{
11, -93, -93, -93, -93, -93, -93, -93, -93, -93,
-93, -93, -93, -93, -93, -93, -93, -93, -93, -93,
-93, -93, -93, -93, -93, -93, -93, -93, -93, -93,
-93, -93, -93, -93, -93, -93, -93, -93
},
{
11, -94, -94, -94, -94, -94, -94, -94, -94, -94,
-94, -94, -94, 58, -94, -94, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 116, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -94
},
{
11, -95, -95, -95, -95, -95, -95, -95, -95, -95,
-95, -95, -95, 58, -95, -95, 58, 58, 58, 58,
58, 58, 58, 58, 58, 117, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -95
},
{
11, -96, -96, -96, -96, -96, -96, -96, -96, -96,
-96, -96, -96, 58, -96, -96, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 118, 58, 58,
58, 58, 58, 58, 58, 58, 58, -96
},
{
11, -97, -97, -97, -97, -97, -97, -97, -97, -97,
-97, -97, -97, 58, -97, -97, 58, 58, 58, 58,
58, 58, 119, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -97
},
{
11, -98, -98, -98, -98, -98, -98, -98, -98, -98,
-98, -98, -98, 58, -98, -98, 120, 121, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -98
},
{
11, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, -99, -99, 58, -99, -99, 58, 58, 58, 58,
58, 122, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -99
},
{
11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-100, -100, -100, 58, -100, -100, 58, 58, 123, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -100
},
{
11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-101, -101, -101, 58, -101, -101, 58, 58, 58, 124,
58, 58, 58, 58, 58, 125, 58, 126, 58, 58,
58, 58, 58, 58, 58, 58, 58, -101
},
{
11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
-102, -102, -102, 58, -102, -102, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
127, 58, 58, 58, 58, 58, 58, -102
},
{
11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
-103, -103, -103, 58, -103, -103, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -103
},
{
11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
-104, -104, -104, 58, -104, -104, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -104
},
{
11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-105, -105, -105, 58, -105, -105, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 128, 58,
58, 58, 58, 58, 58, 58, 58, -105
},
{
11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-106, -106, -106, 58, -106, -106, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 129, 58, -106
},
{
11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
-107, -107, -107, 58, -107, -107, 58, 58, 58, 58,
58, 58, 58, 58, 58, 130, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -107
},
{
11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-108, -108, -108, 58, -108, -108, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 131, 58, 58,
58, 58, 58, 58, 58, 58, 58, -108
},
{
11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
-109, -109, -109, 58, -109, -109, 58, 58, 58, 58,
58, 58, 58, 132, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -109
},
{
11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-110, -110, -110, 58, -110, -110, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 133, 58, -110
},
{
11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-111, -111, -111, 58, -111, -111, 58, 58, 58, 58,
58, 134, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -111
},
{
11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-112, -112, -112, 58, -112, -112, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 135, 58, 58, 58, 58, -112
},
{
11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-113, -113, -113, 58, -113, -113, 58, 58, 58, 58,
58, 58, 58, 58, 58, 136, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -113
},
{
11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-114, -114, -114, 58, -114, -114, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 137, 58, 58, 58, -114
},
{
11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-115, 89, 89, 89, -115, -115, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, -115
},
{
11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-116, -116, -116, 58, -116, -116, 58, 58, 58, 58,
58, 138, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -116
},
{
11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-117, -117, -117, 58, -117, -117, 58, 58, 58, 139,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -117
},
{
11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-118, -118, -118, 58, -118, -118, 58, 58, 58, 58,
58, 140, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -118
},
{
11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-119, -119, -119, 58, -119, -119, 58, 58, 58, 58,
58, 58, 58, 58, 58, 141, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -119
},
{
11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-120, -120, -120, 58, -120, -120, 58, 58, 142, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 143, 58, 58, -120
},
{
11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-121, -121, -121, 58, -121, -121, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 144, 58, -121
},
{
11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-122, -122, -122, 58, -122, -122, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 145, 58,
58, 58, 58, 58, 58, 58, 58, -122
}, },
{ {
11, -123, -123, -123, -123, -123, -123, -123, -123, -123, 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
-123, -123, -123, 58, -123, -123, 58, 58, 58, 58, 12, 12, 12, 12, 12, 12, 12
58, 58, 58, 58, 58, 58, 146, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -123
},
{
11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-124, -124, -124, 58, -124, -124, 58, 58, 58, 58,
58, 58, 58, 58, 147, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -124
},
{
11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-125, -125, -125, 58, -125, -125, 58, 58, 58, 58,
58, 58, 148, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -125
},
{
11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-126, -126, -126, 58, -126, -126, 58, 58, 58, 58,
58, 149, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -126
},
{
11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-127, -127, -127, 58, -127, -127, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -127
},
{
11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-128, -128, -128, 58, -128, -128, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 150, 58, 58,
58, 58, 58, 58, 58, 58, 58, -128
},
{
11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
-129, -129, -129, 58, -129, -129, 58, 58, 58, 151,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -129
},
{
11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-130, -130, -130, 58, -130, -130, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 152,
58, 58, 58, 58, 58, 58, 58, -130
},
{
11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-131, -131, -131, 58, -131, -131, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
153, 58, 58, 58, 58, 58, 58, -131
},
{
11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-132, -132, -132, 58, -132, -132, 58, 58, 58, 58,
58, 154, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -132
},
{
11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-133, -133, -133, 58, -133, -133, 58, 58, 58, 58,
58, 58, 58, 58, 58, 155, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -133
},
{
11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-134, -134, -134, 58, -134, -134, 58, 58, 58, 156,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -134
},
{
11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-135, -135, -135, 58, -135, -135, 58, 58, 58, 157,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -135
},
{
11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-136, -136, -136, 58, -136, -136, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 158, 58,
58, 58, 58, 58, 58, 58, 58, -136
},
{
11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -137, 58, -137, -137, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 159, 58, 58, -137
},
{
11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-138, -138, -138, 58, -138, -138, 58, 160, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -138
},
{
11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-139, -139, -139, 58, -139, -139, 58, 58, 58, 58,
58, 161, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -139
},
{
11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-140, -140, -140, 58, -140, -140, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 162, 58,
58, 58, 58, 58, 58, 58, 58, -140
},
{
11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-141, -141, -141, 58, -141, -141, 58, 58, 58, 58,
58, 58, 58, 163, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -141
},
{
11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-142, -142, -142, 58, -142, -142, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 164,
58, 58, 58, 58, 58, 58, 58, -142
},
{
11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-143, -143, -143, 58, -143, -143, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 165, 58, 58, 58, 58, -143
},
{
11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-144, -144, -144, 58, -144, -144, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 166, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -144
},
{
11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, 58, -145, -145, 58, 58, 58, 58,
167, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -145
},
{
11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-146, -146, -146, 58, -146, -146, 58, 58, 58, 58,
58, 168, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -146
},
{
11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-147, -147, -147, 58, -147, -147, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 169,
58, 58, 58, 58, 58, 58, 58, -147
},
{
11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-148, -148, -148, 58, -148, -148, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -148
},
{
11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-149, -149, -149, 58, -149, -149, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 170, 58,
58, 58, 58, 58, 58, 58, 58, -149
},
{
11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-150, -150, -150, 58, -150, -150, 58, 58, 58, 58,
58, 171, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -150
},
{
11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-151, -151, -151, 58, -151, -151, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 172,
58, 58, 58, 58, 58, 58, 58, -151
}, },
{ {
11, -152, -152, -152, -152, -152, -152, -152, -152, -152, 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
-152, -152, -152, 58, -152, -152, 58, 58, 58, 58, 12, 12, 12, 12, 12, 12, 12
58, 58, 58, 58, 58, 58, 58, 58, 173, 58,
58, 58, 58, 58, 58, 58, 58, -152
}, },
{ {
11, -153, -153, -153, -153, -153, -153, -153, -153, -153, 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
-153, -153, -153, 58, -153, -153, 58, 58, 58, 58, 16, 16, 16, 18, 16, 16, 16
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 174, 58, 58, -153
}, },
{ {
11, -154, -154, -154, -154, -154, -154, -154, -154, -154, 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
-154, -154, -154, 58, -154, -154, 58, 58, 58, 58, 16, 16, 16, 18, 16, 16, 16
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -154
}, },
{ {
11, -155, -155, -155, -155, -155, -155, -155, -155, -155, 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
-155, -155, -155, 58, -155, -155, 58, 58, 58, 58, 19, 19, 19, 19, 19, 19, 19
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 175, 58, 58, 58, 58, -155
}, },
{ {
11, -156, -156, -156, -156, -156, -156, -156, -156, -156, 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
-156, -156, -156, 58, -156, -156, 58, 58, 58, 58, 19, 19, 19, 19, 19, 19, 19
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 176, 58, 58, -156
}, },
{ {
11, -157, -157, -157, -157, -157, -157, -157, -157, -157, 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
-157, -157, -157, 58, -157, -157, 58, 58, 58, 58, 22, 22, 22, 22, 22, 25, 22
58, 177, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -157
}, },
{ {
11, -158, -158, -158, -158, -158, -158, -158, -158, -158, 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
-158, -158, -158, 58, -158, -158, 58, 58, 58, 58, 22, 22, 22, 22, 22, 25, 22
58, 58, 58, 178, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -158
}, },
{ {
11, -159, -159, -159, -159, -159, -159, -159, -159, -159, 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
-159, -159, -159, 58, -159, -159, 58, 179, 58, 58, 33, 34, 35, 35, 36, 37, 38
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -159
}, },
{ {
11, -160, -160, -160, -160, -160, -160, -160, -160, -160, 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
-160, -160, -160, 58, -160, -160, 58, 58, 58, 58, 33, 34, 35, 35, 36, 37, 38
58, 58, 58, 58, 58, 58, 58, 58, 180, 58,
58, 58, 58, 58, 58, 58, 58, -160
}, },
{ {
11, -161, -161, -161, -161, -161, -161, -161, -161, -161, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-161, -161, -161, 58, -161, -161, 58, 58, 58, 58, -11, -11, -11, -11, -11, -11, -11
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -161
}, },
{ {
11, -162, -162, -162, -162, -162, -162, -162, -162, -162, 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-162, -162, -162, 58, -162, -162, 58, 58, 58, 58, -12, -12, -12, -12, -12, -12, -12
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 181, 58, 58, -162
}, },
{ {
11, -163, -163, -163, -163, -163, -163, -163, -163, -163, 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
-163, -163, -163, 58, -163, -163, 58, 58, 58, 58, -13, -13, -13, -13, -13, -13, -13
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -163
}, },
{ {
11, -164, -164, -164, -164, -164, -164, -164, -164, -164, 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-164, -164, -164, 58, -164, -164, 58, 58, 58, 58, -14, -14, -14, -14, -14, -14, -14
58, 58, 58, 58, 58, 58, 58, 58, 58, 182,
58, 58, 58, 58, 58, 58, 58, -164
}, },
{ {
11, -165, -165, -165, -165, -165, -165, -165, -165, -165, 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-165, -165, -165, 58, -165, -165, 58, 58, 58, 58, 42, 42, 42, 42, 42, 42, 42
58, 58, 58, 58, 58, 183, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -165
}, },
{ {
11, -166, -166, -166, -166, -166, -166, -166, -166, -166, 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-166, -166, -166, 58, -166, -166, 58, 58, 58, 58, -16, -16, -16, -16, -16, -16, -16
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 184, 58, 58, -166
}, },
{ {
11, -167, -167, -167, -167, -167, -167, -167, -167, -167, 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-167, -167, -167, 58, -167, -167, 58, 58, 58, 58, -17, -17, -17, -17, -17, -17, -17
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 185, 58, 58, 58, -167
}, },
{ {
11, -168, -168, -168, -168, -168, -168, -168, -168, -168, 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-168, -168, -168, 58, -168, -168, 58, 58, 58, 58, -18, -18, -18, 44, -18, -18, -18
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -168
}, },
{ {
11, -169, -169, -169, -169, -169, -169, -169, -169, -169, 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
-169, -169, -169, 58, -169, -169, 58, 58, 58, 58, 45, 45, 45, 45, 45, 45, 45
58, 58, 58, 58, 58, 186, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -169
}, },
{ {
11, -170, -170, -170, -170, -170, -170, -170, -170, -170, 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
-170, -170, -170, 58, -170, -170, 58, 58, 58, 58, -20, -20, -20, -20, -20, -20, -20
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 187, 58, -170
}, },
{ {
11, -171, -171, -171, -171, -171, -171, -171, -171, -171, 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
-171, -171, -171, 58, -171, -171, 58, 58, 58, 58, 48, 48, 48, 48, 48, 48, 48
58, 58, 58, 58, 58, 58, 58, 58, 188, 58,
58, 58, 58, 58, 58, 58, 58, -171
}, },
{ {
11, -172, -172, -172, -172, -172, -172, -172, -172, -172, 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
-172, -172, -172, 58, -172, -172, 58, 58, 58, 58, 49, 49, 49, 49, 49, -22, 49
58, 58, 58, 58, 58, 58, 58, 58, 189, 58,
58, 58, 58, 58, 58, 58, 58, -172
}, },
{ {
11, -173, -173, -173, -173, -173, -173, -173, -173, -173, 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-173, -173, -173, 58, -173, -173, 58, 190, 58, 58, -23, -23, -23, -23, -23, -23, -23
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -173
}, },
{ {
11, -174, -174, -174, -174, -174, -174, -174, -174, -174, 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-174, -174, -174, 58, -174, -174, 58, 58, 58, 58, -24, -24, -24, -24, -24, -24, -24
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -174
}, },
{ {
11, -175, -175, -175, -175, -175, -175, -175, -175, -175, 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
-175, -175, -175, 58, -175, -175, 58, 58, 58, 58, 51, 51, 51, 51, 51, 51, 51
58, 191, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -175
}, },
{ {
11, -176, -176, -176, -176, -176, -176, -176, -176, -176, 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-176, -176, -176, 58, -176, -176, 58, 58, 58, 58, -26, -26, -26, -26, -26, -26, -26
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -176
}, },
{ {
11, -177, -177, -177, -177, -177, -177, -177, -177, -177, 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-177, -177, -177, 58, -177, -177, 58, 58, 58, 58, -27, -27, -27, -27, -27, -27, -27
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -177
}, },
{ {
11, -178, -178, -178, -178, -178, -178, -178, -178, -178, 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-178, -178, -178, 58, -178, -178, 58, 58, 58, 58, -28, -28, -28, -28, 53, -28, -28
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -178
}, },
{ {
11, -179, -179, -179, -179, -179, -179, -179, -179, -179, 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-179, -179, -179, 58, -179, -179, 58, 58, 58, 58, -29, -29, -29, -29, -29, -29, -29
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 192, 58, 58, -179
}, },
{ {
11, -180, -180, -180, -180, -180, -180, -180, -180, -180, 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
-180, -180, -180, 58, -180, -180, 58, 58, 58, 58, 54, 54, 54, 54, 54, 54, 54
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -180
}, },
{ {
11, -181, -181, -181, -181, -181, -181, -181, -181, -181, 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
-181, -181, -181, 58, -181, -181, 58, 58, 58, 58, -31, -31, -31, -31, -31, -31, -31
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -181
}, },
{ {
11, -182, -182, -182, -182, -182, -182, -182, -182, -182, 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-182, -182, -182, 58, -182, -182, 58, 58, 58, 58, -32, -32, -32, -32, -32, -32, -32
58, 58, 58, 58, 58, 58, 193, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -182
}, },
{ {
11, -183, -183, -183, -183, -183, -183, -183, -183, -183, 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-183, -183, -183, 58, -183, -183, 58, 58, 58, 58, -33, -33, -33, -33, -33, -33, -33
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 194, 58, 58, 58, -183
}, },
{ {
11, -184, -184, -184, -184, -184, -184, -184, -184, -184, 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-184, -184, -184, 58, -184, -184, 58, 58, 58, 58, -34, 56, 57, 57, -34, -34, -34
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -184
}, },
{ {
11, -185, -185, -185, -185, -185, -185, -185, -185, -185, 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-185, -185, -185, 58, -185, -185, 58, 58, 58, 58, -35, 57, 57, 57, -35, -35, -35
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -185
}, },
{ {
11, -186, -186, -186, -186, -186, -186, -186, -186, -186, 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-186, -186, -186, 58, -186, -186, 58, 58, 58, 195, -36, -36, -36, -36, -36, -36, -36
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -186
}, },
{ {
11, -187, -187, -187, -187, -187, -187, -187, -187, -187, 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
-187, -187, -187, 58, -187, -187, 58, 58, 58, 58, -37, -37, -37, -37, -37, -37, -37
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -187
}, },
{ {
11, -188, -188, -188, -188, -188, -188, -188, -188, -188, 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-188, -188, -188, 58, -188, -188, 58, 58, 58, 58, -38, -38, -38, -38, -38, -38, 59
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 196, 58, -188
}, },
{ {
11, -189, -189, -189, -189, -189, -189, -189, -189, -189, 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
-189, -189, -189, 58, -189, -189, 58, 58, 58, 58, -39, -39, -39, -39, -39, -39, -39
58, 58, 197, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -189
}, },
{ {
11, -190, -190, -190, -190, -190, -190, -190, -190, -190, 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-190, -190, -190, 58, -190, -190, 58, 58, 58, 58, -40, -40, -40, -40, -40, -40, -40
58, 58, 58, 58, 58, 58, 198, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -190
}, },
{ {
11, -191, -191, -191, -191, -191, -191, -191, -191, -191, 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-191, -191, -191, 58, -191, -191, 58, 58, 58, 58, 42, 42, 42, 42, 42, 42, 42
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 199, 58, 58, 58, -191
}, },
{ {
11, -192, -192, -192, -192, -192, -192, -192, -192, -192, 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-192, -192, -192, 58, -192, -192, 58, 58, 58, 58, 42, 42, 42, 42, 42, 42, 42
58, 200, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -192
}, },
{ {
11, -193, -193, -193, -193, -193, -193, -193, -193, -193, 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-193, -193, -193, 58, -193, -193, 58, 58, 58, 58, -43, -43, -43, -43, -43, -43, -43
58, 201, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -193
}, },
{ {
11, -194, -194, -194, -194, -194, -194, -194, -194, -194, 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-194, -194, -194, 58, -194, -194, 58, 58, 58, 58, -44, -44, -44, 44, -44, -44, -44
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 202, 58, 58, -194
}, },
{ {
11, -195, -195, -195, -195, -195, -195, -195, -195, -195, 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
-195, -195, -195, 58, -195, -195, 58, 58, 58, 58, 45, 45, 45, 45, 45, 45, 45
58, 203, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -195
}, },
{ {
11, -196, -196, -196, -196, -196, -196, -196, -196, -196, 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
-196, -196, -196, 58, -196, -196, 58, 58, 58, 58, -46, -46, -46, -46, -46, -46, -46
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -196
}, },
{ {
11, -197, -197, -197, -197, -197, -197, -197, -197, -197, 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
-197, -197, -197, 58, -197, -197, 58, 58, 58, 58, 48, 48, 48, 48, 48, 48, 48
58, 58, 58, 58, 58, 204, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -197
}, },
{ {
11, -198, -198, -198, -198, -198, -198, -198, -198, -198, 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-198, -198, -198, 58, -198, -198, 58, 58, 58, 58, -48, -48, -48, -48, -48, -48, -48
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -198
}, },
{ {
11, -199, -199, -199, -199, -199, -199, -199, -199, -199, 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
-199, -199, -199, 58, -199, -199, 58, 58, 58, 58, 49, 49, 49, 49, 49, -49, 49
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -199
}, },
{ {
11, -200, -200, -200, -200, -200, -200, -200, -200, -200, 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-200, -200, -200, 58, -200, -200, 58, 58, 58, 58, -50, -50, -50, -50, -50, -50, -50
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -200
}, },
{ {
11, -201, -201, -201, -201, -201, -201, -201, -201, -201, 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
-201, -201, -201, 58, -201, -201, 58, 205, 58, 58, -51, -51, -51, -51, -51, -51, -51
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -201
}, },
{ {
11, -202, -202, -202, -202, -202, -202, -202, -202, -202, 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-202, -202, -202, 58, -202, -202, 58, 206, 58, 58, -52, -52, -52, -52, -52, -52, -52
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -202
}, },
{ {
11, -203, -203, -203, -203, -203, -203, -203, -203, -203, 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-203, -203, -203, 58, -203, -203, 58, 58, 58, 58, -53, -53, -53, -53, -53, -53, -53
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -203
}, },
{ {
11, -204, -204, -204, -204, -204, -204, -204, -204, -204, 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
-204, -204, -204, 58, -204, -204, 58, 58, 58, 58, 54, 54, 54, 54, 54, 54, 54
58, 58, 58, 207, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -204
}, },
{ {
11, -205, -205, -205, -205, -205, -205, -205, -205, -205, 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-205, -205, -205, 58, -205, -205, 58, 58, 58, 58, -55, -55, -55, -55, -55, -55, -55
58, 58, 58, 58, 58, 58, 58, 58, 208, 58,
58, 58, 58, 58, 58, 58, 58, -205
}, },
{ {
11, -206, -206, -206, -206, -206, -206, -206, -206, -206, 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-206, -206, -206, 58, -206, -206, 58, 58, 58, 58, -56, 60, 57, 57, -56, -56, -56
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 209, 58, 58, -206
}, },
{ {
11, -207, -207, -207, -207, -207, -207, -207, -207, -207, 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-207, -207, -207, 58, -207, -207, 58, 58, 58, 58, -57, 57, 57, 57, -57, -57, -57
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -207
}, },
{ {
11, -208, -208, -208, -208, -208, -208, -208, -208, -208, 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-208, -208, -208, 58, -208, -208, 58, 58, 58, 58, -58, -58, -58, -58, -58, -58, -58
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -208
}, },
{ {
11, -209, -209, -209, -209, -209, -209, -209, -209, -209, 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-209, -209, -209, 58, -209, -209, 58, 58, 58, 58, -59, -59, -59, -59, -59, -59, -59
58, 210, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -209
}, },
{ {
11, -210, -210, -210, -210, -210, -210, -210, -210, -210, 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-210, -210, -210, 58, -210, -210, 58, 58, 58, 58, -60, 57, 57, 57, -60, -60, -60
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -210
}, },
} ; } ;
...@@ -1918,8 +674,8 @@ static void yy_fatal_error (yyconst char msg[] ); ...@@ -1918,8 +674,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \ *yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp; (yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 64 #define YY_NUM_RULES 33
#define YY_END_OF_BUFFER 65 #define YY_END_OF_BUFFER 34
/* This struct is not used in this scanner, /* This struct is not used in this scanner,
but its presence is necessary. */ but its presence is necessary. */
struct yy_trans_info struct yy_trans_info
...@@ -1927,31 +683,14 @@ struct yy_trans_info ...@@ -1927,31 +683,14 @@ struct yy_trans_info
flex_int32_t yy_verify; flex_int32_t yy_verify;
flex_int32_t yy_nxt; flex_int32_t yy_nxt;
}; };
static yyconst flex_int16_t yy_accept[211] = static yyconst flex_int16_t yy_accept[61] =
{ 0, { 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
65, 5, 4, 3, 2, 36, 37, 35, 35, 35, 34, 5, 4, 3, 2, 7, 8, 6, 32, 29,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
63, 60, 62, 55, 59, 58, 57, 53, 48, 42, 22, 11, 12, 19, 19, 14, 22, 22, 4, 3,
47, 51, 53, 40, 41, 50, 50, 43, 53, 50, 2, 2, 1, 6, 32, 29, 31, 30, 24, 23,
50, 53, 4, 3, 2, 2, 1, 35, 35, 35, 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
35, 35, 35, 35, 16, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 63, 60, 62, 61,
55, 54, 57, 56, 44, 51, 38, 50, 50, 52,
45, 46, 39, 35, 35, 35, 35, 35, 35, 35,
35, 35, 30, 29, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 49, 25, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 15, 35, 7, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 17, 35, 35,
35, 35, 35, 34, 35, 35, 35, 35, 35, 35,
10, 35, 13, 35, 35, 35, 35, 33, 35, 35,
35, 35, 35, 22, 35, 32, 9, 31, 35, 26,
12, 35, 35, 21, 18, 35, 8, 35, 35, 35,
35, 35, 27, 35, 35, 6, 35, 20, 19, 23,
35, 35, 11, 35, 35, 35, 14, 28, 35, 24
} ; } ;
static yyconst flex_int32_t yy_ec[256] = static yyconst flex_int32_t yy_ec[256] =
...@@ -1965,11 +704,11 @@ static yyconst flex_int32_t yy_ec[256] = ...@@ -1965,11 +704,11 @@ static yyconst flex_int32_t yy_ec[256] =
14, 1, 1, 1, 13, 13, 13, 13, 13, 13, 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1, 15, 1, 1, 16, 1, 17, 18, 19, 20, 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
21, 22, 23, 24, 25, 13, 13, 26, 27, 28, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
29, 30, 31, 32, 33, 34, 35, 13, 13, 36, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 1, 37, 1, 1, 1, 1, 1, 1, 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
...@@ -2014,8 +753,7 @@ char *zconftext; ...@@ -2014,8 +753,7 @@ char *zconftext;
#define START_STRSIZE 16 #define START_STRSIZE 16
char *text; static char *text;
static char *text_ptr;
static int text_size, text_asize; static int text_size, text_asize;
struct buffer { struct buffer {
...@@ -2034,23 +772,22 @@ void new_string(void) ...@@ -2034,23 +772,22 @@ void new_string(void)
{ {
text = malloc(START_STRSIZE); text = malloc(START_STRSIZE);
text_asize = START_STRSIZE; text_asize = START_STRSIZE;
text_ptr = text;
text_size = 0; text_size = 0;
*text_ptr = 0; *text = 0;
} }
void append_string(const char *str, int size) void append_string(const char *str, int size)
{ {
int new_size = text_size + size + 1; int new_size = text_size + size + 1;
if (new_size > text_asize) { if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
text = realloc(text, new_size); text = realloc(text, new_size);
text_asize = new_size; text_asize = new_size;
text_ptr = text + text_size;
} }
memcpy(text_ptr, str, size); memcpy(text + text_size, str, size);
text_ptr += size;
text_size += size; text_size += size;
*text_ptr = 0; text[text_size] = 0;
} }
void alloc_string(const char *str, int size) void alloc_string(const char *str, int size)
...@@ -2066,11 +803,13 @@ void alloc_string(const char *str, int size) ...@@ -2066,11 +803,13 @@ void alloc_string(const char *str, int size)
#define STRING 3 #define STRING 3
#define PARAM 4 #define PARAM 4
#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way /* Special case for "unistd.h", since it is non-ANSI. We include it way
* down here because we want the user's section 1 to have been scanned first. * down here because we want the user's section 1 to have been scanned first.
* The user has a chance to override it with an option. * The user has a chance to override it with an option.
*/ */
#include <unistd.h> #include <unistd.h>
#endif
#ifndef YY_EXTRA_TYPE #ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void * #define YY_EXTRA_TYPE void *
...@@ -2282,175 +1021,56 @@ YY_RULE_SETUP ...@@ -2282,175 +1021,56 @@ YY_RULE_SETUP
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
BEGIN(PARAM); return T_MAINMENU;
YY_BREAK
case 7:
YY_RULE_SETUP
BEGIN(PARAM); return T_MENU;
YY_BREAK
case 8:
YY_RULE_SETUP
BEGIN(PARAM); return T_ENDMENU;
YY_BREAK
case 9:
YY_RULE_SETUP
BEGIN(PARAM); return T_SOURCE;
YY_BREAK
case 10:
YY_RULE_SETUP
BEGIN(PARAM); return T_CHOICE;
YY_BREAK
case 11:
YY_RULE_SETUP
BEGIN(PARAM); return T_ENDCHOICE;
YY_BREAK
case 12:
YY_RULE_SETUP
BEGIN(PARAM); return T_COMMENT;
YY_BREAK
case 13:
YY_RULE_SETUP
BEGIN(PARAM); return T_CONFIG;
YY_BREAK
case 14:
YY_RULE_SETUP
BEGIN(PARAM); return T_MENUCONFIG;
YY_BREAK
case 15:
YY_RULE_SETUP
BEGIN(PARAM); return T_HELP;
YY_BREAK
case 16:
YY_RULE_SETUP
BEGIN(PARAM); return T_IF;
YY_BREAK
case 17:
YY_RULE_SETUP
BEGIN(PARAM); return T_ENDIF;
YY_BREAK
case 18:
YY_RULE_SETUP
BEGIN(PARAM); return T_DEPENDS;
YY_BREAK
case 19:
YY_RULE_SETUP
BEGIN(PARAM); return T_REQUIRES;
YY_BREAK
case 20:
YY_RULE_SETUP
BEGIN(PARAM); return T_OPTIONAL;
YY_BREAK
case 21:
YY_RULE_SETUP
BEGIN(PARAM); return T_DEFAULT;
YY_BREAK
case 22:
YY_RULE_SETUP
BEGIN(PARAM); return T_PROMPT;
YY_BREAK
case 23:
YY_RULE_SETUP
BEGIN(PARAM); return T_TRISTATE;
YY_BREAK
case 24:
YY_RULE_SETUP
BEGIN(PARAM); return T_DEF_TRISTATE;
YY_BREAK
case 25:
YY_RULE_SETUP
BEGIN(PARAM); return T_BOOLEAN;
YY_BREAK
case 26:
YY_RULE_SETUP
BEGIN(PARAM); return T_BOOLEAN;
YY_BREAK
case 27:
YY_RULE_SETUP
BEGIN(PARAM); return T_DEF_BOOLEAN;
YY_BREAK
case 28:
YY_RULE_SETUP
BEGIN(PARAM); return T_DEF_BOOLEAN;
YY_BREAK
case 29:
YY_RULE_SETUP
BEGIN(PARAM); return T_INT;
YY_BREAK
case 30:
YY_RULE_SETUP
BEGIN(PARAM); return T_HEX;
YY_BREAK
case 31:
YY_RULE_SETUP
BEGIN(PARAM); return T_STRING;
YY_BREAK
case 32:
YY_RULE_SETUP
BEGIN(PARAM); return T_SELECT;
YY_BREAK
case 33:
YY_RULE_SETUP
BEGIN(PARAM); return T_SELECT;
YY_BREAK
case 34:
YY_RULE_SETUP
BEGIN(PARAM); return T_RANGE;
YY_BREAK
case 35:
YY_RULE_SETUP
{ {
struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
if (id && id->flags & TF_COMMAND) {
BEGIN(PARAM);
return id->token;
}
alloc_string(zconftext, zconfleng); alloc_string(zconftext, zconfleng);
zconflval.string = text; zconflval.string = text;
return T_WORD; return T_WORD;
} }
YY_BREAK YY_BREAK
case 36: case 7:
YY_RULE_SETUP YY_RULE_SETUP
YY_BREAK YY_BREAK
case 37: case 8:
/* rule 37 can match eol */ /* rule 8 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
current_file->lineno++; BEGIN(INITIAL); current_file->lineno++; BEGIN(INITIAL);
YY_BREAK YY_BREAK
case 38: case 9:
YY_RULE_SETUP YY_RULE_SETUP
return T_AND; return T_AND;
YY_BREAK YY_BREAK
case 39: case 10:
YY_RULE_SETUP YY_RULE_SETUP
return T_OR; return T_OR;
YY_BREAK YY_BREAK
case 40: case 11:
YY_RULE_SETUP YY_RULE_SETUP
return T_OPEN_PAREN; return T_OPEN_PAREN;
YY_BREAK YY_BREAK
case 41: case 12:
YY_RULE_SETUP YY_RULE_SETUP
return T_CLOSE_PAREN; return T_CLOSE_PAREN;
YY_BREAK YY_BREAK
case 42: case 13:
YY_RULE_SETUP YY_RULE_SETUP
return T_NOT; return T_NOT;
YY_BREAK YY_BREAK
case 43: case 14:
YY_RULE_SETUP YY_RULE_SETUP
return T_EQUAL; return T_EQUAL;
YY_BREAK YY_BREAK
case 44: case 15:
YY_RULE_SETUP YY_RULE_SETUP
return T_UNEQUAL; return T_UNEQUAL;
YY_BREAK YY_BREAK
case 45: case 16:
YY_RULE_SETUP
return T_IF;
YY_BREAK
case 46:
YY_RULE_SETUP
return T_ON;
YY_BREAK
case 47:
YY_RULE_SETUP YY_RULE_SETUP
{ {
str = zconftext[0]; str = zconftext[0];
...@@ -2458,33 +1078,36 @@ YY_RULE_SETUP ...@@ -2458,33 +1078,36 @@ YY_RULE_SETUP
BEGIN(STRING); BEGIN(STRING);
} }
YY_BREAK YY_BREAK
case 48: case 17:
/* rule 48 can match eol */ /* rule 17 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
BEGIN(INITIAL); current_file->lineno++; return T_EOL; BEGIN(INITIAL); current_file->lineno++; return T_EOL;
YY_BREAK YY_BREAK
case 49: case 18:
YY_RULE_SETUP YY_RULE_SETUP
/* ignore */ /* ignore */
YY_BREAK YY_BREAK
case 50: case 19:
YY_RULE_SETUP YY_RULE_SETUP
{ {
struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
if (id && id->flags & TF_PARAM)
return id->token;
alloc_string(zconftext, zconfleng); alloc_string(zconftext, zconfleng);
zconflval.string = text; zconflval.string = text;
return T_WORD; return T_WORD;
} }
YY_BREAK YY_BREAK
case 51: case 20:
YY_RULE_SETUP YY_RULE_SETUP
/* comment */ /* comment */
YY_BREAK YY_BREAK
case 52: case 21:
/* rule 52 can match eol */ /* rule 21 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
current_file->lineno++; current_file->lineno++;
YY_BREAK YY_BREAK
case 53: case 22:
YY_RULE_SETUP YY_RULE_SETUP
YY_BREAK YY_BREAK
...@@ -2494,8 +1117,8 @@ case YY_STATE_EOF(PARAM): ...@@ -2494,8 +1117,8 @@ case YY_STATE_EOF(PARAM):
} }
YY_BREAK YY_BREAK
case 54: case 23:
/* rule 54 can match eol */ /* rule 23 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
(yy_c_buf_p) = yy_cp -= 1; (yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up zconftext again */ YY_DO_BEFORE_ACTION; /* set up zconftext again */
...@@ -2506,14 +1129,14 @@ YY_RULE_SETUP ...@@ -2506,14 +1129,14 @@ YY_RULE_SETUP
return T_WORD_QUOTE; return T_WORD_QUOTE;
} }
YY_BREAK YY_BREAK
case 55: case 24:
YY_RULE_SETUP YY_RULE_SETUP
{ {
append_string(zconftext, zconfleng); append_string(zconftext, zconfleng);
} }
YY_BREAK YY_BREAK
case 56: case 25:
/* rule 56 can match eol */ /* rule 25 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
(yy_c_buf_p) = yy_cp -= 1; (yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up zconftext again */ YY_DO_BEFORE_ACTION; /* set up zconftext again */
...@@ -2524,13 +1147,13 @@ YY_RULE_SETUP ...@@ -2524,13 +1147,13 @@ YY_RULE_SETUP
return T_WORD_QUOTE; return T_WORD_QUOTE;
} }
YY_BREAK YY_BREAK
case 57: case 26:
YY_RULE_SETUP YY_RULE_SETUP
{ {
append_string(zconftext + 1, zconfleng - 1); append_string(zconftext + 1, zconfleng - 1);
} }
YY_BREAK YY_BREAK
case 58: case 27:
YY_RULE_SETUP YY_RULE_SETUP
{ {
if (str == zconftext[0]) { if (str == zconftext[0]) {
...@@ -2541,8 +1164,8 @@ YY_RULE_SETUP ...@@ -2541,8 +1164,8 @@ YY_RULE_SETUP
append_string(zconftext, 1); append_string(zconftext, 1);
} }
YY_BREAK YY_BREAK
case 59: case 28:
/* rule 59 can match eol */ /* rule 28 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
{ {
printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
...@@ -2557,7 +1180,7 @@ case YY_STATE_EOF(STRING): ...@@ -2557,7 +1180,7 @@ case YY_STATE_EOF(STRING):
} }
YY_BREAK YY_BREAK
case 60: case 29:
YY_RULE_SETUP YY_RULE_SETUP
{ {
ts = 0; ts = 0;
...@@ -2582,8 +1205,8 @@ YY_RULE_SETUP ...@@ -2582,8 +1205,8 @@ YY_RULE_SETUP
} }
} }
YY_BREAK YY_BREAK
case 61: case 30:
/* rule 61 can match eol */ /* rule 30 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
(yy_c_buf_p) = yy_cp -= 1; (yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up zconftext again */ YY_DO_BEFORE_ACTION; /* set up zconftext again */
...@@ -2594,15 +1217,15 @@ YY_RULE_SETUP ...@@ -2594,15 +1217,15 @@ YY_RULE_SETUP
return T_HELPTEXT; return T_HELPTEXT;
} }
YY_BREAK YY_BREAK
case 62: case 31:
/* rule 62 can match eol */ /* rule 31 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
{ {
current_file->lineno++; current_file->lineno++;
append_string("\n", 1); append_string("\n", 1);
} }
YY_BREAK YY_BREAK
case 63: case 32:
YY_RULE_SETUP YY_RULE_SETUP
{ {
append_string(zconftext, zconfleng); append_string(zconftext, zconfleng);
...@@ -2628,7 +1251,7 @@ case YY_STATE_EOF(COMMAND): ...@@ -2628,7 +1251,7 @@ case YY_STATE_EOF(COMMAND):
yyterminate(); yyterminate();
} }
YY_BREAK YY_BREAK
case 64: case 33:
YY_RULE_SETUP YY_RULE_SETUP
YY_FATAL_ERROR( "flex scanner jammed" ); YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK YY_BREAK
...@@ -3338,10 +1961,10 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size ) ...@@ -3338,10 +1961,10 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
* @note If you want to scan bytes that may contain NUL values, then use * @note If you want to scan bytes that may contain NUL values, then use
* zconf_scan_bytes() instead. * zconf_scan_bytes() instead.
*/ */
YY_BUFFER_STATE zconf_scan_string (yyconst char * str ) YY_BUFFER_STATE zconf_scan_string (yyconst char * yy_str )
{ {
return zconf_scan_bytes(str,strlen(str) ); return zconf_scan_bytes(yy_str,strlen(yy_str) );
} }
/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will /** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
......
...@@ -37,6 +37,16 @@ extern "C" { ...@@ -37,6 +37,16 @@ extern "C" {
#define _(text) gettext(text) #define _(text) gettext(text)
#define N_(text) (text) #define N_(text) (text)
#define TF_COMMAND 0x0001
#define TF_PARAM 0x0002
struct kconf_id {
int name;
int token;
unsigned int flags;
};
int zconfparse(void); int zconfparse(void);
void zconfdump(FILE *out); void zconfdump(FILE *out);
......
%language=ANSI-C
%define hash-function-name kconf_id_hash
%define lookup-function-name kconf_id_lookup
%define string-pool-name kconf_id_strings
%compare-strncmp
%enum
%pic
%struct-type
struct kconf_id;
%%
mainmenu, T_MAINMENU, TF_COMMAND
menu, T_MENU, TF_COMMAND
endmenu, T_ENDMENU, TF_COMMAND
source, T_SOURCE, TF_COMMAND
choice, T_CHOICE, TF_COMMAND
endchoice, T_ENDCHOICE, TF_COMMAND
comment, T_COMMENT, TF_COMMAND
config, T_CONFIG, TF_COMMAND
menuconfig, T_MENUCONFIG, TF_COMMAND
help, T_HELP, TF_COMMAND
if, T_IF, TF_COMMAND|TF_PARAM
endif, T_ENDIF, TF_COMMAND
depends, T_DEPENDS, TF_COMMAND
requires, T_REQUIRES, TF_COMMAND
optional, T_OPTIONAL, TF_COMMAND
default, T_DEFAULT, TF_COMMAND
prompt, T_PROMPT, TF_COMMAND
tristate, T_TRISTATE, TF_COMMAND
def_tristate, T_DEF_TRISTATE, TF_COMMAND
bool, T_BOOLEAN, TF_COMMAND
boolean, T_BOOLEAN, TF_COMMAND
def_bool, T_DEF_BOOLEAN, TF_COMMAND
def_boolean, T_DEF_BOOLEAN, TF_COMMAND
int, T_INT, TF_COMMAND
hex, T_HEX, TF_COMMAND
string, T_STRING, TF_COMMAND
select, T_SELECT, TF_COMMAND
enable, T_SELECT, TF_COMMAND
range, T_RANGE, TF_COMMAND
on, T_ON, TF_PARAM
%%
/* ANSI-C code produced by gperf version 3.0.1 */
/* Command-line: gperf */
/* Computed positions: -k'1,3' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
struct kconf_id;
/* maximum key range = 45, duplicates = 0 */
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static unsigned int
kconf_id_hash (register const char *str, register unsigned int len)
{
static unsigned char asso_values[] =
{
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 25, 10, 15,
0, 0, 5, 47, 0, 0, 47, 47, 0, 10,
0, 20, 20, 20, 5, 0, 0, 20, 47, 47,
20, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47
};
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[2]];
/*FALLTHROUGH*/
case 2:
case 1:
hval += asso_values[(unsigned char)str[0]];
break;
}
return hval;
}
struct kconf_id_strings_t
{
char kconf_id_strings_str2[sizeof("if")];
char kconf_id_strings_str3[sizeof("int")];
char kconf_id_strings_str4[sizeof("help")];
char kconf_id_strings_str5[sizeof("endif")];
char kconf_id_strings_str6[sizeof("select")];
char kconf_id_strings_str7[sizeof("endmenu")];
char kconf_id_strings_str8[sizeof("tristate")];
char kconf_id_strings_str9[sizeof("endchoice")];
char kconf_id_strings_str10[sizeof("range")];
char kconf_id_strings_str11[sizeof("string")];
char kconf_id_strings_str12[sizeof("default")];
char kconf_id_strings_str13[sizeof("def_bool")];
char kconf_id_strings_str14[sizeof("menu")];
char kconf_id_strings_str16[sizeof("def_boolean")];
char kconf_id_strings_str17[sizeof("def_tristate")];
char kconf_id_strings_str18[sizeof("mainmenu")];
char kconf_id_strings_str20[sizeof("menuconfig")];
char kconf_id_strings_str21[sizeof("config")];
char kconf_id_strings_str22[sizeof("on")];
char kconf_id_strings_str23[sizeof("hex")];
char kconf_id_strings_str26[sizeof("source")];
char kconf_id_strings_str27[sizeof("depends")];
char kconf_id_strings_str28[sizeof("optional")];
char kconf_id_strings_str31[sizeof("enable")];
char kconf_id_strings_str32[sizeof("comment")];
char kconf_id_strings_str33[sizeof("requires")];
char kconf_id_strings_str34[sizeof("bool")];
char kconf_id_strings_str37[sizeof("boolean")];
char kconf_id_strings_str41[sizeof("choice")];
char kconf_id_strings_str46[sizeof("prompt")];
};
static struct kconf_id_strings_t kconf_id_strings_contents =
{
"if",
"int",
"help",
"endif",
"select",
"endmenu",
"tristate",
"endchoice",
"range",
"string",
"default",
"def_bool",
"menu",
"def_boolean",
"def_tristate",
"mainmenu",
"menuconfig",
"config",
"on",
"hex",
"source",
"depends",
"optional",
"enable",
"comment",
"requires",
"bool",
"boolean",
"choice",
"prompt"
};
#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
#ifdef __GNUC__
__inline
#endif
struct kconf_id *
kconf_id_lookup (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 30,
MIN_WORD_LENGTH = 2,
MAX_WORD_LENGTH = 12,
MIN_HASH_VALUE = 2,
MAX_HASH_VALUE = 46
};
static struct kconf_id wordlist[] =
{
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_INT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str4, T_HELP, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_SELECT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TRISTATE, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_STRING, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEF_BOOLEAN, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_MENU, TF_COMMAND},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_DEF_BOOLEAN, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEF_TRISTATE, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_MAINMENU, TF_COMMAND},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str20, T_MENUCONFIG, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_CONFIG, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ON, TF_PARAM},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_HEX, TF_COMMAND},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SOURCE, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_DEPENDS, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPTIONAL, TF_COMMAND},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_REQUIRES, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str34, T_BOOLEAN, TF_COMMAND},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_BOOLEAN, TF_COMMAND},
{-1}, {-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_CHOICE, TF_COMMAND},
{-1}, {-1}, {-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_PROMPT, TF_COMMAND}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = kconf_id_hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register int o = wordlist[key].name;
if (o >= 0)
{
register const char *s = o + kconf_id_strings;
if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return &wordlist[key];
}
}
}
return 0;
}
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
#define START_STRSIZE 16 #define START_STRSIZE 16
char *text; static char *text;
static char *text_ptr;
static int text_size, text_asize; static int text_size, text_asize;
struct buffer { struct buffer {
...@@ -38,23 +37,22 @@ void new_string(void) ...@@ -38,23 +37,22 @@ void new_string(void)
{ {
text = malloc(START_STRSIZE); text = malloc(START_STRSIZE);
text_asize = START_STRSIZE; text_asize = START_STRSIZE;
text_ptr = text;
text_size = 0; text_size = 0;
*text_ptr = 0; *text = 0;
} }
void append_string(const char *str, int size) void append_string(const char *str, int size)
{ {
int new_size = text_size + size + 1; int new_size = text_size + size + 1;
if (new_size > text_asize) { if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
text = realloc(text, new_size); text = realloc(text, new_size);
text_asize = new_size; text_asize = new_size;
text_ptr = text + text_size;
} }
memcpy(text_ptr, str, size); memcpy(text + text_size, str, size);
text_ptr += size;
text_size += size; text_size += size;
*text_ptr = 0; text[text_size] = 0;
} }
void alloc_string(const char *str, int size) void alloc_string(const char *str, int size)
...@@ -88,36 +86,12 @@ n [A-Za-z0-9_] ...@@ -88,36 +86,12 @@ n [A-Za-z0-9_]
<COMMAND>{ <COMMAND>{
"mainmenu" BEGIN(PARAM); return T_MAINMENU;
"menu" BEGIN(PARAM); return T_MENU;
"endmenu" BEGIN(PARAM); return T_ENDMENU;
"source" BEGIN(PARAM); return T_SOURCE;
"choice" BEGIN(PARAM); return T_CHOICE;
"endchoice" BEGIN(PARAM); return T_ENDCHOICE;
"comment" BEGIN(PARAM); return T_COMMENT;
"config" BEGIN(PARAM); return T_CONFIG;
"menuconfig" BEGIN(PARAM); return T_MENUCONFIG;
"help" BEGIN(PARAM); return T_HELP;
"if" BEGIN(PARAM); return T_IF;
"endif" BEGIN(PARAM); return T_ENDIF;
"depends" BEGIN(PARAM); return T_DEPENDS;
"requires" BEGIN(PARAM); return T_REQUIRES;
"optional" BEGIN(PARAM); return T_OPTIONAL;
"default" BEGIN(PARAM); return T_DEFAULT;
"prompt" BEGIN(PARAM); return T_PROMPT;
"tristate" BEGIN(PARAM); return T_TRISTATE;
"def_tristate" BEGIN(PARAM); return T_DEF_TRISTATE;
"bool" BEGIN(PARAM); return T_BOOLEAN;
"boolean" BEGIN(PARAM); return T_BOOLEAN;
"def_bool" BEGIN(PARAM); return T_DEF_BOOLEAN;
"def_boolean" BEGIN(PARAM); return T_DEF_BOOLEAN;
"int" BEGIN(PARAM); return T_INT;
"hex" BEGIN(PARAM); return T_HEX;
"string" BEGIN(PARAM); return T_STRING;
"select" BEGIN(PARAM); return T_SELECT;
"enable" BEGIN(PARAM); return T_SELECT;
"range" BEGIN(PARAM); return T_RANGE;
{n}+ { {n}+ {
struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
if (id && id->flags & TF_COMMAND) {
BEGIN(PARAM);
return id->token;
}
alloc_string(yytext, yyleng); alloc_string(yytext, yyleng);
zconflval.string = text; zconflval.string = text;
return T_WORD; return T_WORD;
...@@ -134,8 +108,6 @@ n [A-Za-z0-9_] ...@@ -134,8 +108,6 @@ n [A-Za-z0-9_]
"!" return T_NOT; "!" return T_NOT;
"=" return T_EQUAL; "=" return T_EQUAL;
"!=" return T_UNEQUAL; "!=" return T_UNEQUAL;
"if" return T_IF;
"on" return T_ON;
\"|\' { \"|\' {
str = yytext[0]; str = yytext[0];
new_string(); new_string();
...@@ -144,6 +116,9 @@ n [A-Za-z0-9_] ...@@ -144,6 +116,9 @@ n [A-Za-z0-9_]
\n BEGIN(INITIAL); current_file->lineno++; return T_EOL; \n BEGIN(INITIAL); current_file->lineno++; return T_EOL;
--- /* ignore */ --- /* ignore */
({n}|[-/.])+ { ({n}|[-/.])+ {
struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
if (id && id->flags & TF_PARAM)
return id->token;
alloc_string(yytext, yyleng); alloc_string(yytext, yyleng);
zconflval.string = text; zconflval.string = text;
return T_WORD; return T_WORD;
......
/* A Bison parser, made by GNU Bison 1.875a. */ /* A Bison parser, made by GNU Bison 2.0. */
/* Skeleton parser for Yacc-like parsing with Bison, /* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -45,8 +45,7 @@ ...@@ -45,8 +45,7 @@
/* Using locations. */ /* Using locations. */
#define YYLSP_NEEDED 0 #define YYLSP_NEEDED 0
/* If NAME_PREFIX is specified substitute the variables and functions /* Substitute the variable and function names. */
names. */
#define yyparse zconfparse #define yyparse zconfparse
#define yylex zconflex #define yylex zconflex
#define yyerror zconferror #define yyerror zconferror
...@@ -161,6 +160,11 @@ ...@@ -161,6 +160,11 @@
#include <string.h> #include <string.h>
#include <stdbool.h> #include <stdbool.h>
#define LKC_DIRECT_LINK
#include "lkc.h"
#include "zconf.hash.c"
#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
#define PRINTD 0x0001 #define PRINTD 0x0001
...@@ -202,7 +206,7 @@ typedef union YYSTYPE { ...@@ -202,7 +206,7 @@ typedef union YYSTYPE {
struct expr *expr; struct expr *expr;
struct menu *menu; struct menu *menu;
} YYSTYPE; } YYSTYPE;
/* Line 191 of yacc.c. */ /* Line 190 of yacc.c. */
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1
...@@ -214,27 +218,26 @@ typedef union YYSTYPE { ...@@ -214,27 +218,26 @@ typedef union YYSTYPE {
/* Copy the second part of user declarations. */ /* Copy the second part of user declarations. */
#define LKC_DIRECT_LINK /* Line 213 of yacc.c. */
#include "lkc.h"
/* Line 214 of yacc.c. */
#if ! defined (yyoverflow) || YYERROR_VERBOSE #if ! defined (yyoverflow) || YYERROR_VERBOSE
# ifndef YYFREE
# define YYFREE free
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# endif
/* The parser invokes alloca or malloc; define the necessary symbols. */ /* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# else
# ifndef YYSTACK_USE_ALLOCA
# if defined (alloca) || defined (_ALLOCA_H)
# define YYSTACK_ALLOC alloca
# else
# ifdef __GNUC__ # ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca # define YYSTACK_ALLOC __builtin_alloca
# endif # else
# define YYSTACK_ALLOC alloca
# endif # endif
# endif # endif
# endif # endif
...@@ -247,20 +250,20 @@ typedef union YYSTYPE { ...@@ -247,20 +250,20 @@ typedef union YYSTYPE {
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t # define YYSIZE_T size_t
# endif # endif
# define YYSTACK_ALLOC malloc # define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE free # define YYSTACK_FREE YYFREE
# endif # endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
#if (! defined (yyoverflow) \ #if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \ && (! defined (__cplusplus) \
|| (YYSTYPE_IS_TRIVIAL))) || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */ /* A type that is properly aligned for any stack member. */
union yyalloc union yyalloc
{ {
short yyss; short int yyss;
YYSTYPE yyvs; YYSTYPE yyvs;
}; };
...@@ -270,13 +273,13 @@ union yyalloc ...@@ -270,13 +273,13 @@ union yyalloc
/* The size of an array large to enough to hold all stacks, each with /* The size of an array large to enough to hold all stacks, each with
N elements. */ N elements. */
# define YYSTACK_BYTES(N) \ # define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM) + YYSTACK_GAP_MAXIMUM)
/* Copy COUNT objects from FROM to TO. The source and destination do /* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */ not overlap. */
# ifndef YYCOPY # ifndef YYCOPY
# if 1 < __GNUC__ # if defined (__GNUC__) && 1 < __GNUC__
# define YYCOPY(To, From, Count) \ # define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From))) __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else # else
...@@ -312,7 +315,7 @@ union yyalloc ...@@ -312,7 +315,7 @@ union yyalloc
#if defined (__STDC__) || defined (__cplusplus) #if defined (__STDC__) || defined (__cplusplus)
typedef signed char yysigned_char; typedef signed char yysigned_char;
#else #else
typedef short yysigned_char; typedef short int yysigned_char;
#endif #endif
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
...@@ -374,7 +377,7 @@ static const unsigned char yytranslate[] = ...@@ -374,7 +377,7 @@ static const unsigned char yytranslate[] =
#if YYDEBUG #if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */ YYRHS. */
static const unsigned short yyprhs[] = static const unsigned short int yyprhs[] =
{ {
0, 0, 3, 4, 7, 9, 11, 13, 17, 19, 0, 0, 3, 4, 7, 9, 11, 13, 17, 19,
21, 23, 26, 28, 30, 32, 34, 36, 38, 42, 21, 23, 26, 28, 30, 32, 34, 36, 38, 42,
...@@ -427,19 +430,19 @@ static const yysigned_char yyrhs[] = ...@@ -427,19 +430,19 @@ static const yysigned_char yyrhs[] =
}; };
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] = static const unsigned short int yyrline[] =
{ {
0, 94, 94, 95, 98, 99, 100, 101, 102, 103, 0, 97, 97, 98, 101, 102, 103, 104, 105, 106,
104, 105, 109, 110, 111, 112, 113, 114, 120, 128, 107, 108, 112, 113, 114, 115, 116, 117, 123, 131,
134, 142, 152, 154, 155, 156, 157, 160, 166, 173, 137, 145, 155, 157, 158, 159, 160, 163, 169, 176,
179, 186, 192, 198, 204, 210, 216, 222, 230, 239, 182, 189, 195, 201, 207, 213, 219, 225, 233, 242,
245, 254, 255, 261, 263, 264, 265, 266, 269, 275, 248, 257, 258, 264, 266, 267, 268, 269, 272, 278,
281, 287, 293, 299, 301, 306, 315, 324, 325, 331, 284, 290, 296, 302, 304, 309, 318, 327, 328, 334,
333, 334, 335, 340, 347, 353, 362, 363, 369, 371, 336, 337, 338, 343, 350, 356, 365, 366, 372, 374,
372, 373, 374, 377, 383, 390, 397, 404, 410, 417, 375, 376, 377, 380, 386, 393, 400, 407, 413, 420,
418, 419, 422, 427, 432, 440, 442, 447, 448, 451, 421, 422, 425, 430, 435, 443, 445, 450, 451, 454,
452, 453, 457, 457, 459, 460, 463, 464, 465, 466, 455, 456, 460, 460, 462, 463, 466, 467, 468, 469,
467, 468, 469, 472, 473 470, 471, 472, 475, 476
}; };
#endif #endif
...@@ -455,22 +458,22 @@ static const char *const yytname[] = ...@@ -455,22 +458,22 @@ static const char *const yytname[] =
"T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT", "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT",
"T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL", "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL",
"T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR", "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
"T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", "common_block",
"common_block", "config_entry_start", "config_stmt", "config_entry_start", "config_stmt", "menuconfig_entry_start",
"menuconfig_entry_start", "menuconfig_stmt", "config_option_list", "menuconfig_stmt", "config_option_list", "config_option", "choice",
"config_option", "choice", "choice_entry", "choice_end", "choice_stmt", "choice_entry", "choice_end", "choice_stmt", "choice_option_list",
"choice_option_list", "choice_option", "choice_block", "if", "if_end", "choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block",
"if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt", "menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source",
"menu_block", "source", "source_stmt", "comment", "comment_stmt", "source_stmt", "comment", "comment_stmt", "help_start", "help",
"help_start", "help", "depends_list", "depends", "prompt_stmt_opt", "depends_list", "depends", "prompt_stmt_opt", "prompt", "end",
"prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0 "nl_or_eof", "if_expr", "expr", "symbol", 0
}; };
#endif #endif
# ifdef YYPRINT # ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */ token YYLEX-NUM. */
static const unsigned short yytoknum[] = static const unsigned short int yytoknum[] =
{ {
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
...@@ -539,7 +542,7 @@ static const unsigned char yydefact[] = ...@@ -539,7 +542,7 @@ static const unsigned char yydefact[] =
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] = static const short int yydefgoto[] =
{ {
-1, 1, 17, 18, 19, 20, 21, 22, 52, 88, -1, 1, 17, 18, 19, 20, 21, 22, 52, 88,
23, 24, 105, 25, 54, 98, 55, 26, 109, 27, 23, 24, 105, 25, 54, 98, 55, 26, 109, 27,
...@@ -551,7 +554,7 @@ static const short yydefgoto[] = ...@@ -551,7 +554,7 @@ static const short yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
#define YYPACT_NINF -99 #define YYPACT_NINF -99
static const short yypact[] = static const short int yypact[] =
{ {
-99, 48, -99, 38, 46, 46, -99, 46, -29, -99, -99, 48, -99, 38, 46, 46, -99, 46, -29, -99,
46, -17, -3, -11, -99, -99, -99, -99, -99, -99, 46, -17, -3, -11, -99, -99, -99, -99, -99, -99,
...@@ -575,7 +578,7 @@ static const short yypact[] = ...@@ -575,7 +578,7 @@ static const short yypact[] =
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const short yypgoto[] = static const short int yypgoto[] =
{ {
-99, -99, -99, 111, -99, -99, -99, -99, 178, -99, -99, -99, -99, 111, -99, -99, -99, -99, 178, -99,
-99, -99, -99, 91, -99, -99, -99, -99, -99, -99, -99, -99, -99, 91, -99, -99, -99, -99, -99, -99,
...@@ -589,7 +592,7 @@ static const short yypgoto[] = ...@@ -589,7 +592,7 @@ static const short yypgoto[] =
number is the opposite. If zero, do what YYDEFACT says. number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */ If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -68 #define YYTABLE_NINF -68
static const short yytable[] = static const short int yytable[] =
{ {
66, 67, 36, 42, 39, 40, 71, 41, 123, 124, 66, 67, 36, 42, 39, 40, 71, 41, 123, 124,
43, 44, 74, 75, 120, 154, 72, 46, 47, 69, 43, 44, 74, 75, 120, 154, 72, 46, 47, 69,
...@@ -687,7 +690,7 @@ static const unsigned char yystos[] = ...@@ -687,7 +690,7 @@ static const unsigned char yystos[] =
#define YYACCEPT goto yyacceptlab #define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab #define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1 #define YYERROR goto yyerrorlab
/* Like YYERROR except do call yyerror. This remains here temporarily /* Like YYERROR except do call yyerror. This remains here temporarily
...@@ -715,20 +718,53 @@ do \ ...@@ -715,20 +718,53 @@ do \
} \ } \
while (0) while (0)
#define YYTERROR 1 #define YYTERROR 1
#define YYERRCODE 256 #define YYERRCODE 256
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
are run). */
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT #ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \ # define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.first_line = Rhs[1].first_line; \ do \
Current.first_column = Rhs[1].first_column; \ if (N) \
Current.last_line = Rhs[N].last_line; \ { \
Current.last_column = Rhs[N].last_column; (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (0)
#endif
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
(Loc).last_line, (Loc).last_column)
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif #endif
/* YYLEX -- calling `yylex' with the right arguments. */ /* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM #ifdef YYLEX_PARAM
...@@ -751,36 +787,30 @@ do { \ ...@@ -751,36 +787,30 @@ do { \
YYFPRINTF Args; \ YYFPRINTF Args; \
} while (0) } while (0)
# define YYDSYMPRINT(Args) \ # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
yysymprint Args; \
} while (0)
# define YYDSYMPRINTF(Title, Token, Value, Location) \
do { \ do { \
if (yydebug) \ if (yydebug) \
{ \ { \
YYFPRINTF (stderr, "%s ", Title); \ YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \ yysymprint (stderr, \
Token, Value); \ Type, Value); \
YYFPRINTF (stderr, "\n"); \ YYFPRINTF (stderr, "\n"); \
} \ } \
} while (0) } while (0)
/*------------------------------------------------------------------. /*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its | | yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (cinluded). | | TOP (included). |
`------------------------------------------------------------------*/ `------------------------------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus) #if defined (__STDC__) || defined (__cplusplus)
static void static void
yy_stack_print (short *bottom, short *top) yy_stack_print (short int *bottom, short int *top)
#else #else
static void static void
yy_stack_print (bottom, top) yy_stack_print (bottom, top)
short *bottom; short int *bottom;
short *top; short int *top;
#endif #endif
{ {
YYFPRINTF (stderr, "Stack now"); YYFPRINTF (stderr, "Stack now");
...@@ -810,9 +840,9 @@ yy_reduce_print (yyrule) ...@@ -810,9 +840,9 @@ yy_reduce_print (yyrule)
#endif #endif
{ {
int yyi; int yyi;
unsigned int yylineno = yyrline[yyrule]; unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
yyrule - 1, yylineno); yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */ /* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
...@@ -830,8 +860,7 @@ do { \ ...@@ -830,8 +860,7 @@ do { \
int yydebug; int yydebug;
#else /* !YYDEBUG */ #else /* !YYDEBUG */
# define YYDPRINTF(Args) # define YYDPRINTF(Args)
# define YYDSYMPRINT(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YYDSYMPRINTF(Title, Token, Value, Location)
# define YY_STACK_PRINT(Bottom, Top) # define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule) # define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */ #endif /* !YYDEBUG */
...@@ -849,10 +878,6 @@ int yydebug; ...@@ -849,10 +878,6 @@ int yydebug;
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */ evaluated with infinite-precision integer arithmetic. */
#if YYMAXDEPTH == 0
# undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH #ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000 # define YYMAXDEPTH 10000
#endif #endif
...@@ -934,15 +959,15 @@ yysymprint (yyoutput, yytype, yyvaluep) ...@@ -934,15 +959,15 @@ yysymprint (yyoutput, yytype, yyvaluep)
(void) yyvaluep; (void) yyvaluep;
if (yytype < YYNTOKENS) if (yytype < YYNTOKENS)
{
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
# ifdef YYPRINT
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
}
else else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
switch (yytype) switch (yytype)
{ {
default: default:
...@@ -958,10 +983,11 @@ yysymprint (yyoutput, yytype, yyvaluep) ...@@ -958,10 +983,11 @@ yysymprint (yyoutput, yytype, yyvaluep)
#if defined (__STDC__) || defined (__cplusplus) #if defined (__STDC__) || defined (__cplusplus)
static void static void
yydestruct (int yytype, YYSTYPE *yyvaluep) yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else #else
static void static void
yydestruct (yytype, yyvaluep) yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype; int yytype;
YYSTYPE *yyvaluep; YYSTYPE *yyvaluep;
#endif #endif
...@@ -969,6 +995,10 @@ yydestruct (yytype, yyvaluep) ...@@ -969,6 +995,10 @@ yydestruct (yytype, yyvaluep)
/* Pacify ``unused variable'' warnings. */ /* Pacify ``unused variable'' warnings. */
(void) yyvaluep; (void) yyvaluep;
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype) switch (yytype)
{ {
...@@ -996,10 +1026,10 @@ int yyparse (); ...@@ -996,10 +1026,10 @@ int yyparse ();
/* The lookahead symbol. */ /* The look-ahead symbol. */
int yychar; int yychar;
/* The semantic value of the lookahead symbol. */ /* The semantic value of the look-ahead symbol. */
YYSTYPE yylval; YYSTYPE yylval;
/* Number of syntax errors so far. */ /* Number of syntax errors so far. */
...@@ -1035,7 +1065,7 @@ yyparse () ...@@ -1035,7 +1065,7 @@ yyparse ()
int yyresult; int yyresult;
/* Number of tokens to shift before error messages enabled. */ /* Number of tokens to shift before error messages enabled. */
int yyerrstatus; int yyerrstatus;
/* Lookahead token as an internal (translated) token number. */ /* Look-ahead token as an internal (translated) token number. */
int yytoken = 0; int yytoken = 0;
/* Three stacks and their tools: /* Three stacks and their tools:
...@@ -1047,9 +1077,9 @@ yyparse () ...@@ -1047,9 +1077,9 @@ yyparse ()
to reallocate them elsewhere. */ to reallocate them elsewhere. */
/* The state stack. */ /* The state stack. */
short yyssa[YYINITDEPTH]; short int yyssa[YYINITDEPTH];
short *yyss = yyssa; short int *yyss = yyssa;
register short *yyssp; register short int *yyssp;
/* The semantic value stack. */ /* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE yyvsa[YYINITDEPTH];
...@@ -1086,6 +1116,9 @@ yyparse () ...@@ -1086,6 +1116,9 @@ yyparse ()
yyssp = yyss; yyssp = yyss;
yyvsp = yyvs; yyvsp = yyvs;
yyvsp[0] = yylval;
goto yysetstate; goto yysetstate;
/*------------------------------------------------------------. /*------------------------------------------------------------.
...@@ -1111,7 +1144,7 @@ yyparse () ...@@ -1111,7 +1144,7 @@ yyparse ()
these so that the &'s don't force the real ones into these so that the &'s don't force the real ones into
memory. */ memory. */
YYSTYPE *yyvs1 = yyvs; YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss; short int *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the /* Each stack pointer address is followed by the size of the
...@@ -1139,7 +1172,7 @@ yyparse () ...@@ -1139,7 +1172,7 @@ yyparse ()
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
{ {
short *yyss1 = yyss; short int *yyss1 = yyss;
union yyalloc *yyptr = union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr) if (! yyptr)
...@@ -1175,18 +1208,18 @@ yyparse () ...@@ -1175,18 +1208,18 @@ yyparse ()
yybackup: yybackup:
/* Do appropriate processing given the current state. */ /* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */ /* Read a look-ahead token if we need one and don't already have one. */
/* yyresume: */ /* yyresume: */
/* First try to decide what to do without reference to lookahead token. */ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate]; yyn = yypact[yystate];
if (yyn == YYPACT_NINF) if (yyn == YYPACT_NINF)
goto yydefault; goto yydefault;
/* Not known => get a lookahead token if don't already have one. */ /* Not known => get a look-ahead token if don't already have one. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY) if (yychar == YYEMPTY)
{ {
YYDPRINTF ((stderr, "Reading a token: ")); YYDPRINTF ((stderr, "Reading a token: "));
...@@ -1201,7 +1234,7 @@ yybackup: ...@@ -1201,7 +1234,7 @@ yybackup:
else else
{ {
yytoken = YYTRANSLATE (yychar); yytoken = YYTRANSLATE (yychar);
YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
} }
/* If the proper action on seeing token YYTOKEN is to reduce or to /* If the proper action on seeing token YYTOKEN is to reduce or to
...@@ -1221,8 +1254,8 @@ yybackup: ...@@ -1221,8 +1254,8 @@ yybackup:
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
/* Shift the lookahead token. */ /* Shift the look-ahead token. */
YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */ /* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF) if (yychar != YYEOF)
...@@ -1294,10 +1327,10 @@ yyreduce: ...@@ -1294,10 +1327,10 @@ yyreduce:
case 18: case 18:
{ {
struct symbol *sym = sym_lookup(yyvsp[-1].string, 0); struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
sym->flags |= SYMBOL_OPTIONAL; sym->flags |= SYMBOL_OPTIONAL;
menu_add_entry(sym); menu_add_entry(sym);
printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
;} ;}
break; break;
...@@ -1312,10 +1345,10 @@ yyreduce: ...@@ -1312,10 +1345,10 @@ yyreduce:
case 20: case 20:
{ {
struct symbol *sym = sym_lookup(yyvsp[-1].string, 0); struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
sym->flags |= SYMBOL_OPTIONAL; sym->flags |= SYMBOL_OPTIONAL;
menu_add_entry(sym); menu_add_entry(sym);
printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
;} ;}
break; break;
...@@ -1342,7 +1375,7 @@ yyreduce: ...@@ -1342,7 +1375,7 @@ yyreduce:
case 28: case 28:
{ {
menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
menu_set_type(S_TRISTATE); menu_set_type(S_TRISTATE);
printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
;} ;}
...@@ -1359,7 +1392,7 @@ yyreduce: ...@@ -1359,7 +1392,7 @@ yyreduce:
case 30: case 30:
{ {
menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
menu_set_type(S_BOOLEAN); menu_set_type(S_BOOLEAN);
printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
;} ;}
...@@ -1392,7 +1425,7 @@ yyreduce: ...@@ -1392,7 +1425,7 @@ yyreduce:
case 34: case 34:
{ {
menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr); menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1400,7 +1433,7 @@ yyreduce: ...@@ -1400,7 +1433,7 @@ yyreduce:
case 35: case 35:
{ {
menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1408,7 +1441,7 @@ yyreduce: ...@@ -1408,7 +1441,7 @@ yyreduce:
case 36: case 36:
{ {
menu_add_symbol(P_SELECT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr); menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1416,7 +1449,7 @@ yyreduce: ...@@ -1416,7 +1449,7 @@ yyreduce:
case 37: case 37:
{ {
menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,yyvsp[-3].symbol, yyvsp[-2].symbol), yyvsp[-1].expr); menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1443,7 +1476,7 @@ yyreduce: ...@@ -1443,7 +1476,7 @@ yyreduce:
case 40: case 40:
{ {
if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) { if (zconf_endtoken((yyvsp[0].token), T_CHOICE, T_ENDCHOICE)) {
menu_end_menu(); menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
} }
...@@ -1461,7 +1494,7 @@ yyreduce: ...@@ -1461,7 +1494,7 @@ yyreduce:
case 48: case 48:
{ {
menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr); menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1493,7 +1526,7 @@ yyreduce: ...@@ -1493,7 +1526,7 @@ yyreduce:
case 52: case 52:
{ {
menu_add_symbol(P_DEFAULT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr); menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1503,7 +1536,7 @@ yyreduce: ...@@ -1503,7 +1536,7 @@ yyreduce:
{ {
printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
menu_add_entry(NULL); menu_add_entry(NULL);
menu_add_dep(yyvsp[-1].expr); menu_add_dep((yyvsp[-1].expr));
menu_end_entry(); menu_end_entry();
menu_add_menu(); menu_add_menu();
;} ;}
...@@ -1512,7 +1545,7 @@ yyreduce: ...@@ -1512,7 +1545,7 @@ yyreduce:
case 56: case 56:
{ {
if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) { if (zconf_endtoken((yyvsp[0].token), T_IF, T_ENDIF)) {
menu_end_menu(); menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
} }
...@@ -1531,7 +1564,7 @@ yyreduce: ...@@ -1531,7 +1564,7 @@ yyreduce:
{ {
menu_add_entry(NULL); menu_add_entry(NULL);
menu_add_prompt(P_MENU, yyvsp[-1].string, NULL); menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL);
printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1547,7 +1580,7 @@ yyreduce: ...@@ -1547,7 +1580,7 @@ yyreduce:
case 65: case 65:
{ {
if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) { if (zconf_endtoken((yyvsp[0].token), T_MENU, T_ENDMENU)) {
menu_end_menu(); menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
} }
...@@ -1570,15 +1603,15 @@ yyreduce: ...@@ -1570,15 +1603,15 @@ yyreduce:
case 73: case 73:
{ {
yyval.string = yyvsp[-1].string; (yyval.string) = (yyvsp[-1].string);
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
;} ;}
break; break;
case 74: case 74:
{ {
zconf_nextfile(yyvsp[0].string); zconf_nextfile((yyvsp[0].string));
;} ;}
break; break;
...@@ -1586,7 +1619,7 @@ yyreduce: ...@@ -1586,7 +1619,7 @@ yyreduce:
{ {
menu_add_entry(NULL); menu_add_entry(NULL);
menu_add_prompt(P_COMMENT, yyvsp[-1].string, NULL); menu_add_prompt(P_COMMENT, (yyvsp[-1].string), NULL);
printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1609,14 +1642,14 @@ yyreduce: ...@@ -1609,14 +1642,14 @@ yyreduce:
case 78: case 78:
{ {
current_entry->sym->help = yyvsp[0].string; current_entry->sym->help = (yyvsp[0].string);
;} ;}
break; break;
case 82: case 82:
{ {
menu_add_dep(yyvsp[-1].expr); menu_add_dep((yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1624,7 +1657,7 @@ yyreduce: ...@@ -1624,7 +1657,7 @@ yyreduce:
case 83: case 83:
{ {
menu_add_dep(yyvsp[-1].expr); menu_add_dep((yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1632,7 +1665,7 @@ yyreduce: ...@@ -1632,7 +1665,7 @@ yyreduce:
case 84: case 84:
{ {
menu_add_dep(yyvsp[-1].expr); menu_add_dep((yyvsp[-1].expr));
printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
;} ;}
break; break;
...@@ -1640,84 +1673,84 @@ yyreduce: ...@@ -1640,84 +1673,84 @@ yyreduce:
case 86: case 86:
{ {
menu_add_prompt(P_PROMPT, yyvsp[-1].string, yyvsp[0].expr); menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr));
;} ;}
break; break;
case 89: case 89:
{ yyval.token = T_ENDMENU; ;} { (yyval.token) = T_ENDMENU; ;}
break; break;
case 90: case 90:
{ yyval.token = T_ENDCHOICE; ;} { (yyval.token) = T_ENDCHOICE; ;}
break; break;
case 91: case 91:
{ yyval.token = T_ENDIF; ;} { (yyval.token) = T_ENDIF; ;}
break; break;
case 94: case 94:
{ yyval.expr = NULL; ;} { (yyval.expr) = NULL; ;}
break; break;
case 95: case 95:
{ yyval.expr = yyvsp[0].expr; ;} { (yyval.expr) = (yyvsp[0].expr); ;}
break; break;
case 96: case 96:
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;} { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;}
break; break;
case 97: case 97:
{ yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;} { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;}
break; break;
case 98: case 98:
{ yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;} { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;}
break; break;
case 99: case 99:
{ yyval.expr = yyvsp[-1].expr; ;} { (yyval.expr) = (yyvsp[-1].expr); ;}
break; break;
case 100: case 100:
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;} { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;}
break; break;
case 101: case 101:
{ yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;} { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;}
break; break;
case 102: case 102:
{ yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;} { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;}
break; break;
case 103: case 103:
{ yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;} { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;}
break; break;
case 104: case 104:
{ yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ;} { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;}
break; break;
} }
/* Line 999 of yacc.c. */ /* Line 1037 of yacc.c. */
yyvsp -= yylen; yyvsp -= yylen;
...@@ -1759,18 +1792,33 @@ yyerrlab: ...@@ -1759,18 +1792,33 @@ yyerrlab:
{ {
YYSIZE_T yysize = 0; YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar); int yytype = YYTRANSLATE (yychar);
const char* yyprefix;
char *yymsg; char *yymsg;
int yyx, yycount; int yyx;
yycount = 0;
/* Start YYX at -YYN if negative to avoid negative indexes in /* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */ YYCHECK. */
for (yyx = yyn < 0 ? -yyn : 0; int yyxbegin = yyn < 0 ? -yyn : 0;
yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yycount = 0;
yyprefix = ", expecting ";
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
yysize += yystrlen (yytname[yyx]) + 15, yycount++; {
yysize += yystrlen ("syntax error, unexpected ") + 1; yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
yysize += yystrlen (yytname[yytype]); yycount += 1;
if (yycount == 5)
{
yysize = 0;
break;
}
}
yysize += (sizeof ("syntax error, unexpected ")
+ yystrlen (yytname[yytype]));
yymsg = (char *) YYSTACK_ALLOC (yysize); yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0) if (yymsg != 0)
{ {
...@@ -1779,16 +1827,13 @@ yyerrlab: ...@@ -1779,16 +1827,13 @@ yyerrlab:
if (yycount < 5) if (yycount < 5)
{ {
yycount = 0; yyprefix = ", expecting ";
for (yyx = yyn < 0 ? -yyn : 0; for (yyx = yyxbegin; yyx < yyxend; ++yyx)
yyx < (int) (sizeof (yytname) / sizeof (char *));
yyx++)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{ {
const char *yyq = ! yycount ? ", expecting " : " or "; yyp = yystpcpy (yyp, yyprefix);
yyp = yystpcpy (yyp, yyq);
yyp = yystpcpy (yyp, yytname[yyx]); yyp = yystpcpy (yyp, yytname[yyx]);
yycount++; yyprefix = " or ";
} }
} }
yyerror (yymsg); yyerror (yymsg);
...@@ -1806,38 +1851,57 @@ yyerrlab: ...@@ -1806,38 +1851,57 @@ yyerrlab:
if (yyerrstatus == 3) if (yyerrstatus == 3)
{ {
/* If just tried and failed to reuse lookahead token after an /* If just tried and failed to reuse look-ahead token after an
error, discard it. */ error, discard it. */
/* Return failure if at end of input. */ if (yychar <= YYEOF)
if (yychar == YYEOF)
{ {
/* Pop the error token. */ /* If at end of input, pop the error token,
YYPOPSTACK; then the rest of the stack, then return failure. */
/* Pop the rest of the stack. */ if (yychar == YYEOF)
while (yyss < yyssp) for (;;)
{ {
YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
yydestruct (yystos[*yyssp], yyvsp);
YYPOPSTACK; YYPOPSTACK;
} if (yyssp == yyss)
YYABORT; YYABORT;
yydestruct ("Error: popping",
yystos[*yyssp], yyvsp);
} }
}
YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); else
yydestruct (yytoken, &yylval); {
yydestruct ("Error: discarding", yytoken, &yylval);
yychar = YYEMPTY; yychar = YYEMPTY;
}
} }
/* Else will try to reuse lookahead token after shifting the error /* Else will try to reuse look-ahead token after shifting the error
token. */ token. */
goto yyerrlab1; goto yyerrlab1;
/*----------------------------------------------------. /*---------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action. | | yyerrorlab -- error raised explicitly by YYERROR. |
`----------------------------------------------------*/ `---------------------------------------------------*/
yyerrorlab:
#ifdef __GNUC__
/* Pacify GCC when the user code never invokes YYERROR and the label
yyerrorlab therefore never appears in user code. */
if (0)
goto yyerrorlab;
#endif
yyvsp -= yylen;
yyssp -= yylen;
yystate = *yyssp;
goto yyerrlab1;
/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
yyerrlab1: yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */ yyerrstatus = 3; /* Each real token shifted decrements this. */
...@@ -1859,22 +1923,22 @@ yyerrlab1: ...@@ -1859,22 +1923,22 @@ yyerrlab1:
if (yyssp == yyss) if (yyssp == yyss)
YYABORT; YYABORT;
YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
yydestruct (yystos[yystate], yyvsp);
yyvsp--;
yystate = *--yyssp;
yydestruct ("Error: popping", yystos[yystate], yyvsp);
YYPOPSTACK;
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp); YY_STACK_PRINT (yyss, yyssp);
} }
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
YYDPRINTF ((stderr, "Shifting error token, "));
*++yyvsp = yylval; *++yyvsp = yylval;
/* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
...@@ -1890,6 +1954,9 @@ yyacceptlab: ...@@ -1890,6 +1954,9 @@ yyacceptlab:
| yyabortlab -- YYABORT comes here. | | yyabortlab -- YYABORT comes here. |
`-----------------------------------*/ `-----------------------------------*/
yyabortlab: yyabortlab:
yydestruct ("Error: discarding lookahead",
yytoken, &yylval);
yychar = YYEMPTY;
yyresult = 1; yyresult = 1;
goto yyreturn; goto yyreturn;
......
...@@ -11,6 +11,11 @@ ...@@ -11,6 +11,11 @@
#include <string.h> #include <string.h>
#include <stdbool.h> #include <stdbool.h>
#define LKC_DIRECT_LINK
#include "lkc.h"
#include "zconf.hash.c"
#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
#define PRINTD 0x0001 #define PRINTD 0x0001
...@@ -88,10 +93,6 @@ static struct menu *current_menu, *current_entry; ...@@ -88,10 +93,6 @@ static struct menu *current_menu, *current_entry;
%type <expr> if_expr %type <expr> if_expr
%type <token> end %type <token> end
%{
#define LKC_DIRECT_LINK
#include "lkc.h"
%}
%% %%
input: /* empty */ input: /* empty */
| input block | input block
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment