提交 7a88488b 编写于 作者: R Roman Zippel 提交者: 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: NRoman Zippel <zippel@linux-m68k.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 491d7110
......@@ -114,7 +114,7 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
endif
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
KBUILD_HAVE_NLS := $(shell \
......@@ -201,7 +201,7 @@ $(obj)/.tmp_gtkcheck:
fi
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
......@@ -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
# you are modifying the flex/bison src.
# LKC_GENPARSER := 1
......@@ -226,6 +226,7 @@ ifdef LKC_GENPARSER
$(obj)/zconf.tab.c: $(src)/zconf.y
$(obj)/lex.zconf.c: $(src)/zconf.l
$(obj)/zconf.hash.c: $(src)/zconf.gperf
%.tab.c: %.y
bison -l -b $* -p $(notdir $*) $<
......@@ -235,4 +236,8 @@ lex.%.c: %.l
flex -L -P$(notdir $*) -o$@ $<
cp $@ $@_shipped
%.hash.c: %.gperf
gperf < $< > $@
cp $@ $@_shipped
endif
#line 3 "lex.zconf.c"
#line 3 "scripts/kconfig/lex.zconf.c"
#define YY_INT_ALIGNED short int
......@@ -338,1567 +338,323 @@ int zconflineno = 1;
extern char *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
},
{
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
0, 0, 0, 0, 0, 0, 0
},
{
11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-123, -123, -123, 58, -123, -123, 58, 58, 58, 58,
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, 12, 13, 14, 12, 12, 15, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12
},
{
11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-152, -152, -152, 58, -152, -152, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 173, 58,
58, 58, 58, 58, 58, 58, 58, -152
11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12
},
{
11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-153, -153, -153, 58, -153, -153, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 174, 58, 58, -153
11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
16, 16, 16, 18, 16, 16, 16
},
{
11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-154, -154, -154, 58, -154, -154, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -154
11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
16, 16, 16, 18, 16, 16, 16
},
{
11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-155, -155, -155, 58, -155, -155, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 175, 58, 58, 58, 58, -155
11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19
},
{
11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-156, -156, -156, 58, -156, -156, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 176, 58, 58, -156
11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19
},
{
11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
-157, -157, -157, 58, -157, -157, 58, 58, 58, 58,
58, 177, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -157
11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
22, 22, 22, 22, 22, 25, 22
},
{
11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-158, -158, -158, 58, -158, -158, 58, 58, 58, 58,
58, 58, 58, 178, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -158
11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
22, 22, 22, 22, 22, 25, 22
},
{
11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
-159, -159, -159, 58, -159, -159, 58, 179, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -159
11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
33, 34, 35, 35, 36, 37, 38
},
{
11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-160, -160, -160, 58, -160, -160, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 180, 58,
58, 58, 58, 58, 58, 58, 58, -160
11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
33, 34, 35, 35, 36, 37, 38
},
{
11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-161, -161, -161, 58, -161, -161, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -161
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11
},
{
11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
-162, -162, -162, 58, -162, -162, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 181, 58, 58, -162
11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12
},
{
11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-163, -163, -163, 58, -163, -163, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -163
11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13
},
{
11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-164, -164, -164, 58, -164, -164, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 182,
58, 58, 58, 58, 58, 58, 58, -164
11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14
},
{
11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-165, -165, -165, 58, -165, -165, 58, 58, 58, 58,
58, 58, 58, 58, 58, 183, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -165
11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42
},
{
11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
-166, -166, -166, 58, -166, -166, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 184, 58, 58, -166
11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16
},
{
11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-167, -167, -167, 58, -167, -167, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 185, 58, 58, 58, -167
11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17
},
{
11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-168, -168, -168, 58, -168, -168, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -168
11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, 44, -18, -18, -18
},
{
11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-169, -169, -169, 58, -169, -169, 58, 58, 58, 58,
58, 58, 58, 58, 58, 186, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -169
11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45
},
{
11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-170, -170, -170, 58, -170, -170, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 187, 58, -170
11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20
},
{
11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
-171, -171, -171, 58, -171, -171, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 188, 58,
58, 58, 58, 58, 58, 58, 58, -171
11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48
},
{
11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-172, -172, -172, 58, -172, -172, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 189, 58,
58, 58, 58, 58, 58, 58, 58, -172
11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
49, 49, 49, 49, 49, -22, 49
},
{
11, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-173, -173, -173, 58, -173, -173, 58, 190, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -173
11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23
},
{
11, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-174, -174, -174, 58, -174, -174, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -174
11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24
},
{
11, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-175, -175, -175, 58, -175, -175, 58, 58, 58, 58,
58, 191, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -175
11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51
},
{
11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
-176, -176, -176, 58, -176, -176, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -176
11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26
},
{
11, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-177, -177, -177, 58, -177, -177, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -177
11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27
},
{
11, -178, -178, -178, -178, -178, -178, -178, -178, -178,
-178, -178, -178, 58, -178, -178, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -178
11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, 53, -28, -28
},
{
11, -179, -179, -179, -179, -179, -179, -179, -179, -179,
-179, -179, -179, 58, -179, -179, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 192, 58, 58, -179
11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29
},
{
11, -180, -180, -180, -180, -180, -180, -180, -180, -180,
-180, -180, -180, 58, -180, -180, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -180
11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54
},
{
11, -181, -181, -181, -181, -181, -181, -181, -181, -181,
-181, -181, -181, 58, -181, -181, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -181
11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
-31, -31, -31, -31, -31, -31, -31
},
{
11, -182, -182, -182, -182, -182, -182, -182, -182, -182,
-182, -182, -182, 58, -182, -182, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 193, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -182
11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32
},
{
11, -183, -183, -183, -183, -183, -183, -183, -183, -183,
-183, -183, -183, 58, -183, -183, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 194, 58, 58, 58, -183
11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33
},
{
11, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, 58, -184, -184, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -184
11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, 56, 57, 57, -34, -34, -34
},
{
11, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-185, -185, -185, 58, -185, -185, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -185
11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, 57, 57, 57, -35, -35, -35
},
{
11, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-186, -186, -186, 58, -186, -186, 58, 58, 58, 195,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -186
11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36
},
{
11, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-187, -187, -187, 58, -187, -187, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -187
11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37
},
{
11, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-188, -188, -188, 58, -188, -188, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 196, 58, -188
11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, 59
},
{
11, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, 58, -189, -189, 58, 58, 58, 58,
58, 58, 197, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -189
11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39
},
{
11, -190, -190, -190, -190, -190, -190, -190, -190, -190,
-190, -190, -190, 58, -190, -190, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 198, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -190
11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40
},
{
11, -191, -191, -191, -191, -191, -191, -191, -191, -191,
-191, -191, -191, 58, -191, -191, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 199, 58, 58, 58, -191
11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42
},
{
11, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-192, -192, -192, 58, -192, -192, 58, 58, 58, 58,
58, 200, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -192
11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42
},
{
11, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-193, -193, -193, 58, -193, -193, 58, 58, 58, 58,
58, 201, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -193
11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43
},
{
11, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-194, -194, -194, 58, -194, -194, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 202, 58, 58, -194
11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, 44, -44, -44, -44
},
{
11, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-195, -195, -195, 58, -195, -195, 58, 58, 58, 58,
58, 203, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -195
11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45
},
{
11, -196, -196, -196, -196, -196, -196, -196, -196, -196,
-196, -196, -196, 58, -196, -196, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -196
11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46
},
{
11, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-197, -197, -197, 58, -197, -197, 58, 58, 58, 58,
58, 58, 58, 58, 58, 204, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -197
11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48
},
{
11, -198, -198, -198, -198, -198, -198, -198, -198, -198,
-198, -198, -198, 58, -198, -198, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -198
11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48
},
{
11, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-199, -199, -199, 58, -199, -199, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -199
11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
49, 49, 49, 49, 49, -49, 49
},
{
11, -200, -200, -200, -200, -200, -200, -200, -200, -200,
-200, -200, -200, 58, -200, -200, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -200
11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50
},
{
11, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-201, -201, -201, 58, -201, -201, 58, 205, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -201
11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51
},
{
11, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-202, -202, -202, 58, -202, -202, 58, 206, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -202
11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52
},
{
11, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-203, -203, -203, 58, -203, -203, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -203
11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53
},
{
11, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-204, -204, -204, 58, -204, -204, 58, 58, 58, 58,
58, 58, 58, 207, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -204
11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54
},
{
11, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-205, -205, -205, 58, -205, -205, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 208, 58,
58, 58, 58, 58, 58, 58, 58, -205
11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55
},
{
11, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-206, -206, -206, 58, -206, -206, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 209, 58, 58, -206
11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, 60, 57, 57, -56, -56, -56
},
{
11, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-207, -207, -207, 58, -207, -207, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -207
11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, 57, 57, 57, -57, -57, -57
},
{
11, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-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, -208
11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58
},
{
11, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-209, -209, -209, 58, -209, -209, 58, 58, 58, 58,
58, 210, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -209
11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59
},
{
11, -210, -210, -210, -210, -210, -210, -210, -210, -210,
-210, -210, -210, 58, -210, -210, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 58, 58, 58, -210
11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, 57, 57, 57, -60, -60, -60
},
} ;
......@@ -1918,8 +674,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 64
#define YY_END_OF_BUFFER 65
#define YY_NUM_RULES 33
#define YY_END_OF_BUFFER 34
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
......@@ -1927,31 +683,14 @@ struct yy_trans_info
flex_int32_t yy_verify;
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,
65, 5, 4, 3, 2, 36, 37, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
63, 60, 62, 55, 59, 58, 57, 53, 48, 42,
47, 51, 53, 40, 41, 50, 50, 43, 53, 50,
50, 53, 4, 3, 2, 2, 1, 35, 35, 35,
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
34, 5, 4, 3, 2, 7, 8, 6, 32, 29,
31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
22, 11, 12, 19, 19, 14, 22, 22, 4, 3,
2, 2, 1, 6, 32, 29, 31, 30, 24, 23,
26, 25, 15, 20, 9, 19, 19, 21, 10, 18
} ;
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,
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,
29, 30, 31, 32, 33, 34, 35, 13, 13, 36,
13, 13, 1, 37, 1, 1, 1, 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, 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,
......@@ -2014,8 +753,7 @@ char *zconftext;
#define START_STRSIZE 16
char *text;
static char *text_ptr;
static char *text;
static int text_size, text_asize;
struct buffer {
......@@ -2034,23 +772,22 @@ void new_string(void)
{
text = malloc(START_STRSIZE);
text_asize = START_STRSIZE;
text_ptr = text;
text_size = 0;
*text_ptr = 0;
*text = 0;
}
void append_string(const char *str, int size)
{
int new_size = text_size + size + 1;
if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
text = realloc(text, new_size);
text_asize = new_size;
text_ptr = text + text_size;
}
memcpy(text_ptr, str, size);
text_ptr += size;
memcpy(text + text_size, str, size);
text_size += size;
*text_ptr = 0;
text[text_size] = 0;
}
void alloc_string(const char *str, int size)
......@@ -2066,11 +803,13 @@ void alloc_string(const char *str, int size)
#define STRING 3
#define PARAM 4
#ifndef YY_NO_UNISTD_H
/* 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.
* The user has a chance to override it with an option.
*/
#include <unistd.h>
#endif
#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
......@@ -2282,175 +1021,56 @@ YY_RULE_SETUP
case 6:
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);
zconflval.string = text;
return T_WORD;
}
YY_BREAK
case 36:
case 7:
YY_RULE_SETUP
YY_BREAK
case 37:
/* rule 37 can match eol */
case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
current_file->lineno++; BEGIN(INITIAL);
YY_BREAK
case 38:
case 9:
YY_RULE_SETUP
return T_AND;
YY_BREAK
case 39:
case 10:
YY_RULE_SETUP
return T_OR;
YY_BREAK
case 40:
case 11:
YY_RULE_SETUP
return T_OPEN_PAREN;
YY_BREAK
case 41:
case 12:
YY_RULE_SETUP
return T_CLOSE_PAREN;
YY_BREAK
case 42:
case 13:
YY_RULE_SETUP
return T_NOT;
YY_BREAK
case 43:
case 14:
YY_RULE_SETUP
return T_EQUAL;
YY_BREAK
case 44:
case 15:
YY_RULE_SETUP
return T_UNEQUAL;
YY_BREAK
case 45:
YY_RULE_SETUP
return T_IF;
YY_BREAK
case 46:
YY_RULE_SETUP
return T_ON;
YY_BREAK
case 47:
case 16:
YY_RULE_SETUP
{
str = zconftext[0];
......@@ -2458,33 +1078,36 @@ YY_RULE_SETUP
BEGIN(STRING);
}
YY_BREAK
case 48:
/* rule 48 can match eol */
case 17:
/* rule 17 can match eol */
YY_RULE_SETUP
BEGIN(INITIAL); current_file->lineno++; return T_EOL;
YY_BREAK
case 49:
case 18:
YY_RULE_SETUP
/* ignore */
YY_BREAK
case 50:
case 19:
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);
zconflval.string = text;
return T_WORD;
}
YY_BREAK
case 51:
case 20:
YY_RULE_SETUP
/* comment */
YY_BREAK
case 52:
/* rule 52 can match eol */
case 21:
/* rule 21 can match eol */
YY_RULE_SETUP
current_file->lineno++;
YY_BREAK
case 53:
case 22:
YY_RULE_SETUP
YY_BREAK
......@@ -2494,8 +1117,8 @@ case YY_STATE_EOF(PARAM):
}
YY_BREAK
case 54:
/* rule 54 can match eol */
case 23:
/* rule 23 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up zconftext again */
......@@ -2506,14 +1129,14 @@ YY_RULE_SETUP
return T_WORD_QUOTE;
}
YY_BREAK
case 55:
case 24:
YY_RULE_SETUP
{
append_string(zconftext, zconfleng);
}
YY_BREAK
case 56:
/* rule 56 can match eol */
case 25:
/* rule 25 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up zconftext again */
......@@ -2524,13 +1147,13 @@ YY_RULE_SETUP
return T_WORD_QUOTE;
}
YY_BREAK
case 57:
case 26:
YY_RULE_SETUP
{
append_string(zconftext + 1, zconfleng - 1);
}
YY_BREAK
case 58:
case 27:
YY_RULE_SETUP
{
if (str == zconftext[0]) {
......@@ -2541,8 +1164,8 @@ YY_RULE_SETUP
append_string(zconftext, 1);
}
YY_BREAK
case 59:
/* rule 59 can match eol */
case 28:
/* rule 28 can match eol */
YY_RULE_SETUP
{
printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
......@@ -2557,7 +1180,7 @@ case YY_STATE_EOF(STRING):
}
YY_BREAK
case 60:
case 29:
YY_RULE_SETUP
{
ts = 0;
......@@ -2582,8 +1205,8 @@ YY_RULE_SETUP
}
}
YY_BREAK
case 61:
/* rule 61 can match eol */
case 30:
/* rule 30 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up zconftext again */
......@@ -2594,15 +1217,15 @@ YY_RULE_SETUP
return T_HELPTEXT;
}
YY_BREAK
case 62:
/* rule 62 can match eol */
case 31:
/* rule 31 can match eol */
YY_RULE_SETUP
{
current_file->lineno++;
append_string("\n", 1);
}
YY_BREAK
case 63:
case 32:
YY_RULE_SETUP
{
append_string(zconftext, zconfleng);
......@@ -2628,7 +1251,7 @@ case YY_STATE_EOF(COMMAND):
yyterminate();
}
YY_BREAK
case 64:
case 33:
YY_RULE_SETUP
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
......@@ -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
* 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
......
......@@ -37,6 +37,16 @@ extern "C" {
#define _(text) gettext(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);
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 @@
#define START_STRSIZE 16
char *text;
static char *text_ptr;
static char *text;
static int text_size, text_asize;
struct buffer {
......@@ -38,23 +37,22 @@ void new_string(void)
{
text = malloc(START_STRSIZE);
text_asize = START_STRSIZE;
text_ptr = text;
text_size = 0;
*text_ptr = 0;
*text = 0;
}
void append_string(const char *str, int size)
{
int new_size = text_size + size + 1;
if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
text = realloc(text, new_size);
text_asize = new_size;
text_ptr = text + text_size;
}
memcpy(text_ptr, str, size);
text_ptr += size;
memcpy(text + text_size, str, size);
text_size += size;
*text_ptr = 0;
text[text_size] = 0;
}
void alloc_string(const char *str, int size)
......@@ -88,36 +86,12 @@ n [A-Za-z0-9_]
<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}+ {
struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
if (id && id->flags & TF_COMMAND) {
BEGIN(PARAM);
return id->token;
}
alloc_string(yytext, yyleng);
zconflval.string = text;
return T_WORD;
......@@ -134,8 +108,6 @@ n [A-Za-z0-9_]
"!" return T_NOT;
"=" return T_EQUAL;
"!=" return T_UNEQUAL;
"if" return T_IF;
"on" return T_ON;
\"|\' {
str = yytext[0];
new_string();
......@@ -144,6 +116,9 @@ n [A-Za-z0-9_]
\n BEGIN(INITIAL); current_file->lineno++; return T_EOL;
--- /* ignore */
({n}|[-/.])+ {
struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
if (id && id->flags & TF_PARAM)
return id->token;
alloc_string(yytext, yyleng);
zconflval.string = text;
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,
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
it under the terms of the GNU General Public License as published by
......@@ -45,8 +45,7 @@
/* Using locations. */
#define YYLSP_NEEDED 0
/* If NAME_PREFIX is specified substitute the variables and functions
names. */
/* Substitute the variable and function names. */
#define yyparse zconfparse
#define yylex zconflex
#define yyerror zconferror
......@@ -161,6 +160,11 @@
#include <string.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 0x0001
......@@ -202,7 +206,7 @@ typedef union YYSTYPE {
struct expr *expr;
struct menu *menu;
} YYSTYPE;
/* Line 191 of yacc.c. */
/* Line 190 of yacc.c. */
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
......@@ -214,27 +218,26 @@ typedef union YYSTYPE {
/* Copy the second part of user declarations. */
#define LKC_DIRECT_LINK
#include "lkc.h"
/* Line 214 of yacc.c. */
/* Line 213 of yacc.c. */
#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. */
# if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# else
# ifndef YYSTACK_USE_ALLOCA
# if defined (alloca) || defined (_ALLOCA_H)
# define YYSTACK_ALLOC alloca
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# endif
# define YYSTACK_ALLOC alloca
# endif
# endif
# endif
......@@ -247,20 +250,20 @@ typedef union YYSTYPE {
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE free
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
|| (YYSTYPE_IS_TRIVIAL)))
|| (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
short yyss;
short int yyss;
YYSTYPE yyvs;
};
......@@ -270,13 +273,13 @@ union yyalloc
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if 1 < __GNUC__
# if defined (__GNUC__) && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
......@@ -312,7 +315,7 @@ union yyalloc
#if defined (__STDC__) || defined (__cplusplus)
typedef signed char yysigned_char;
#else
typedef short yysigned_char;
typedef short int yysigned_char;
#endif
/* YYFINAL -- State number of the termination state. */
......@@ -374,7 +377,7 @@ static const unsigned char yytranslate[] =
#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
static const unsigned short yyprhs[] =
static const unsigned short int yyprhs[] =
{
0, 0, 3, 4, 7, 9, 11, 13, 17, 19,
21, 23, 26, 28, 30, 32, 34, 36, 38, 42,
......@@ -427,19 +430,19 @@ static const yysigned_char yyrhs[] =
};
/* 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,
104, 105, 109, 110, 111, 112, 113, 114, 120, 128,
134, 142, 152, 154, 155, 156, 157, 160, 166, 173,
179, 186, 192, 198, 204, 210, 216, 222, 230, 239,
245, 254, 255, 261, 263, 264, 265, 266, 269, 275,
281, 287, 293, 299, 301, 306, 315, 324, 325, 331,
333, 334, 335, 340, 347, 353, 362, 363, 369, 371,
372, 373, 374, 377, 383, 390, 397, 404, 410, 417,
418, 419, 422, 427, 432, 440, 442, 447, 448, 451,
452, 453, 457, 457, 459, 460, 463, 464, 465, 466,
467, 468, 469, 472, 473
0, 97, 97, 98, 101, 102, 103, 104, 105, 106,
107, 108, 112, 113, 114, 115, 116, 117, 123, 131,
137, 145, 155, 157, 158, 159, 160, 163, 169, 176,
182, 189, 195, 201, 207, 213, 219, 225, 233, 242,
248, 257, 258, 264, 266, 267, 268, 269, 272, 278,
284, 290, 296, 302, 304, 309, 318, 327, 328, 334,
336, 337, 338, 343, 350, 356, 365, 366, 372, 374,
375, 376, 377, 380, 386, 393, 400, 407, 413, 420,
421, 422, 425, 430, 435, 443, 445, 450, 451, 454,
455, 456, 460, 460, 462, 463, 466, 467, 468, 469,
470, 471, 472, 475, 476
};
#endif
......@@ -448,29 +451,29 @@ static const unsigned short yyrline[] =
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
"T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
"T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
"T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
"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_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
"T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block",
"common_block", "config_entry_start", "config_stmt",
"menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
"config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
"choice_option_list", "choice_option", "choice_block", "if", "if_end",
"if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
"menu_block", "source", "source_stmt", "comment", "comment_stmt",
"help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
"prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0
"$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
"T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
"T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
"T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
"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_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
"T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", "common_block",
"config_entry_start", "config_stmt", "menuconfig_entry_start",
"menuconfig_stmt", "config_option_list", "config_option", "choice",
"choice_entry", "choice_end", "choice_stmt", "choice_option_list",
"choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block",
"menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source",
"source_stmt", "comment", "comment_stmt", "help_start", "help",
"depends_list", "depends", "prompt_stmt_opt", "prompt", "end",
"nl_or_eof", "if_expr", "expr", "symbol", 0
};
#endif
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
static const unsigned short yytoknum[] =
static const unsigned short int yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
......@@ -539,7 +542,7 @@ static const unsigned char yydefact[] =
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] =
static const short int yydefgoto[] =
{
-1, 1, 17, 18, 19, 20, 21, 22, 52, 88,
23, 24, 105, 25, 54, 98, 55, 26, 109, 27,
......@@ -551,7 +554,7 @@ static const short yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -99
static const short yypact[] =
static const short int yypact[] =
{
-99, 48, -99, 38, 46, 46, -99, 46, -29, -99,
46, -17, -3, -11, -99, -99, -99, -99, -99, -99,
......@@ -575,7 +578,7 @@ static const short yypact[] =
};
/* 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, 91, -99, -99, -99, -99, -99, -99,
......@@ -589,7 +592,7 @@ static const short yypgoto[] =
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -68
static const short yytable[] =
static const short int yytable[] =
{
66, 67, 36, 42, 39, 40, 71, 41, 123, 124,
43, 44, 74, 75, 120, 154, 72, 46, 47, 69,
......@@ -687,7 +690,7 @@ static const unsigned char yystos[] =
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1
#define YYERROR goto yyerrorlab
/* Like YYERROR except do call yyerror. This remains here temporarily
......@@ -715,20 +718,53 @@ do \
} \
while (0)
#define YYTERROR 1
#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
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.first_line = Rhs[1].first_line; \
Current.first_column = Rhs[1].first_column; \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (N) \
{ \
(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
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM
......@@ -751,36 +787,30 @@ do { \
YYFPRINTF Args; \
} while (0)
# define YYDSYMPRINT(Args) \
do { \
if (yydebug) \
yysymprint Args; \
} while (0)
# define YYDSYMPRINTF(Title, Token, Value, Location) \
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
Token, Value); \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (cinluded). |
| TOP (included). |
`------------------------------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
static void
yy_stack_print (short *bottom, short *top)
yy_stack_print (short int *bottom, short int *top)
#else
static void
yy_stack_print (bottom, top)
short *bottom;
short *top;
short int *bottom;
short int *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
......@@ -810,9 +840,9 @@ yy_reduce_print (yyrule)
#endif
{
int yyi;
unsigned int yylineno = yyrline[yyrule];
unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
yyrule - 1, yylineno);
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
......@@ -830,8 +860,7 @@ do { \
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YYDSYMPRINT(Args)
# define YYDSYMPRINTF(Title, Token, Value, Location)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
......@@ -849,10 +878,6 @@ int yydebug;
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
#if YYMAXDEPTH == 0
# undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
......@@ -934,15 +959,15 @@ yysymprint (yyoutput, yytype, yyvaluep)
(void) yyvaluep;
if (yytype < YYNTOKENS)
{
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
# ifdef YYPRINT
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
}
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
switch (yytype)
{
default:
......@@ -958,10 +983,11 @@ yysymprint (yyoutput, yytype, yyvaluep)
#if defined (__STDC__) || defined (__cplusplus)
static void
yydestruct (int yytype, YYSTYPE *yyvaluep)
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yytype, yyvaluep)
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
......@@ -969,6 +995,10 @@ yydestruct (yytype, yyvaluep)
/* Pacify ``unused variable'' warnings. */
(void) yyvaluep;
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
......@@ -996,10 +1026,10 @@ int yyparse ();
/* The lookahead symbol. */
/* The look-ahead symbol. */
int yychar;
/* The semantic value of the lookahead symbol. */
/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
......@@ -1035,7 +1065,7 @@ yyparse ()
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* Lookahead token as an internal (translated) token number. */
/* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
/* Three stacks and their tools:
......@@ -1047,9 +1077,9 @@ yyparse ()
to reallocate them elsewhere. */
/* The state stack. */
short yyssa[YYINITDEPTH];
short *yyss = yyssa;
register short *yyssp;
short int yyssa[YYINITDEPTH];
short int *yyss = yyssa;
register short int *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
......@@ -1086,6 +1116,9 @@ yyparse ()
yyssp = yyss;
yyvsp = yyvs;
yyvsp[0] = yylval;
goto yysetstate;
/*------------------------------------------------------------.
......@@ -1111,7 +1144,7 @@ yyparse ()
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
short int *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
......@@ -1139,7 +1172,7 @@ yyparse ()
yystacksize = YYMAXDEPTH;
{
short *yyss1 = yyss;
short int *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
......@@ -1175,18 +1208,18 @@ yyparse ()
yybackup:
/* 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: */
/* 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];
if (yyn == YYPACT_NINF)
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)
{
YYDPRINTF ((stderr, "Reading a token: "));
......@@ -1201,7 +1234,7 @@ yybackup:
else
{
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
......@@ -1221,8 +1254,8 @@ yybackup:
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
/* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
......@@ -1294,10 +1327,10 @@ yyreduce:
case 18:
{
struct symbol *sym = sym_lookup(yyvsp[-1].string, 0);
struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
sym->flags |= SYMBOL_OPTIONAL;
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;
......@@ -1312,10 +1345,10 @@ yyreduce:
case 20:
{
struct symbol *sym = sym_lookup(yyvsp[-1].string, 0);
struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
sym->flags |= SYMBOL_OPTIONAL;
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;
......@@ -1342,7 +1375,7 @@ yyreduce:
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);
printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
;}
......@@ -1359,7 +1392,7 @@ yyreduce:
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);
printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
;}
......@@ -1392,7 +1425,7 @@ yyreduce:
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());
;}
break;
......@@ -1400,7 +1433,7 @@ yyreduce:
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());
;}
break;
......@@ -1408,7 +1441,7 @@ yyreduce:
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());
;}
break;
......@@ -1416,7 +1449,7 @@ yyreduce:
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());
;}
break;
......@@ -1443,7 +1476,7 @@ yyreduce:
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();
printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
}
......@@ -1461,7 +1494,7 @@ yyreduce:
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());
;}
break;
......@@ -1493,7 +1526,7 @@ yyreduce:
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());
;}
break;
......@@ -1503,7 +1536,7 @@ yyreduce:
{
printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
menu_add_entry(NULL);
menu_add_dep(yyvsp[-1].expr);
menu_add_dep((yyvsp[-1].expr));
menu_end_entry();
menu_add_menu();
;}
......@@ -1512,7 +1545,7 @@ yyreduce:
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();
printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
}
......@@ -1531,7 +1564,7 @@ yyreduce:
{
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());
;}
break;
......@@ -1547,7 +1580,7 @@ yyreduce:
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();
printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
}
......@@ -1570,15 +1603,15 @@ yyreduce:
case 73:
{
yyval.string = yyvsp[-1].string;
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string);
(yyval.string) = (yyvsp[-1].string);
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
;}
break;
case 74:
{
zconf_nextfile(yyvsp[0].string);
zconf_nextfile((yyvsp[0].string));
;}
break;
......@@ -1586,7 +1619,7 @@ yyreduce:
{
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());
;}
break;
......@@ -1609,14 +1642,14 @@ yyreduce:
case 78:
{
current_entry->sym->help = yyvsp[0].string;
current_entry->sym->help = (yyvsp[0].string);
;}
break;
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());
;}
break;
......@@ -1624,7 +1657,7 @@ yyreduce:
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());
;}
break;
......@@ -1632,7 +1665,7 @@ yyreduce:
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());
;}
break;
......@@ -1640,84 +1673,84 @@ yyreduce:
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;
case 89:
{ yyval.token = T_ENDMENU; ;}
{ (yyval.token) = T_ENDMENU; ;}
break;
case 90:
{ yyval.token = T_ENDCHOICE; ;}
{ (yyval.token) = T_ENDCHOICE; ;}
break;
case 91:
{ yyval.token = T_ENDIF; ;}
{ (yyval.token) = T_ENDIF; ;}
break;
case 94:
{ yyval.expr = NULL; ;}
{ (yyval.expr) = NULL; ;}
break;
case 95:
{ yyval.expr = yyvsp[0].expr; ;}
{ (yyval.expr) = (yyvsp[0].expr); ;}
break;
case 96:
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;}
{ (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;}
break;
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;
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;
case 99:
{ yyval.expr = yyvsp[-1].expr; ;}
{ (yyval.expr) = (yyvsp[-1].expr); ;}
break;
case 100:
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;}
{ (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;}
break;
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;
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;
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;
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;
}
/* Line 999 of yacc.c. */
/* Line 1037 of yacc.c. */
yyvsp -= yylen;
......@@ -1759,18 +1792,33 @@ yyerrlab:
{
YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar);
const char* yyprefix;
char *yymsg;
int yyx, yycount;
int yyx;
yycount = 0;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
for (yyx = yyn < 0 ? -yyn : 0;
yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
int yyxbegin = yyn < 0 ? -yyn : 0;
/* 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)
yysize += yystrlen (yytname[yyx]) + 15, yycount++;
yysize += yystrlen ("syntax error, unexpected ") + 1;
yysize += yystrlen (yytname[yytype]);
{
yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
yycount += 1;
if (yycount == 5)
{
yysize = 0;
break;
}
}
yysize += (sizeof ("syntax error, unexpected ")
+ yystrlen (yytname[yytype]));
yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0)
{
......@@ -1779,16 +1827,13 @@ yyerrlab:
if (yycount < 5)
{
yycount = 0;
for (yyx = yyn < 0 ? -yyn : 0;
yyx < (int) (sizeof (yytname) / sizeof (char *));
yyx++)
yyprefix = ", expecting ";
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
const char *yyq = ! yycount ? ", expecting " : " or ";
yyp = yystpcpy (yyp, yyq);
yyp = yystpcpy (yyp, yyprefix);
yyp = yystpcpy (yyp, yytname[yyx]);
yycount++;
yyprefix = " or ";
}
}
yyerror (yymsg);
......@@ -1806,38 +1851,57 @@ yyerrlab:
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. */
/* Return failure if at end of input. */
if (yychar == YYEOF)
if (yychar <= YYEOF)
{
/* Pop the error token. */
YYPOPSTACK;
/* Pop the rest of the stack. */
while (yyss < yyssp)
{
YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
yydestruct (yystos[*yyssp], yyvsp);
YYPOPSTACK;
}
YYABORT;
/* If at end of input, pop the error token,
then the rest of the stack, then return failure. */
if (yychar == YYEOF)
for (;;)
{
YYPOPSTACK;
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping",
yystos[*yyssp], yyvsp);
}
}
YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
yydestruct (yytoken, &yylval);
yychar = YYEMPTY;
else
{
yydestruct ("Error: discarding", yytoken, &yylval);
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. */
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:
yyerrstatus = 3; /* Each real token shifted decrements this. */
......@@ -1859,22 +1923,22 @@ yyerrlab1:
if (yyssp == yyss)
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);
}
if (yyn == YYFINAL)
YYACCEPT;
YYDPRINTF ((stderr, "Shifting error token, "));
*++yyvsp = yylval;
/* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
......@@ -1890,6 +1954,9 @@ yyacceptlab:
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
yyabortlab:
yydestruct ("Error: discarding lookahead",
yytoken, &yylval);
yychar = YYEMPTY;
yyresult = 1;
goto yyreturn;
......
......@@ -11,6 +11,11 @@
#include <string.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 0x0001
......@@ -88,10 +93,6 @@ static struct menu *current_menu, *current_entry;
%type <expr> if_expr
%type <token> end
%{
#define LKC_DIRECT_LINK
#include "lkc.h"
%}
%%
input: /* empty */
| input block
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册