aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2005-11-09 00:34:51 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-09 10:55:53 -0500
commit7a88488bbc231e48a4a88ee2569bc0cc5d706f0a (patch)
tree2fd6b51b5cf76dd37a2a369a29c50b5121c12a92 /scripts
parent491d711035dc08071ed58cf470f15efadb67cb1c (diff)
[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: Roman Zippel <zippel@linux-m68k.org> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/kconfig/Makefile11
-rw-r--r--scripts/kconfig/lex.zconf.c_shipped1697
-rw-r--r--scripts/kconfig/lkc.h10
-rw-r--r--scripts/kconfig/zconf.gperf43
-rw-r--r--scripts/kconfig/zconf.hash.c_shipped231
-rw-r--r--scripts/kconfig/zconf.l53
-rw-r--r--scripts/kconfig/zconf.tab.c_shipped455
-rw-r--r--scripts/kconfig/zconf.y9
8 files changed, 732 insertions, 1777 deletions
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 65e3e7371251..9d67782b812f 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -114,7 +114,7 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
114endif 114endif
115 115
116clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ 116clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
117 .tmp_gtkcheck zconf.tab.c lex.zconf.c 117 .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
118 118
119# Needed for systems without gettext 119# Needed for systems without gettext
120KBUILD_HAVE_NLS := $(shell \ 120KBUILD_HAVE_NLS := $(shell \
@@ -201,7 +201,7 @@ $(obj)/.tmp_gtkcheck:
201 fi 201 fi
202endif 202endif
203 203
204$(obj)/zconf.tab.o: $(obj)/lex.zconf.c 204$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
205 205
206$(obj)/kconfig_load.o: $(obj)/lkc_defs.h 206$(obj)/kconfig_load.o: $(obj)/lkc_defs.h
207 207
@@ -217,7 +217,7 @@ $(obj)/lkc_defs.h: $(src)/lkc_proto.h
217 217
218 218
219### 219###
220# The following requires flex/bison 220# The following requires flex/bison/gperf
221# By default we use the _shipped versions, uncomment the following line if 221# By default we use the _shipped versions, uncomment the following line if
222# you are modifying the flex/bison src. 222# you are modifying the flex/bison src.
223# LKC_GENPARSER := 1 223# LKC_GENPARSER := 1
@@ -226,6 +226,7 @@ ifdef LKC_GENPARSER
226 226
227$(obj)/zconf.tab.c: $(src)/zconf.y 227$(obj)/zconf.tab.c: $(src)/zconf.y
228$(obj)/lex.zconf.c: $(src)/zconf.l 228$(obj)/lex.zconf.c: $(src)/zconf.l
229$(obj)/zconf.hash.c: $(src)/zconf.gperf
229 230
230%.tab.c: %.y 231%.tab.c: %.y
231 bison -l -b $* -p $(notdir $*) $< 232 bison -l -b $* -p $(notdir $*) $<
@@ -235,4 +236,8 @@ lex.%.c: %.l
235 flex -L -P$(notdir $*) -o$@ $< 236 flex -L -P$(notdir $*) -o$@ $<
236 cp $@ $@_shipped 237 cp $@ $@_shipped
237 238
239%.hash.c: %.gperf
240 gperf < $< > $@
241 cp $@ $@_shipped
242
238endif 243endif
diff --git a/scripts/kconfig/lex.zconf.c_shipped b/scripts/kconfig/lex.zconf.c_shipped
index 22dda11f758b..0168141417f6 100644
--- a/scripts/kconfig/lex.zconf.c_shipped
+++ b/scripts/kconfig/lex.zconf.c_shipped
@@ -1,5 +1,5 @@
1 1
2#line 3 "lex.zconf.c" 2#line 3 "scripts/kconfig/lex.zconf.c"
3 3
4#define YY_INT_ALIGNED short int 4#define YY_INT_ALIGNED short int
5 5
@@ -338,1567 +338,323 @@ int zconflineno = 1;
338 338
339extern char *zconftext; 339extern char *zconftext;
340#define yytext_ptr zconftext 340#define yytext_ptr zconftext
341static yyconst flex_int16_t yy_nxt[][38] = 341static yyconst flex_int16_t yy_nxt[][17] =
342 { 342 {
343 { 343 {
344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 345 0, 0, 0, 0, 0, 0, 0
346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
347 0, 0, 0, 0, 0, 0, 0, 0
348 }, 346 },
349 347
350 { 348 {
351 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, 349 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
352 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 350 12, 12, 12, 12, 12, 12, 12
353 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
354 12, 12, 12, 12, 12, 12, 12, 12
355 }, 351 },
356 352
357 { 353 {
358 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, 354 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
359 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 355 12, 12, 12, 12, 12, 12, 12
360
361 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
362 12, 12, 12, 12, 12, 12, 12, 12
363 }, 356 },
364 357
365 { 358 {
366 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, 359 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
367 16, 16, 16, 18, 16, 16, 18, 18, 19, 20, 360 16, 16, 16, 18, 16, 16, 16
368 21, 22, 18, 18, 23, 24, 18, 25, 18, 26,
369 27, 18, 28, 29, 30, 18, 18, 16
370 }, 361 },
371 362
372 { 363 {
373 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, 364 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
374 16, 16, 16, 18, 16, 16, 18, 18, 19, 20, 365 16, 16, 16, 18, 16, 16, 16
375 21, 22, 18, 18, 23, 24, 18, 25, 18, 26,
376 27, 18, 28, 29, 30, 18, 18, 16
377 366
378 }, 367 },
379 368
380 { 369 {
381 11, 31, 32, 33, 31, 31, 31, 31, 31, 31, 370 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
382 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 371 19, 19, 19, 19, 19, 19, 19
383 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
384 31, 31, 31, 31, 31, 31, 31, 31
385 }, 372 },
386 373
387 { 374 {
388 11, 31, 32, 33, 31, 31, 31, 31, 31, 31, 375 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
389 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 376 19, 19, 19, 19, 19, 19, 19
390 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
391 31, 31, 31, 31, 31, 31, 31, 31
392 }, 377 },
393 378
394 { 379 {
395 11, 34, 34, 35, 34, 36, 34, 34, 36, 34, 380 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
396 34, 34, 34, 34, 34, 37, 34, 34, 34, 34, 381 22, 22, 22, 22, 22, 25, 22
397
398 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
399 34, 34, 34, 34, 34, 34, 34, 34
400 }, 382 },
401 383
402 { 384 {
403 11, 34, 34, 35, 34, 36, 34, 34, 36, 34, 385 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
404 34, 34, 34, 34, 34, 37, 34, 34, 34, 34, 386 22, 22, 22, 22, 22, 25, 22
405 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
406 34, 34, 34, 34, 34, 34, 34, 34
407 }, 387 },
408 388
409 { 389 {
410 11, 38, 38, 39, 40, 41, 42, 43, 41, 44, 390 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
411 45, 46, 47, 47, 48, 49, 47, 47, 47, 47, 391 33, 34, 35, 35, 36, 37, 38
412 47, 47, 47, 47, 47, 50, 47, 47, 47, 51,
413 47, 47, 47, 47, 47, 47, 47, 52
414 392
415 }, 393 },
416 394
417 { 395 {
418 11, 38, 38, 39, 40, 41, 42, 43, 41, 44, 396 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
419 45, 46, 47, 47, 48, 49, 47, 47, 47, 47, 397 33, 34, 35, 35, 36, 37, 38
420 47, 47, 47, 47, 47, 50, 47, 47, 47, 51,
421 47, 47, 47, 47, 47, 47, 47, 52
422 }, 398 },
423 399
424 { 400 {
425 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 401 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
426 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 402 -11, -11, -11, -11, -11, -11, -11
427 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
428 -11, -11, -11, -11, -11, -11, -11, -11
429 }, 403 },
430 404
431 { 405 {
432 11, -12, -12, -12, -12, -12, -12, -12, -12, -12, 406 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
433 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 407 -12, -12, -12, -12, -12, -12, -12
434
435 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
436 -12, -12, -12, -12, -12, -12, -12, -12
437 }, 408 },
438 409
439 { 410 {
440 11, -13, 53, 54, -13, -13, 55, -13, -13, -13, 411 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
441 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 412 -13, -13, -13, -13, -13, -13, -13
442 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
443 -13, -13, -13, -13, -13, -13, -13, -13
444 }, 413 },
445 414
446 { 415 {
447 11, -14, -14, -14, -14, -14, -14, -14, -14, -14, 416 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
448 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 417 -14, -14, -14, -14, -14, -14, -14
449 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
450 -14, -14, -14, -14, -14, -14, -14, -14
451 418
452 }, 419 },
453 420
454 { 421 {
455 11, 56, 56, 57, 56, 56, 56, 56, 56, 56, 422 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
456 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 423 42, 42, 42, 42, 42, 42, 42
457 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
458 56, 56, 56, 56, 56, 56, 56, 56
459 }, 424 },
460 425
461 { 426 {
462 11, -16, -16, -16, -16, -16, -16, -16, -16, -16, 427 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
463 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 428 -16, -16, -16, -16, -16, -16, -16
464 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
465 -16, -16, -16, -16, -16, -16, -16, -16
466 }, 429 },
467 430
468 { 431 {
469 11, -17, -17, -17, -17, -17, -17, -17, -17, -17, 432 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
470 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 433 -17, -17, -17, -17, -17, -17, -17
471
472 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
473 -17, -17, -17, -17, -17, -17, -17, -17
474 }, 434 },
475 435
476 { 436 {
477 11, -18, -18, -18, -18, -18, -18, -18, -18, -18, 437 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
478 -18, -18, -18, 58, -18, -18, 58, 58, 58, 58, 438 -18, -18, -18, 44, -18, -18, -18
479 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
480 58, 58, 58, 58, 58, 58, 58, -18
481 }, 439 },
482 440
483 { 441 {
484 11, -19, -19, -19, -19, -19, -19, -19, -19, -19, 442 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
485 -19, -19, -19, 58, -19, -19, 58, 58, 58, 58, 443 45, 45, 45, 45, 45, 45, 45
486 58, 58, 58, 58, 58, 58, 58, 58, 58, 59,
487 58, 58, 58, 58, 58, 58, 58, -19
488 444
489 }, 445 },
490 446
491 { 447 {
492 11, -20, -20, -20, -20, -20, -20, -20, -20, -20, 448 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
493 -20, -20, -20, 58, -20, -20, 58, 58, 58, 58, 449 -20, -20, -20, -20, -20, -20, -20
494 58, 58, 58, 58, 60, 58, 58, 58, 58, 61,
495 58, 58, 58, 58, 58, 58, 58, -20
496 }, 450 },
497 451
498 { 452 {
499 11, -21, -21, -21, -21, -21, -21, -21, -21, -21, 453 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
500 -21, -21, -21, 58, -21, -21, 58, 58, 58, 58, 454 48, 48, 48, 48, 48, 48, 48
501 58, 62, 58, 58, 58, 58, 58, 58, 58, 58,
502 58, 58, 58, 58, 58, 58, 58, -21
503 }, 455 },
504 456
505 { 457 {
506 11, -22, -22, -22, -22, -22, -22, -22, -22, -22, 458 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
507 -22, -22, -22, 58, -22, -22, 58, 58, 58, 58, 459 49, 49, 49, 49, 49, -22, 49
508
509 58, 58, 58, 58, 58, 58, 58, 58, 63, 58,
510 58, 58, 58, 58, 58, 58, 58, -22
511 }, 460 },
512 461
513 { 462 {
514 11, -23, -23, -23, -23, -23, -23, -23, -23, -23, 463 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
515 -23, -23, -23, 58, -23, -23, 58, 58, 58, 58, 464 -23, -23, -23, -23, -23, -23, -23
516 58, 64, 58, 58, 58, 58, 58, 58, 58, 58,
517 58, 58, 58, 58, 58, 58, 58, -23
518 }, 465 },
519 466
520 { 467 {
521 11, -24, -24, -24, -24, -24, -24, -24, -24, -24, 468 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
522 -24, -24, -24, 58, -24, -24, 58, 58, 58, 58, 469 -24, -24, -24, -24, -24, -24, -24
523 58, 58, 65, 58, 58, 58, 58, 58, 66, 58,
524 58, 58, 58, 58, 58, 58, 58, -24
525 470
526 }, 471 },
527 472
528 { 473 {
529 11, -25, -25, -25, -25, -25, -25, -25, -25, -25, 474 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
530 -25, -25, -25, 58, -25, -25, 58, 67, 58, 58, 475 51, 51, 51, 51, 51, 51, 51
531 58, 68, 58, 58, 58, 58, 58, 58, 58, 58,
532 58, 58, 58, 58, 58, 58, 58, -25
533 }, 476 },
534 477
535 { 478 {
536 11, -26, -26, -26, -26, -26, -26, -26, -26, -26, 479 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
537 -26, -26, -26, 58, -26, -26, 58, 58, 58, 58, 480 -26, -26, -26, -26, -26, -26, -26
538 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
539 69, 58, 58, 58, 58, 58, 58, -26
540 }, 481 },
541 482
542 { 483 {
543 11, -27, -27, -27, -27, -27, -27, -27, -27, -27, 484 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
544 -27, -27, -27, 58, -27, -27, 58, 58, 58, 58, 485 -27, -27, -27, -27, -27, -27, -27
545
546 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
547 58, 58, 70, 58, 58, 58, 58, -27
548 }, 486 },
549 487
550 { 488 {
551 11, -28, -28, -28, -28, -28, -28, -28, -28, -28, 489 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
552 -28, -28, -28, 58, -28, -28, 58, 71, 58, 58, 490 -28, -28, -28, -28, 53, -28, -28
553 58, 72, 58, 58, 58, 58, 58, 58, 58, 58,
554 58, 58, 58, 58, 58, 58, 58, -28
555 }, 491 },
556 492
557 { 493 {
558 11, -29, -29, -29, -29, -29, -29, -29, -29, -29, 494 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
559 -29, -29, -29, 58, -29, -29, 58, 58, 58, 58, 495 -29, -29, -29, -29, -29, -29, -29
560 58, 73, 58, 58, 58, 58, 58, 58, 58, 74,
561 58, 58, 58, 58, 75, 58, 58, -29
562 496
563 }, 497 },
564 498
565 { 499 {
566 11, -30, -30, -30, -30, -30, -30, -30, -30, -30, 500 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
567 -30, -30, -30, 58, -30, -30, 58, 58, 58, 58, 501 54, 54, 54, 54, 54, 54, 54
568 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
569 58, 58, 76, 58, 58, 58, 58, -30
570 }, 502 },
571 503
572 { 504 {
573 11, 77, 77, -31, 77, 77, 77, 77, 77, 77, 505 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
574 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 506 -31, -31, -31, -31, -31, -31, -31
575 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
576 77, 77, 77, 77, 77, 77, 77, 77
577 }, 507 },
578 508
579 { 509 {
580 11, -32, 78, 79, -32, -32, -32, -32, -32, -32, 510 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
581 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 511 -32, -32, -32, -32, -32, -32, -32
582
583 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
584 -32, -32, -32, -32, -32, -32, -32, -32
585 }, 512 },
586 513
587 { 514 {
588 11, 80, -33, -33, 80, 80, 80, 80, 80, 80, 515 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
589 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 516 -33, -33, -33, -33, -33, -33, -33
590 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
591 80, 80, 80, 80, 80, 80, 80, 80
592 }, 517 },
593 518
594 { 519 {
595 11, 81, 81, 82, 81, -34, 81, 81, -34, 81, 520 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
596 81, 81, 81, 81, 81, -34, 81, 81, 81, 81, 521 -34, 56, 57, 57, -34, -34, -34
597 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
598 81, 81, 81, 81, 81, 81, 81, 81
599 522
600 }, 523 },
601 524
602 { 525 {
603 11, -35, -35, -35, -35, -35, -35, -35, -35, -35, 526 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
604 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 527 -35, 57, 57, 57, -35, -35, -35
605 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
606 -35, -35, -35, -35, -35, -35, -35, -35
607 }, 528 },
608 529
609 { 530 {
610 11, -36, -36, -36, -36, -36, -36, -36, -36, -36, 531 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
611 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 532 -36, -36, -36, -36, -36, -36, -36
612 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
613 -36, -36, -36, -36, -36, -36, -36, -36
614 }, 533 },
615 534
616 { 535 {
617 11, 83, 83, 84, 83, 83, 83, 83, 83, 83, 536 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
618 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 537 -37, -37, -37, -37, -37, -37, -37
619
620 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
621 83, 83, 83, 83, 83, 83, 83, 83
622 }, 538 },
623 539
624 { 540 {
625 11, -38, -38, -38, -38, -38, -38, -38, -38, -38, 541 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
626 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 542 -38, -38, -38, -38, -38, -38, 59
627 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
628 -38, -38, -38, -38, -38, -38, -38, -38
629 }, 543 },
630 544
631 { 545 {
632 11, -39, -39, -39, -39, -39, -39, -39, -39, -39, 546 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
633 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 547 -39, -39, -39, -39, -39, -39, -39
634 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
635 -39, -39, -39, -39, -39, -39, -39, -39
636 548
637 }, 549 },
638 550
639 { 551 {
640 11, -40, -40, -40, -40, -40, -40, -40, -40, -40, 552 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
641 -40, -40, -40, -40, 85, -40, -40, -40, -40, -40, 553 -40, -40, -40, -40, -40, -40, -40
642 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
643 -40, -40, -40, -40, -40, -40, -40, -40
644 }, 554 },
645 555
646 { 556 {
647 11, -41, -41, -41, -41, -41, -41, -41, -41, -41, 557 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
648 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 558 42, 42, 42, 42, 42, 42, 42
649 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
650 -41, -41, -41, -41, -41, -41, -41, -41
651 }, 559 },
652 560
653 { 561 {
654 11, 86, 86, -42, 86, 86, 86, 86, 86, 86, 562 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
655 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 563 42, 42, 42, 42, 42, 42, 42
656
657 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
658 86, 86, 86, 86, 86, 86, 86, 86
659 }, 564 },
660 565
661 { 566 {
662 11, -43, -43, -43, -43, -43, -43, 87, -43, -43, 567 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
663 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 568 -43, -43, -43, -43, -43, -43, -43
664 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
665 -43, -43, -43, -43, -43, -43, -43, -43
666 }, 569 },
667 570
668 { 571 {
669 11, -44, -44, -44, -44, -44, -44, -44, -44, -44, 572 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
670 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 573 -44, -44, -44, 44, -44, -44, -44
671 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
672 -44, -44, -44, -44, -44, -44, -44, -44
673 574
674 }, 575 },
675 576
676 { 577 {
677 11, -45, -45, -45, -45, -45, -45, -45, -45, -45, 578 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
678 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 579 45, 45, 45, 45, 45, 45, 45
679 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
680 -45, -45, -45, -45, -45, -45, -45, -45
681 }, 580 },
682 581
683 { 582 {
684 11, -46, -46, -46, -46, -46, -46, -46, -46, -46, 583 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
685 -46, 88, 89, 89, -46, -46, 89, 89, 89, 89, 584 -46, -46, -46, -46, -46, -46, -46
686 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
687 89, 89, 89, 89, 89, 89, 89, -46
688 }, 585 },
689 586
690 { 587 {
691 11, -47, -47, -47, -47, -47, -47, -47, -47, -47, 588 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
692 -47, 89, 89, 89, -47, -47, 89, 89, 89, 89, 589 48, 48, 48, 48, 48, 48, 48
693
694 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
695 89, 89, 89, 89, 89, 89, 89, -47
696 }, 590 },
697 591
698 { 592 {
699 11, -48, -48, -48, -48, -48, -48, -48, -48, -48, 593 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
700 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 594 -48, -48, -48, -48, -48, -48, -48
701 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
702 -48, -48, -48, -48, -48, -48, -48, -48
703 }, 595 },
704 596
705 { 597 {
706 11, -49, -49, 90, -49, -49, -49, -49, -49, -49, 598 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
707 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 599 49, 49, 49, 49, 49, -49, 49
708 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
709 -49, -49, -49, -49, -49, -49, -49, -49
710 600
711 }, 601 },
712 602
713 { 603 {
714 11, -50, -50, -50, -50, -50, -50, -50, -50, -50, 604 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
715 -50, 89, 89, 89, -50, -50, 89, 89, 89, 89, 605 -50, -50, -50, -50, -50, -50, -50
716 89, 89, 91, 89, 89, 89, 89, 89, 89, 89,
717 89, 89, 89, 89, 89, 89, 89, -50
718 }, 606 },
719 607
720 { 608 {
721 11, -51, -51, -51, -51, -51, -51, -51, -51, -51, 609 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
722 -51, 89, 89, 89, -51, -51, 89, 89, 89, 89, 610 -51, -51, -51, -51, -51, -51, -51
723 89, 89, 89, 89, 89, 89, 89, 89, 92, 89,
724 89, 89, 89, 89, 89, 89, 89, -51
725 }, 611 },
726 612
727 { 613 {
728 11, -52, -52, -52, -52, -52, -52, -52, -52, -52, 614 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
729 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 615 -52, -52, -52, -52, -52, -52, -52
730
731 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
732 -52, -52, -52, -52, -52, -52, -52, 93
733 }, 616 },
734 617
735 { 618 {
736 11, -53, 53, 54, -53, -53, 55, -53, -53, -53, 619 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
737 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 620 -53, -53, -53, -53, -53, -53, -53
738 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
739 -53, -53, -53, -53, -53, -53, -53, -53
740 }, 621 },
741 622
742 { 623 {
743 11, -54, -54, -54, -54, -54, -54, -54, -54, -54, 624 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
744 -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 625 54, 54, 54, 54, 54, 54, 54
745 -54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
746 -54, -54, -54, -54, -54, -54, -54, -54
747 626
748 }, 627 },
749 628
750 { 629 {
751 11, 56, 56, 57, 56, 56, 56, 56, 56, 56, 630 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
752 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 631 -55, -55, -55, -55, -55, -55, -55
753 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
754 56, 56, 56, 56, 56, 56, 56, 56
755 }, 632 },
756 633
757 { 634 {
758 11, 56, 56, 57, 56, 56, 56, 56, 56, 56, 635 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
759 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 636 -56, 60, 57, 57, -56, -56, -56
760 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
761 56, 56, 56, 56, 56, 56, 56, 56
762 }, 637 },
763 638
764 { 639 {
765 11, -57, -57, -57, -57, -57, -57, -57, -57, -57, 640 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
766 -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 641 -57, 57, 57, 57, -57, -57, -57
767
768 -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
769 -57, -57, -57, -57, -57, -57, -57, -57
770 }, 642 },
771 643
772 { 644 {
773 11, -58, -58, -58, -58, -58, -58, -58, -58, -58, 645 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
774 -58, -58, -58, 58, -58, -58, 58, 58, 58, 58, 646 -58, -58, -58, -58, -58, -58, -58
775 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
776 58, 58, 58, 58, 58, 58, 58, -58
777 }, 647 },
778 648
779 { 649 {
780 11, -59, -59, -59, -59, -59, -59, -59, -59, -59, 650 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
781 -59, -59, -59, 58, -59, -59, 58, 58, 58, 58, 651 -59, -59, -59, -59, -59, -59, -59
782 58, 58, 58, 58, 58, 58, 58, 58, 58, 94,
783 58, 58, 58, 58, 58, 58, 58, -59
784 652
785 }, 653 },
786 654
787 { 655 {
788 11, -60, -60, -60, -60, -60, -60, -60, -60, -60, 656 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
789 -60, -60, -60, 58, -60, -60, 58, 58, 58, 58, 657 -60, 57, 57, 57, -60, -60, -60
790 58, 58, 58, 58, 58, 58, 58, 58, 58, 95,
791 58, 58, 58, 58, 58, 58, 58, -60
792 },
793
794 {
795 11, -61, -61, -61, -61, -61, -61, -61, -61, -61,
796 -61, -61, -61, 58, -61, -61, 58, 58, 58, 58,
797 58, 58, 58, 58, 58, 58, 58, 96, 97, 58,
798 58, 58, 58, 58, 58, 58, 58, -61
799 },
800
801 {
802 11, -62, -62, -62, -62, -62, -62, -62, -62, -62,
803 -62, -62, -62, 58, -62, -62, 58, 58, 58, 58,
804
805 58, 58, 98, 58, 58, 58, 58, 58, 58, 58,
806 99, 58, 58, 58, 58, 58, 58, -62
807 },
808
809 {
810 11, -63, -63, -63, -63, -63, -63, -63, -63, -63,
811 -63, -63, -63, 58, -63, -63, 58, 100, 58, 58,
812 101, 58, 58, 58, 58, 58, 58, 58, 58, 58,
813 58, 58, 58, 58, 58, 58, 58, -63
814 },
815
816 {
817 11, -64, -64, -64, -64, -64, -64, -64, -64, -64,
818 -64, -64, -64, 58, -64, -64, 58, 58, 58, 58,
819 58, 58, 58, 58, 58, 58, 102, 58, 58, 58,
820 58, 58, 58, 58, 58, 58, 103, -64
821
822 },
823
824 {
825 11, -65, -65, -65, -65, -65, -65, -65, -65, -65,
826 -65, -65, -65, 58, -65, -65, 58, 58, 58, 58,
827 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
828 58, 58, 58, 58, 58, 58, 58, -65
829 },
830
831 {
832 11, -66, -66, -66, -66, -66, -66, -66, -66, -66,
833 -66, -66, -66, 58, -66, -66, 58, 58, 58, 58,
834 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
835 58, 58, 58, 58, 104, 58, 58, -66
836 },
837
838 {
839 11, -67, -67, -67, -67, -67, -67, -67, -67, -67,
840 -67, -67, -67, 58, -67, -67, 58, 58, 58, 58,
841
842 58, 58, 58, 58, 58, 105, 58, 58, 58, 58,
843 58, 58, 58, 58, 58, 58, 58, -67
844 },
845
846 {
847 11, -68, -68, -68, -68, -68, -68, -68, -68, -68,
848 -68, -68, -68, 58, -68, -68, 58, 58, 58, 58,
849 58, 58, 58, 58, 58, 58, 58, 58, 106, 58,
850 58, 58, 58, 58, 58, 58, 58, -68
851 },
852
853 {
854 11, -69, -69, -69, -69, -69, -69, -69, -69, -69,
855 -69, -69, -69, 58, -69, -69, 58, 58, 58, 58,
856 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
857 58, 58, 58, 58, 107, 58, 58, -69
858
859 },
860
861 {
862 11, -70, -70, -70, -70, -70, -70, -70, -70, -70,
863 -70, -70, -70, 58, -70, -70, 58, 58, 58, 58,
864 58, 58, 58, 58, 58, 58, 58, 58, 58, 108,
865 58, 58, 58, 58, 58, 58, 58, -70
866 },
867
868 {
869 11, -71, -71, -71, -71, -71, -71, -71, -71, -71,
870 -71, -71, -71, 58, -71, -71, 58, 58, 58, 58,
871 58, 58, 58, 58, 58, 58, 58, 58, 109, 58,
872 58, 58, 58, 58, 58, 58, 58, -71
873 },
874
875 {
876 11, -72, -72, -72, -72, -72, -72, -72, -72, -72,
877 -72, -72, -72, 58, -72, -72, 58, 58, 58, 58,
878
879 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
880 58, 110, 58, 58, 58, 58, 58, -72
881 },
882
883 {
884 11, -73, -73, -73, -73, -73, -73, -73, -73, -73,
885 -73, -73, -73, 58, -73, -73, 58, 58, 58, 58,
886 58, 58, 58, 58, 58, 58, 111, 58, 58, 58,
887 58, 58, 58, 58, 58, 58, 58, -73
888 },
889
890 {
891 11, -74, -74, -74, -74, -74, -74, -74, -74, -74,
892 -74, -74, -74, 58, -74, -74, 58, 58, 58, 58,
893 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
894 58, 58, 58, 58, 58, 112, 58, -74
895
896 },
897
898 {
899 11, -75, -75, -75, -75, -75, -75, -75, -75, -75,
900 -75, -75, -75, 58, -75, -75, 58, 58, 58, 58,
901 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
902 58, 58, 113, 58, 58, 58, 58, -75
903 },
904
905 {
906 11, -76, -76, -76, -76, -76, -76, -76, -76, -76,
907 -76, -76, -76, 58, -76, -76, 58, 58, 58, 58,
908 58, 58, 58, 58, 58, 114, 58, 58, 58, 58,
909 58, 58, 58, 58, 58, 58, 58, -76
910 },
911
912 {
913 11, 77, 77, -77, 77, 77, 77, 77, 77, 77,
914 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
915
916 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
917 77, 77, 77, 77, 77, 77, 77, 77
918 },
919
920 {
921 11, -78, 78, 79, -78, -78, -78, -78, -78, -78,
922 -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
923 -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
924 -78, -78, -78, -78, -78, -78, -78, -78
925 },
926
927 {
928 11, 80, -79, -79, 80, 80, 80, 80, 80, 80,
929 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
930 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
931 80, 80, 80, 80, 80, 80, 80, 80
932
933 },
934
935 {
936 11, -80, -80, -80, -80, -80, -80, -80, -80, -80,
937 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
938 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
939 -80, -80, -80, -80, -80, -80, -80, -80
940 },
941
942 {
943 11, 81, 81, 82, 81, -81, 81, 81, -81, 81,
944 81, 81, 81, 81, 81, -81, 81, 81, 81, 81,
945 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
946 81, 81, 81, 81, 81, 81, 81, 81
947 },
948
949 {
950 11, -82, -82, -82, -82, -82, -82, -82, -82, -82,
951 -82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
952
953 -82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
954 -82, -82, -82, -82, -82, -82, -82, -82
955 },
956
957 {
958 11, -83, -83, 84, -83, -83, -83, -83, -83, -83,
959 -83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
960 -83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
961 -83, -83, -83, -83, -83, -83, -83, -83
962 },
963
964 {
965 11, -84, -84, -84, -84, -84, -84, -84, -84, -84,
966 -84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
967 -84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
968 -84, -84, -84, -84, -84, -84, -84, -84
969
970 },
971
972 {
973 11, -85, -85, -85, -85, -85, -85, -85, -85, -85,
974 -85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
975 -85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
976 -85, -85, -85, -85, -85, -85, -85, -85
977 },
978
979 {
980 11, 86, 86, -86, 86, 86, 86, 86, 86, 86,
981 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
982 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
983 86, 86, 86, 86, 86, 86, 86, 86
984 },
985
986 {
987 11, -87, -87, -87, -87, -87, -87, -87, -87, -87,
988 -87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
989
990 -87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
991 -87, -87, -87, -87, -87, -87, -87, -87
992 },
993
994 {
995 11, -88, -88, -88, -88, -88, -88, -88, -88, -88,
996 -88, 115, 89, 89, -88, -88, 89, 89, 89, 89,
997 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
998 89, 89, 89, 89, 89, 89, 89, -88
999 },
1000
1001 {
1002 11, -89, -89, -89, -89, -89, -89, -89, -89, -89,
1003 -89, 89, 89, 89, -89, -89, 89, 89, 89, 89,
1004 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
1005 89, 89, 89, 89, 89, 89, 89, -89
1006
1007 },
1008
1009 {
1010 11, -90, -90, -90, -90, -90, -90, -90, -90, -90,
1011 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
1012 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
1013 -90, -90, -90, -90, -90, -90, -90, -90
1014 },
1015
1016 {
1017 11, -91, -91, -91, -91, -91, -91, -91, -91, -91,
1018 -91, 89, 89, 89, -91, -91, 89, 89, 89, 89,
1019 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
1020 89, 89, 89, 89, 89, 89, 89, -91
1021 },
1022
1023 {
1024 11, -92, -92, -92, -92, -92, -92, -92, -92, -92,
1025 -92, 89, 89, 89, -92, -92, 89, 89, 89, 89,
1026
1027 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
1028 89, 89, 89, 89, 89, 89, 89, -92
1029 },
1030
1031 {
1032 11, -93, -93, -93, -93, -93, -93, -93, -93, -93,
1033 -93, -93, -93, -93, -93, -93, -93, -93, -93, -93,
1034 -93, -93, -93, -93, -93, -93, -93, -93, -93, -93,
1035 -93, -93, -93, -93, -93, -93, -93, -93
1036 },
1037
1038 {
1039 11, -94, -94, -94, -94, -94, -94, -94, -94, -94,
1040 -94, -94, -94, 58, -94, -94, 58, 58, 58, 58,
1041 58, 58, 58, 58, 58, 58, 116, 58, 58, 58,
1042 58, 58, 58, 58, 58, 58, 58, -94
1043
1044 },
1045
1046 {
1047 11, -95, -95, -95, -95, -95, -95, -95, -95, -95,
1048 -95, -95, -95, 58, -95, -95, 58, 58, 58, 58,
1049 58, 58, 58, 58, 58, 117, 58, 58, 58, 58,
1050 58, 58, 58, 58, 58, 58, 58, -95
1051 },
1052
1053 {
1054 11, -96, -96, -96, -96, -96, -96, -96, -96, -96,
1055 -96, -96, -96, 58, -96, -96, 58, 58, 58, 58,
1056 58, 58, 58, 58, 58, 58, 58, 118, 58, 58,
1057 58, 58, 58, 58, 58, 58, 58, -96
1058 },
1059
1060 {
1061 11, -97, -97, -97, -97, -97, -97, -97, -97, -97,
1062 -97, -97, -97, 58, -97, -97, 58, 58, 58, 58,
1063
1064 58, 58, 119, 58, 58, 58, 58, 58, 58, 58,
1065 58, 58, 58, 58, 58, 58, 58, -97
1066 },
1067
1068 {
1069 11, -98, -98, -98, -98, -98, -98, -98, -98, -98,
1070 -98, -98, -98, 58, -98, -98, 120, 121, 58, 58,
1071 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1072 58, 58, 58, 58, 58, 58, 58, -98
1073 },
1074
1075 {
1076 11, -99, -99, -99, -99, -99, -99, -99, -99, -99,
1077 -99, -99, -99, 58, -99, -99, 58, 58, 58, 58,
1078 58, 122, 58, 58, 58, 58, 58, 58, 58, 58,
1079 58, 58, 58, 58, 58, 58, 58, -99
1080
1081 },
1082
1083 {
1084 11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
1085 -100, -100, -100, 58, -100, -100, 58, 58, 123, 58,
1086 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1087 58, 58, 58, 58, 58, 58, 58, -100
1088 },
1089
1090 {
1091 11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
1092 -101, -101, -101, 58, -101, -101, 58, 58, 58, 124,
1093 58, 58, 58, 58, 58, 125, 58, 126, 58, 58,
1094 58, 58, 58, 58, 58, 58, 58, -101
1095 },
1096
1097 {
1098 11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
1099 -102, -102, -102, 58, -102, -102, 58, 58, 58, 58,
1100
1101 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1102 127, 58, 58, 58, 58, 58, 58, -102
1103 },
1104
1105 {
1106 11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
1107 -103, -103, -103, 58, -103, -103, 58, 58, 58, 58,
1108 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1109 58, 58, 58, 58, 58, 58, 58, -103
1110 },
1111
1112 {
1113 11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
1114 -104, -104, -104, 58, -104, -104, 58, 58, 58, 58,
1115 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1116 58, 58, 58, 58, 58, 58, 58, -104
1117
1118 },
1119
1120 {
1121 11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
1122 -105, -105, -105, 58, -105, -105, 58, 58, 58, 58,
1123 58, 58, 58, 58, 58, 58, 58, 58, 128, 58,
1124 58, 58, 58, 58, 58, 58, 58, -105
1125 },
1126
1127 {
1128 11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
1129 -106, -106, -106, 58, -106, -106, 58, 58, 58, 58,
1130 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1131 58, 58, 58, 58, 58, 129, 58, -106
1132 },
1133
1134 {
1135 11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
1136 -107, -107, -107, 58, -107, -107, 58, 58, 58, 58,
1137
1138 58, 58, 58, 58, 58, 130, 58, 58, 58, 58,
1139 58, 58, 58, 58, 58, 58, 58, -107
1140 },
1141
1142 {
1143 11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
1144 -108, -108, -108, 58, -108, -108, 58, 58, 58, 58,
1145 58, 58, 58, 58, 58, 58, 58, 131, 58, 58,
1146 58, 58, 58, 58, 58, 58, 58, -108
1147 },
1148
1149 {
1150 11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
1151 -109, -109, -109, 58, -109, -109, 58, 58, 58, 58,
1152 58, 58, 58, 132, 58, 58, 58, 58, 58, 58,
1153 58, 58, 58, 58, 58, 58, 58, -109
1154
1155 },
1156
1157 {
1158 11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
1159 -110, -110, -110, 58, -110, -110, 58, 58, 58, 58,
1160 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1161 58, 58, 58, 58, 58, 133, 58, -110
1162 },
1163
1164 {
1165 11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
1166 -111, -111, -111, 58, -111, -111, 58, 58, 58, 58,
1167 58, 134, 58, 58, 58, 58, 58, 58, 58, 58,
1168 58, 58, 58, 58, 58, 58, 58, -111
1169 },
1170
1171 {
1172 11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
1173 -112, -112, -112, 58, -112, -112, 58, 58, 58, 58,
1174
1175 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1176 58, 58, 135, 58, 58, 58, 58, -112
1177 },
1178
1179 {
1180 11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
1181 -113, -113, -113, 58, -113, -113, 58, 58, 58, 58,
1182 58, 58, 58, 58, 58, 136, 58, 58, 58, 58,
1183 58, 58, 58, 58, 58, 58, 58, -113
1184 },
1185
1186 {
1187 11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
1188 -114, -114, -114, 58, -114, -114, 58, 58, 58, 58,
1189 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1190 58, 58, 58, 137, 58, 58, 58, -114
1191
1192 },
1193
1194 {
1195 11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
1196 -115, 89, 89, 89, -115, -115, 89, 89, 89, 89,
1197 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
1198 89, 89, 89, 89, 89, 89, 89, -115
1199 },
1200
1201 {
1202 11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
1203 -116, -116, -116, 58, -116, -116, 58, 58, 58, 58,
1204 58, 138, 58, 58, 58, 58, 58, 58, 58, 58,
1205 58, 58, 58, 58, 58, 58, 58, -116
1206 },
1207
1208 {
1209 11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
1210 -117, -117, -117, 58, -117, -117, 58, 58, 58, 139,
1211
1212 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1213 58, 58, 58, 58, 58, 58, 58, -117
1214 },
1215
1216 {
1217 11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
1218 -118, -118, -118, 58, -118, -118, 58, 58, 58, 58,
1219 58, 140, 58, 58, 58, 58, 58, 58, 58, 58,
1220 58, 58, 58, 58, 58, 58, 58, -118
1221 },
1222
1223 {
1224 11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
1225 -119, -119, -119, 58, -119, -119, 58, 58, 58, 58,
1226 58, 58, 58, 58, 58, 141, 58, 58, 58, 58,
1227 58, 58, 58, 58, 58, 58, 58, -119
1228
1229 },
1230
1231 {
1232 11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
1233 -120, -120, -120, 58, -120, -120, 58, 58, 142, 58,
1234 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1235 58, 58, 58, 58, 143, 58, 58, -120
1236 },
1237
1238 {
1239 11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
1240 -121, -121, -121, 58, -121, -121, 58, 58, 58, 58,
1241 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1242 58, 58, 58, 58, 58, 144, 58, -121
1243 },
1244
1245 {
1246 11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
1247 -122, -122, -122, 58, -122, -122, 58, 58, 58, 58,
1248
1249 58, 58, 58, 58, 58, 58, 58, 58, 145, 58,
1250 58, 58, 58, 58, 58, 58, 58, -122
1251 },
1252
1253 {
1254 11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1255 -123, -123, -123, 58, -123, -123, 58, 58, 58, 58,
1256 58, 58, 58, 58, 58, 58, 146, 58, 58, 58,
1257 58, 58, 58, 58, 58, 58, 58, -123
1258 },
1259
1260 {
1261 11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1262 -124, -124, -124, 58, -124, -124, 58, 58, 58, 58,
1263 58, 58, 58, 58, 147, 58, 58, 58, 58, 58,
1264 58, 58, 58, 58, 58, 58, 58, -124
1265
1266 },
1267
1268 {
1269 11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
1270 -125, -125, -125, 58, -125, -125, 58, 58, 58, 58,
1271 58, 58, 148, 58, 58, 58, 58, 58, 58, 58,
1272 58, 58, 58, 58, 58, 58, 58, -125
1273 },
1274
1275 {
1276 11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
1277 -126, -126, -126, 58, -126, -126, 58, 58, 58, 58,
1278 58, 149, 58, 58, 58, 58, 58, 58, 58, 58,
1279 58, 58, 58, 58, 58, 58, 58, -126
1280 },
1281
1282 {
1283 11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
1284 -127, -127, -127, 58, -127, -127, 58, 58, 58, 58,
1285
1286 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1287 58, 58, 58, 58, 58, 58, 58, -127
1288 },
1289
1290 {
1291 11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
1292 -128, -128, -128, 58, -128, -128, 58, 58, 58, 58,
1293 58, 58, 58, 58, 58, 58, 58, 150, 58, 58,
1294 58, 58, 58, 58, 58, 58, 58, -128
1295 },
1296
1297 {
1298 11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
1299 -129, -129, -129, 58, -129, -129, 58, 58, 58, 151,
1300 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1301 58, 58, 58, 58, 58, 58, 58, -129
1302
1303 },
1304
1305 {
1306 11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
1307 -130, -130, -130, 58, -130, -130, 58, 58, 58, 58,
1308 58, 58, 58, 58, 58, 58, 58, 58, 58, 152,
1309 58, 58, 58, 58, 58, 58, 58, -130
1310 },
1311
1312 {
1313 11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
1314 -131, -131, -131, 58, -131, -131, 58, 58, 58, 58,
1315 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1316 153, 58, 58, 58, 58, 58, 58, -131
1317 },
1318
1319 {
1320 11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
1321 -132, -132, -132, 58, -132, -132, 58, 58, 58, 58,
1322
1323 58, 154, 58, 58, 58, 58, 58, 58, 58, 58,
1324 58, 58, 58, 58, 58, 58, 58, -132
1325 },
1326
1327 {
1328 11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
1329 -133, -133, -133, 58, -133, -133, 58, 58, 58, 58,
1330 58, 58, 58, 58, 58, 155, 58, 58, 58, 58,
1331 58, 58, 58, 58, 58, 58, 58, -133
1332 },
1333
1334 {
1335 11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
1336 -134, -134, -134, 58, -134, -134, 58, 58, 58, 156,
1337 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1338 58, 58, 58, 58, 58, 58, 58, -134
1339
1340 },
1341
1342 {
1343 11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
1344 -135, -135, -135, 58, -135, -135, 58, 58, 58, 157,
1345 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1346 58, 58, 58, 58, 58, 58, 58, -135
1347 },
1348
1349 {
1350 11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
1351 -136, -136, -136, 58, -136, -136, 58, 58, 58, 58,
1352 58, 58, 58, 58, 58, 58, 58, 58, 158, 58,
1353 58, 58, 58, 58, 58, 58, 58, -136
1354 },
1355
1356 {
1357 11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1358 -137, -137, -137, 58, -137, -137, 58, 58, 58, 58,
1359
1360 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1361 58, 58, 58, 58, 159, 58, 58, -137
1362 },
1363
1364 {
1365 11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1366 -138, -138, -138, 58, -138, -138, 58, 160, 58, 58,
1367 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1368 58, 58, 58, 58, 58, 58, 58, -138
1369 },
1370
1371 {
1372 11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1373 -139, -139, -139, 58, -139, -139, 58, 58, 58, 58,
1374 58, 161, 58, 58, 58, 58, 58, 58, 58, 58,
1375 58, 58, 58, 58, 58, 58, 58, -139
1376
1377 },
1378
1379 {
1380 11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1381 -140, -140, -140, 58, -140, -140, 58, 58, 58, 58,
1382 58, 58, 58, 58, 58, 58, 58, 58, 162, 58,
1383 58, 58, 58, 58, 58, 58, 58, -140
1384 },
1385
1386 {
1387 11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1388 -141, -141, -141, 58, -141, -141, 58, 58, 58, 58,
1389 58, 58, 58, 163, 58, 58, 58, 58, 58, 58,
1390 58, 58, 58, 58, 58, 58, 58, -141
1391 },
1392
1393 {
1394 11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1395 -142, -142, -142, 58, -142, -142, 58, 58, 58, 58,
1396
1397 58, 58, 58, 58, 58, 58, 58, 58, 58, 164,
1398 58, 58, 58, 58, 58, 58, 58, -142
1399 },
1400
1401 {
1402 11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1403 -143, -143, -143, 58, -143, -143, 58, 58, 58, 58,
1404 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1405 58, 58, 165, 58, 58, 58, 58, -143
1406 },
1407
1408 {
1409 11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1410 -144, -144, -144, 58, -144, -144, 58, 58, 58, 58,
1411 58, 58, 58, 58, 58, 58, 166, 58, 58, 58,
1412 58, 58, 58, 58, 58, 58, 58, -144
1413
1414 },
1415
1416 {
1417 11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1418 -145, -145, -145, 58, -145, -145, 58, 58, 58, 58,
1419 167, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1420 58, 58, 58, 58, 58, 58, 58, -145
1421 },
1422
1423 {
1424 11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1425 -146, -146, -146, 58, -146, -146, 58, 58, 58, 58,
1426 58, 168, 58, 58, 58, 58, 58, 58, 58, 58,
1427 58, 58, 58, 58, 58, 58, 58, -146
1428 },
1429
1430 {
1431 11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1432 -147, -147, -147, 58, -147, -147, 58, 58, 58, 58,
1433
1434 58, 58, 58, 58, 58, 58, 58, 58, 58, 169,
1435 58, 58, 58, 58, 58, 58, 58, -147
1436 },
1437
1438 {
1439 11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1440 -148, -148, -148, 58, -148, -148, 58, 58, 58, 58,
1441 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1442 58, 58, 58, 58, 58, 58, 58, -148
1443 },
1444
1445 {
1446 11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1447 -149, -149, -149, 58, -149, -149, 58, 58, 58, 58,
1448 58, 58, 58, 58, 58, 58, 58, 58, 170, 58,
1449 58, 58, 58, 58, 58, 58, 58, -149
1450
1451 },
1452
1453 {
1454 11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1455 -150, -150, -150, 58, -150, -150, 58, 58, 58, 58,
1456 58, 171, 58, 58, 58, 58, 58, 58, 58, 58,
1457 58, 58, 58, 58, 58, 58, 58, -150
1458 },
1459
1460 {
1461 11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1462 -151, -151, -151, 58, -151, -151, 58, 58, 58, 58,
1463 58, 58, 58, 58, 58, 58, 58, 58, 58, 172,
1464 58, 58, 58, 58, 58, 58, 58, -151
1465 },
1466
1467 {
1468 11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1469 -152, -152, -152, 58, -152, -152, 58, 58, 58, 58,
1470
1471 58, 58, 58, 58, 58, 58, 58, 58, 173, 58,
1472 58, 58, 58, 58, 58, 58, 58, -152
1473 },
1474
1475 {
1476 11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1477 -153, -153, -153, 58, -153, -153, 58, 58, 58, 58,
1478 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1479 58, 58, 58, 58, 174, 58, 58, -153
1480 },
1481
1482 {
1483 11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
1484 -154, -154, -154, 58, -154, -154, 58, 58, 58, 58,
1485 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1486 58, 58, 58, 58, 58, 58, 58, -154
1487
1488 },
1489
1490 {
1491 11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
1492 -155, -155, -155, 58, -155, -155, 58, 58, 58, 58,
1493 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1494 58, 58, 175, 58, 58, 58, 58, -155
1495 },
1496
1497 {
1498 11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
1499 -156, -156, -156, 58, -156, -156, 58, 58, 58, 58,
1500 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1501 58, 58, 58, 58, 176, 58, 58, -156
1502 },
1503
1504 {
1505 11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
1506 -157, -157, -157, 58, -157, -157, 58, 58, 58, 58,
1507
1508 58, 177, 58, 58, 58, 58, 58, 58, 58, 58,
1509 58, 58, 58, 58, 58, 58, 58, -157
1510 },
1511
1512 {
1513 11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
1514 -158, -158, -158, 58, -158, -158, 58, 58, 58, 58,
1515 58, 58, 58, 178, 58, 58, 58, 58, 58, 58,
1516 58, 58, 58, 58, 58, 58, 58, -158
1517 },
1518
1519 {
1520 11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
1521 -159, -159, -159, 58, -159, -159, 58, 179, 58, 58,
1522 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1523 58, 58, 58, 58, 58, 58, 58, -159
1524
1525 },
1526
1527 {
1528 11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
1529 -160, -160, -160, 58, -160, -160, 58, 58, 58, 58,
1530 58, 58, 58, 58, 58, 58, 58, 58, 180, 58,
1531 58, 58, 58, 58, 58, 58, 58, -160
1532 },
1533
1534 {
1535 11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
1536 -161, -161, -161, 58, -161, -161, 58, 58, 58, 58,
1537 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1538 58, 58, 58, 58, 58, 58, 58, -161
1539 },
1540
1541 {
1542 11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
1543 -162, -162, -162, 58, -162, -162, 58, 58, 58, 58,
1544
1545 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1546 58, 58, 58, 58, 181, 58, 58, -162
1547 },
1548
1549 {
1550 11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
1551 -163, -163, -163, 58, -163, -163, 58, 58, 58, 58,
1552 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1553 58, 58, 58, 58, 58, 58, 58, -163
1554 },
1555
1556 {
1557 11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
1558 -164, -164, -164, 58, -164, -164, 58, 58, 58, 58,
1559 58, 58, 58, 58, 58, 58, 58, 58, 58, 182,
1560 58, 58, 58, 58, 58, 58, 58, -164
1561
1562 },
1563
1564 {
1565 11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
1566 -165, -165, -165, 58, -165, -165, 58, 58, 58, 58,
1567 58, 58, 58, 58, 58, 183, 58, 58, 58, 58,
1568 58, 58, 58, 58, 58, 58, 58, -165
1569 },
1570
1571 {
1572 11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
1573 -166, -166, -166, 58, -166, -166, 58, 58, 58, 58,
1574 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1575 58, 58, 58, 58, 184, 58, 58, -166
1576 },
1577
1578 {
1579 11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
1580 -167, -167, -167, 58, -167, -167, 58, 58, 58, 58,
1581
1582 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1583 58, 58, 58, 185, 58, 58, 58, -167
1584 },
1585
1586 {
1587 11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1588 -168, -168, -168, 58, -168, -168, 58, 58, 58, 58,
1589 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1590 58, 58, 58, 58, 58, 58, 58, -168
1591 },
1592
1593 {
1594 11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1595 -169, -169, -169, 58, -169, -169, 58, 58, 58, 58,
1596 58, 58, 58, 58, 58, 186, 58, 58, 58, 58,
1597 58, 58, 58, 58, 58, 58, 58, -169
1598
1599 },
1600
1601 {
1602 11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
1603 -170, -170, -170, 58, -170, -170, 58, 58, 58, 58,
1604 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1605 58, 58, 58, 58, 58, 187, 58, -170
1606 },
1607
1608 {
1609 11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
1610 -171, -171, -171, 58, -171, -171, 58, 58, 58, 58,
1611 58, 58, 58, 58, 58, 58, 58, 58, 188, 58,
1612 58, 58, 58, 58, 58, 58, 58, -171
1613 },
1614
1615 {
1616 11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
1617 -172, -172, -172, 58, -172, -172, 58, 58, 58, 58,
1618
1619 58, 58, 58, 58, 58, 58, 58, 58, 189, 58,
1620 58, 58, 58, 58, 58, 58, 58, -172
1621 },
1622
1623 {
1624 11, -173, -173, -173, -173, -173, -173, -173, -173, -173,
1625 -173, -173, -173, 58, -173, -173, 58, 190, 58, 58,
1626 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1627 58, 58, 58, 58, 58, 58, 58, -173
1628 },
1629
1630 {
1631 11, -174, -174, -174, -174, -174, -174, -174, -174, -174,
1632 -174, -174, -174, 58, -174, -174, 58, 58, 58, 58,
1633 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1634 58, 58, 58, 58, 58, 58, 58, -174
1635
1636 },
1637
1638 {
1639 11, -175, -175, -175, -175, -175, -175, -175, -175, -175,
1640 -175, -175, -175, 58, -175, -175, 58, 58, 58, 58,
1641 58, 191, 58, 58, 58, 58, 58, 58, 58, 58,
1642 58, 58, 58, 58, 58, 58, 58, -175
1643 },
1644
1645 {
1646 11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
1647 -176, -176, -176, 58, -176, -176, 58, 58, 58, 58,
1648 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1649 58, 58, 58, 58, 58, 58, 58, -176
1650 },
1651
1652 {
1653 11, -177, -177, -177, -177, -177, -177, -177, -177, -177,
1654 -177, -177, -177, 58, -177, -177, 58, 58, 58, 58,
1655
1656 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1657 58, 58, 58, 58, 58, 58, 58, -177
1658 },
1659
1660 {
1661 11, -178, -178, -178, -178, -178, -178, -178, -178, -178,
1662 -178, -178, -178, 58, -178, -178, 58, 58, 58, 58,
1663 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1664 58, 58, 58, 58, 58, 58, 58, -178
1665 },
1666
1667 {
1668 11, -179, -179, -179, -179, -179, -179, -179, -179, -179,
1669 -179, -179, -179, 58, -179, -179, 58, 58, 58, 58,
1670 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1671 58, 58, 58, 58, 192, 58, 58, -179
1672
1673 },
1674
1675 {
1676 11, -180, -180, -180, -180, -180, -180, -180, -180, -180,
1677 -180, -180, -180, 58, -180, -180, 58, 58, 58, 58,
1678 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1679 58, 58, 58, 58, 58, 58, 58, -180
1680 },
1681
1682 {
1683 11, -181, -181, -181, -181, -181, -181, -181, -181, -181,
1684 -181, -181, -181, 58, -181, -181, 58, 58, 58, 58,
1685 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1686 58, 58, 58, 58, 58, 58, 58, -181
1687 },
1688
1689 {
1690 11, -182, -182, -182, -182, -182, -182, -182, -182, -182,
1691 -182, -182, -182, 58, -182, -182, 58, 58, 58, 58,
1692
1693 58, 58, 58, 58, 58, 58, 193, 58, 58, 58,
1694 58, 58, 58, 58, 58, 58, 58, -182
1695 },
1696
1697 {
1698 11, -183, -183, -183, -183, -183, -183, -183, -183, -183,
1699 -183, -183, -183, 58, -183, -183, 58, 58, 58, 58,
1700 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1701 58, 58, 58, 194, 58, 58, 58, -183
1702 },
1703
1704 {
1705 11, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1706 -184, -184, -184, 58, -184, -184, 58, 58, 58, 58,
1707 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1708 58, 58, 58, 58, 58, 58, 58, -184
1709
1710 },
1711
1712 {
1713 11, -185, -185, -185, -185, -185, -185, -185, -185, -185,
1714 -185, -185, -185, 58, -185, -185, 58, 58, 58, 58,
1715 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1716 58, 58, 58, 58, 58, 58, 58, -185
1717 },
1718
1719 {
1720 11, -186, -186, -186, -186, -186, -186, -186, -186, -186,
1721 -186, -186, -186, 58, -186, -186, 58, 58, 58, 195,
1722 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1723 58, 58, 58, 58, 58, 58, 58, -186
1724 },
1725
1726 {
1727 11, -187, -187, -187, -187, -187, -187, -187, -187, -187,
1728 -187, -187, -187, 58, -187, -187, 58, 58, 58, 58,
1729
1730 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1731 58, 58, 58, 58, 58, 58, 58, -187
1732 },
1733
1734 {
1735 11, -188, -188, -188, -188, -188, -188, -188, -188, -188,
1736 -188, -188, -188, 58, -188, -188, 58, 58, 58, 58,
1737 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1738 58, 58, 58, 58, 58, 196, 58, -188
1739 },
1740
1741 {
1742 11, -189, -189, -189, -189, -189, -189, -189, -189, -189,
1743 -189, -189, -189, 58, -189, -189, 58, 58, 58, 58,
1744 58, 58, 197, 58, 58, 58, 58, 58, 58, 58,
1745 58, 58, 58, 58, 58, 58, 58, -189
1746
1747 },
1748
1749 {
1750 11, -190, -190, -190, -190, -190, -190, -190, -190, -190,
1751 -190, -190, -190, 58, -190, -190, 58, 58, 58, 58,
1752 58, 58, 58, 58, 58, 58, 198, 58, 58, 58,
1753 58, 58, 58, 58, 58, 58, 58, -190
1754 },
1755
1756 {
1757 11, -191, -191, -191, -191, -191, -191, -191, -191, -191,
1758 -191, -191, -191, 58, -191, -191, 58, 58, 58, 58,
1759 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1760 58, 58, 58, 199, 58, 58, 58, -191
1761 },
1762
1763 {
1764 11, -192, -192, -192, -192, -192, -192, -192, -192, -192,
1765 -192, -192, -192, 58, -192, -192, 58, 58, 58, 58,
1766
1767 58, 200, 58, 58, 58, 58, 58, 58, 58, 58,
1768 58, 58, 58, 58, 58, 58, 58, -192
1769 },
1770
1771 {
1772 11, -193, -193, -193, -193, -193, -193, -193, -193, -193,
1773 -193, -193, -193, 58, -193, -193, 58, 58, 58, 58,
1774 58, 201, 58, 58, 58, 58, 58, 58, 58, 58,
1775 58, 58, 58, 58, 58, 58, 58, -193
1776 },
1777
1778 {
1779 11, -194, -194, -194, -194, -194, -194, -194, -194, -194,
1780 -194, -194, -194, 58, -194, -194, 58, 58, 58, 58,
1781 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1782 58, 58, 58, 58, 202, 58, 58, -194
1783
1784 },
1785
1786 {
1787 11, -195, -195, -195, -195, -195, -195, -195, -195, -195,
1788 -195, -195, -195, 58, -195, -195, 58, 58, 58, 58,
1789 58, 203, 58, 58, 58, 58, 58, 58, 58, 58,
1790 58, 58, 58, 58, 58, 58, 58, -195
1791 },
1792
1793 {
1794 11, -196, -196, -196, -196, -196, -196, -196, -196, -196,
1795 -196, -196, -196, 58, -196, -196, 58, 58, 58, 58,
1796 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1797 58, 58, 58, 58, 58, 58, 58, -196
1798 },
1799
1800 {
1801 11, -197, -197, -197, -197, -197, -197, -197, -197, -197,
1802 -197, -197, -197, 58, -197, -197, 58, 58, 58, 58,
1803
1804 58, 58, 58, 58, 58, 204, 58, 58, 58, 58,
1805 58, 58, 58, 58, 58, 58, 58, -197
1806 },
1807
1808 {
1809 11, -198, -198, -198, -198, -198, -198, -198, -198, -198,
1810 -198, -198, -198, 58, -198, -198, 58, 58, 58, 58,
1811 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1812 58, 58, 58, 58, 58, 58, 58, -198
1813 },
1814
1815 {
1816 11, -199, -199, -199, -199, -199, -199, -199, -199, -199,
1817 -199, -199, -199, 58, -199, -199, 58, 58, 58, 58,
1818 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1819 58, 58, 58, 58, 58, 58, 58, -199
1820
1821 },
1822
1823 {
1824 11, -200, -200, -200, -200, -200, -200, -200, -200, -200,
1825 -200, -200, -200, 58, -200, -200, 58, 58, 58, 58,
1826 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1827 58, 58, 58, 58, 58, 58, 58, -200
1828 },
1829
1830 {
1831 11, -201, -201, -201, -201, -201, -201, -201, -201, -201,
1832 -201, -201, -201, 58, -201, -201, 58, 205, 58, 58,
1833 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1834 58, 58, 58, 58, 58, 58, 58, -201
1835 },
1836
1837 {
1838 11, -202, -202, -202, -202, -202, -202, -202, -202, -202,
1839 -202, -202, -202, 58, -202, -202, 58, 206, 58, 58,
1840
1841 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1842 58, 58, 58, 58, 58, 58, 58, -202
1843 },
1844
1845 {
1846 11, -203, -203, -203, -203, -203, -203, -203, -203, -203,
1847 -203, -203, -203, 58, -203, -203, 58, 58, 58, 58,
1848 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1849 58, 58, 58, 58, 58, 58, 58, -203
1850 },
1851
1852 {
1853 11, -204, -204, -204, -204, -204, -204, -204, -204, -204,
1854 -204, -204, -204, 58, -204, -204, 58, 58, 58, 58,
1855 58, 58, 58, 207, 58, 58, 58, 58, 58, 58,
1856 58, 58, 58, 58, 58, 58, 58, -204
1857
1858 },
1859
1860 {
1861 11, -205, -205, -205, -205, -205, -205, -205, -205, -205,
1862 -205, -205, -205, 58, -205, -205, 58, 58, 58, 58,
1863 58, 58, 58, 58, 58, 58, 58, 58, 208, 58,
1864 58, 58, 58, 58, 58, 58, 58, -205
1865 },
1866
1867 {
1868 11, -206, -206, -206, -206, -206, -206, -206, -206, -206,
1869 -206, -206, -206, 58, -206, -206, 58, 58, 58, 58,
1870 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1871 58, 58, 58, 58, 209, 58, 58, -206
1872 },
1873
1874 {
1875 11, -207, -207, -207, -207, -207, -207, -207, -207, -207,
1876 -207, -207, -207, 58, -207, -207, 58, 58, 58, 58,
1877
1878 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1879 58, 58, 58, 58, 58, 58, 58, -207
1880 },
1881
1882 {
1883 11, -208, -208, -208, -208, -208, -208, -208, -208, -208,
1884 -208, -208, -208, 58, -208, -208, 58, 58, 58, 58,
1885 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1886 58, 58, 58, 58, 58, 58, 58, -208
1887 },
1888
1889 {
1890 11, -209, -209, -209, -209, -209, -209, -209, -209, -209,
1891 -209, -209, -209, 58, -209, -209, 58, 58, 58, 58,
1892 58, 210, 58, 58, 58, 58, 58, 58, 58, 58,
1893 58, 58, 58, 58, 58, 58, 58, -209
1894
1895 },
1896
1897 {
1898 11, -210, -210, -210, -210, -210, -210, -210, -210, -210,
1899 -210, -210, -210, 58, -210, -210, 58, 58, 58, 58,
1900 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1901 58, 58, 58, 58, 58, 58, 58, -210
1902 }, 658 },
1903 659
1904 } ; 660 } ;
@@ -1918,8 +674,8 @@ static void yy_fatal_error (yyconst char msg[] );
1918 *yy_cp = '\0'; \ 674 *yy_cp = '\0'; \
1919 (yy_c_buf_p) = yy_cp; 675 (yy_c_buf_p) = yy_cp;
1920 676
1921#define YY_NUM_RULES 64 677#define YY_NUM_RULES 33
1922#define YY_END_OF_BUFFER 65 678#define YY_END_OF_BUFFER 34
1923/* This struct is not used in this scanner, 679/* This struct is not used in this scanner,
1924 but its presence is necessary. */ 680 but its presence is necessary. */
1925struct yy_trans_info 681struct yy_trans_info
@@ -1927,31 +683,14 @@ struct yy_trans_info
1927 flex_int32_t yy_verify; 683 flex_int32_t yy_verify;
1928 flex_int32_t yy_nxt; 684 flex_int32_t yy_nxt;
1929 }; 685 };
1930static yyconst flex_int16_t yy_accept[211] = 686static yyconst flex_int16_t yy_accept[61] =
1931 { 0, 687 { 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 65, 5, 4, 3, 2, 36, 37, 35, 35, 35, 689 34, 5, 4, 3, 2, 7, 8, 6, 32, 29,
1934 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 690 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
1935 63, 60, 62, 55, 59, 58, 57, 53, 48, 42, 691 22, 11, 12, 19, 19, 14, 22, 22, 4, 3,
1936 47, 51, 53, 40, 41, 50, 50, 43, 53, 50, 692 2, 2, 1, 6, 32, 29, 31, 30, 24, 23,
1937 50, 53, 4, 3, 2, 2, 1, 35, 35, 35, 693 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
1938 35, 35, 35, 35, 16, 35, 35, 35, 35, 35,
1939 35, 35, 35, 35, 35, 35, 63, 60, 62, 61,
1940 55, 54, 57, 56, 44, 51, 38, 50, 50, 52,
1941 45, 46, 39, 35, 35, 35, 35, 35, 35, 35,
1942
1943 35, 35, 30, 29, 35, 35, 35, 35, 35, 35,
1944 35, 35, 35, 35, 49, 25, 35, 35, 35, 35,
1945 35, 35, 35, 35, 35, 35, 15, 35, 7, 35,
1946 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
1947 35, 35, 35, 35, 35, 35, 35, 17, 35, 35,
1948 35, 35, 35, 34, 35, 35, 35, 35, 35, 35,
1949 10, 35, 13, 35, 35, 35, 35, 33, 35, 35,
1950 35, 35, 35, 22, 35, 32, 9, 31, 35, 26,
1951 12, 35, 35, 21, 18, 35, 8, 35, 35, 35,
1952 35, 35, 27, 35, 35, 6, 35, 20, 19, 23,
1953
1954 35, 35, 11, 35, 35, 35, 14, 28, 35, 24
1955 } ; 694 } ;
1956 695
1957static yyconst flex_int32_t yy_ec[256] = 696static yyconst flex_int32_t yy_ec[256] =
@@ -1965,11 +704,11 @@ static yyconst flex_int32_t yy_ec[256] =
1965 14, 1, 1, 1, 13, 13, 13, 13, 13, 13, 704 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
1966 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 705 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1967 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 706 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1968 1, 15, 1, 1, 16, 1, 17, 18, 19, 20, 707 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
1969 708
1970 21, 22, 23, 24, 25, 13, 13, 26, 27, 28, 709 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1971 29, 30, 31, 32, 33, 34, 35, 13, 13, 36, 710 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1972 13, 13, 1, 37, 1, 1, 1, 1, 1, 1, 711 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
1973 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1974 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 713 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1975 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 714 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2014,8 +753,7 @@ char *zconftext;
2014 753
2015#define START_STRSIZE 16 754#define START_STRSIZE 16
2016 755
2017char *text; 756static char *text;
2018static char *text_ptr;
2019static int text_size, text_asize; 757static int text_size, text_asize;
2020 758
2021struct buffer { 759struct buffer {
@@ -2034,23 +772,22 @@ void new_string(void)
2034{ 772{
2035 text = malloc(START_STRSIZE); 773 text = malloc(START_STRSIZE);
2036 text_asize = START_STRSIZE; 774 text_asize = START_STRSIZE;
2037 text_ptr = text;
2038 text_size = 0; 775 text_size = 0;
2039 *text_ptr = 0; 776 *text = 0;
2040} 777}
2041 778
2042void append_string(const char *str, int size) 779void append_string(const char *str, int size)
2043{ 780{
2044 int new_size = text_size + size + 1; 781 int new_size = text_size + size + 1;
2045 if (new_size > text_asize) { 782 if (new_size > text_asize) {
783 new_size += START_STRSIZE - 1;
784 new_size &= -START_STRSIZE;
2046 text = realloc(text, new_size); 785 text = realloc(text, new_size);
2047 text_asize = new_size; 786 text_asize = new_size;
2048 text_ptr = text + text_size;
2049 } 787 }
2050 memcpy(text_ptr, str, size); 788 memcpy(text + text_size, str, size);
2051 text_ptr += size;
2052 text_size += size; 789 text_size += size;
2053 *text_ptr = 0; 790 text[text_size] = 0;
2054} 791}
2055 792
2056void alloc_string(const char *str, int size) 793void alloc_string(const char *str, int size)
@@ -2066,11 +803,13 @@ void alloc_string(const char *str, int size)
2066#define STRING 3 803#define STRING 3
2067#define PARAM 4 804#define PARAM 4
2068 805
806#ifndef YY_NO_UNISTD_H
2069/* Special case for "unistd.h", since it is non-ANSI. We include it way 807/* Special case for "unistd.h", since it is non-ANSI. We include it way
2070 * down here because we want the user's section 1 to have been scanned first. 808 * down here because we want the user's section 1 to have been scanned first.
2071 * The user has a chance to override it with an option. 809 * The user has a chance to override it with an option.
2072 */ 810 */
2073#include <unistd.h> 811#include <unistd.h>
812#endif
2074 813
2075#ifndef YY_EXTRA_TYPE 814#ifndef YY_EXTRA_TYPE
2076#define YY_EXTRA_TYPE void * 815#define YY_EXTRA_TYPE void *
@@ -2282,175 +1021,56 @@ YY_RULE_SETUP
2282 1021
2283case 6: 1022case 6:
2284YY_RULE_SETUP 1023YY_RULE_SETUP
2285BEGIN(PARAM); return T_MAINMENU;
2286 YY_BREAK
2287case 7:
2288YY_RULE_SETUP
2289BEGIN(PARAM); return T_MENU;
2290 YY_BREAK
2291case 8:
2292YY_RULE_SETUP
2293BEGIN(PARAM); return T_ENDMENU;
2294 YY_BREAK
2295case 9:
2296YY_RULE_SETUP
2297BEGIN(PARAM); return T_SOURCE;
2298 YY_BREAK
2299case 10:
2300YY_RULE_SETUP
2301BEGIN(PARAM); return T_CHOICE;
2302 YY_BREAK
2303case 11:
2304YY_RULE_SETUP
2305BEGIN(PARAM); return T_ENDCHOICE;
2306 YY_BREAK
2307case 12:
2308YY_RULE_SETUP
2309BEGIN(PARAM); return T_COMMENT;
2310 YY_BREAK
2311case 13:
2312YY_RULE_SETUP
2313BEGIN(PARAM); return T_CONFIG;
2314 YY_BREAK
2315case 14:
2316YY_RULE_SETUP
2317BEGIN(PARAM); return T_MENUCONFIG;
2318 YY_BREAK
2319case 15:
2320YY_RULE_SETUP
2321BEGIN(PARAM); return T_HELP;
2322 YY_BREAK
2323case 16:
2324YY_RULE_SETUP
2325BEGIN(PARAM); return T_IF;
2326 YY_BREAK
2327case 17:
2328YY_RULE_SETUP
2329BEGIN(PARAM); return T_ENDIF;
2330 YY_BREAK
2331case 18:
2332YY_RULE_SETUP
2333BEGIN(PARAM); return T_DEPENDS;
2334 YY_BREAK
2335case 19:
2336YY_RULE_SETUP
2337BEGIN(PARAM); return T_REQUIRES;
2338 YY_BREAK
2339case 20:
2340YY_RULE_SETUP
2341BEGIN(PARAM); return T_OPTIONAL;
2342 YY_BREAK
2343case 21:
2344YY_RULE_SETUP
2345BEGIN(PARAM); return T_DEFAULT;
2346 YY_BREAK
2347case 22:
2348YY_RULE_SETUP
2349BEGIN(PARAM); return T_PROMPT;
2350 YY_BREAK
2351case 23:
2352YY_RULE_SETUP
2353BEGIN(PARAM); return T_TRISTATE;
2354 YY_BREAK
2355case 24:
2356YY_RULE_SETUP
2357BEGIN(PARAM); return T_DEF_TRISTATE;
2358 YY_BREAK
2359case 25:
2360YY_RULE_SETUP
2361BEGIN(PARAM); return T_BOOLEAN;
2362 YY_BREAK
2363case 26:
2364YY_RULE_SETUP
2365BEGIN(PARAM); return T_BOOLEAN;
2366 YY_BREAK
2367case 27:
2368YY_RULE_SETUP
2369BEGIN(PARAM); return T_DEF_BOOLEAN;
2370 YY_BREAK
2371case 28:
2372YY_RULE_SETUP
2373BEGIN(PARAM); return T_DEF_BOOLEAN;
2374 YY_BREAK
2375case 29:
2376YY_RULE_SETUP
2377BEGIN(PARAM); return T_INT;
2378 YY_BREAK
2379case 30:
2380YY_RULE_SETUP
2381BEGIN(PARAM); return T_HEX;
2382 YY_BREAK
2383case 31:
2384YY_RULE_SETUP
2385BEGIN(PARAM); return T_STRING;
2386 YY_BREAK
2387case 32:
2388YY_RULE_SETUP
2389BEGIN(PARAM); return T_SELECT;
2390 YY_BREAK
2391case 33:
2392YY_RULE_SETUP
2393BEGIN(PARAM); return T_SELECT;
2394 YY_BREAK
2395case 34:
2396YY_RULE_SETUP
2397BEGIN(PARAM); return T_RANGE;
2398 YY_BREAK
2399case 35:
2400YY_RULE_SETUP
2401{ 1024{
1025 struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
1026 if (id && id->flags & TF_COMMAND) {
1027 BEGIN(PARAM);
1028 return id->token;
1029 }
2402 alloc_string(zconftext, zconfleng); 1030 alloc_string(zconftext, zconfleng);
2403 zconflval.string = text; 1031 zconflval.string = text;
2404 return T_WORD; 1032 return T_WORD;
2405 } 1033 }
2406 YY_BREAK 1034 YY_BREAK
2407case 36: 1035case 7:
2408YY_RULE_SETUP 1036YY_RULE_SETUP
2409 1037
2410 YY_BREAK 1038 YY_BREAK
2411case 37: 1039case 8:
2412/* rule 37 can match eol */ 1040/* rule 8 can match eol */
2413YY_RULE_SETUP 1041YY_RULE_SETUP
2414current_file->lineno++; BEGIN(INITIAL); 1042current_file->lineno++; BEGIN(INITIAL);
2415 YY_BREAK 1043 YY_BREAK
2416 1044
2417case 38: 1045case 9:
2418YY_RULE_SETUP 1046YY_RULE_SETUP
2419return T_AND; 1047return T_AND;
2420 YY_BREAK 1048 YY_BREAK
2421case 39: 1049case 10:
2422YY_RULE_SETUP 1050YY_RULE_SETUP
2423return T_OR; 1051return T_OR;
2424 YY_BREAK 1052 YY_BREAK
2425case 40: 1053case 11:
2426YY_RULE_SETUP 1054YY_RULE_SETUP
2427return T_OPEN_PAREN; 1055return T_OPEN_PAREN;
2428 YY_BREAK 1056 YY_BREAK
2429case 41: 1057case 12:
2430YY_RULE_SETUP 1058YY_RULE_SETUP
2431return T_CLOSE_PAREN; 1059return T_CLOSE_PAREN;
2432 YY_BREAK 1060 YY_BREAK
2433case 42: 1061case 13:
2434YY_RULE_SETUP 1062YY_RULE_SETUP
2435return T_NOT; 1063return T_NOT;
2436 YY_BREAK 1064 YY_BREAK
2437case 43: 1065case 14:
2438YY_RULE_SETUP 1066YY_RULE_SETUP
2439return T_EQUAL; 1067return T_EQUAL;
2440 YY_BREAK 1068 YY_BREAK
2441case 44: 1069case 15:
2442YY_RULE_SETUP 1070YY_RULE_SETUP
2443return T_UNEQUAL; 1071return T_UNEQUAL;
2444 YY_BREAK 1072 YY_BREAK
2445case 45: 1073case 16:
2446YY_RULE_SETUP
2447return T_IF;
2448 YY_BREAK
2449case 46:
2450YY_RULE_SETUP
2451return T_ON;
2452 YY_BREAK
2453case 47:
2454YY_RULE_SETUP 1074YY_RULE_SETUP
2455{ 1075{
2456 str = zconftext[0]; 1076 str = zconftext[0];
@@ -2458,33 +1078,36 @@ YY_RULE_SETUP
2458 BEGIN(STRING); 1078 BEGIN(STRING);
2459 } 1079 }
2460 YY_BREAK 1080 YY_BREAK
2461case 48: 1081case 17:
2462/* rule 48 can match eol */ 1082/* rule 17 can match eol */
2463YY_RULE_SETUP 1083YY_RULE_SETUP
2464BEGIN(INITIAL); current_file->lineno++; return T_EOL; 1084BEGIN(INITIAL); current_file->lineno++; return T_EOL;
2465 YY_BREAK 1085 YY_BREAK
2466case 49: 1086case 18:
2467YY_RULE_SETUP 1087YY_RULE_SETUP
2468/* ignore */ 1088/* ignore */
2469 YY_BREAK 1089 YY_BREAK
2470case 50: 1090case 19:
2471YY_RULE_SETUP 1091YY_RULE_SETUP
2472{ 1092{
1093 struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
1094 if (id && id->flags & TF_PARAM)
1095 return id->token;
2473 alloc_string(zconftext, zconfleng); 1096 alloc_string(zconftext, zconfleng);
2474 zconflval.string = text; 1097 zconflval.string = text;
2475 return T_WORD; 1098 return T_WORD;
2476 } 1099 }
2477 YY_BREAK 1100 YY_BREAK
2478case 51: 1101case 20:
2479YY_RULE_SETUP 1102YY_RULE_SETUP
2480/* comment */ 1103/* comment */
2481 YY_BREAK 1104 YY_BREAK
2482case 52: 1105case 21:
2483/* rule 52 can match eol */ 1106/* rule 21 can match eol */
2484YY_RULE_SETUP 1107YY_RULE_SETUP
2485current_file->lineno++; 1108current_file->lineno++;
2486 YY_BREAK 1109 YY_BREAK
2487case 53: 1110case 22:
2488YY_RULE_SETUP 1111YY_RULE_SETUP
2489 1112
2490 YY_BREAK 1113 YY_BREAK
@@ -2494,8 +1117,8 @@ case YY_STATE_EOF(PARAM):
2494 } 1117 }
2495 YY_BREAK 1118 YY_BREAK
2496 1119
2497case 54: 1120case 23:
2498/* rule 54 can match eol */ 1121/* rule 23 can match eol */
2499*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 1122*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
2500(yy_c_buf_p) = yy_cp -= 1; 1123(yy_c_buf_p) = yy_cp -= 1;
2501YY_DO_BEFORE_ACTION; /* set up zconftext again */ 1124YY_DO_BEFORE_ACTION; /* set up zconftext again */
@@ -2506,14 +1129,14 @@ YY_RULE_SETUP
2506 return T_WORD_QUOTE; 1129 return T_WORD_QUOTE;
2507 } 1130 }
2508 YY_BREAK 1131 YY_BREAK
2509case 55: 1132case 24:
2510YY_RULE_SETUP 1133YY_RULE_SETUP
2511{ 1134{
2512 append_string(zconftext, zconfleng); 1135 append_string(zconftext, zconfleng);
2513 } 1136 }
2514 YY_BREAK 1137 YY_BREAK
2515case 56: 1138case 25:
2516/* rule 56 can match eol */ 1139/* rule 25 can match eol */
2517*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 1140*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
2518(yy_c_buf_p) = yy_cp -= 1; 1141(yy_c_buf_p) = yy_cp -= 1;
2519YY_DO_BEFORE_ACTION; /* set up zconftext again */ 1142YY_DO_BEFORE_ACTION; /* set up zconftext again */
@@ -2524,13 +1147,13 @@ YY_RULE_SETUP
2524 return T_WORD_QUOTE; 1147 return T_WORD_QUOTE;
2525 } 1148 }
2526 YY_BREAK 1149 YY_BREAK
2527case 57: 1150case 26:
2528YY_RULE_SETUP 1151YY_RULE_SETUP
2529{ 1152{
2530 append_string(zconftext + 1, zconfleng - 1); 1153 append_string(zconftext + 1, zconfleng - 1);
2531 } 1154 }
2532 YY_BREAK 1155 YY_BREAK
2533case 58: 1156case 27:
2534YY_RULE_SETUP 1157YY_RULE_SETUP
2535{ 1158{
2536 if (str == zconftext[0]) { 1159 if (str == zconftext[0]) {
@@ -2541,8 +1164,8 @@ YY_RULE_SETUP
2541 append_string(zconftext, 1); 1164 append_string(zconftext, 1);
2542 } 1165 }
2543 YY_BREAK 1166 YY_BREAK
2544case 59: 1167case 28:
2545/* rule 59 can match eol */ 1168/* rule 28 can match eol */
2546YY_RULE_SETUP 1169YY_RULE_SETUP
2547{ 1170{
2548 printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); 1171 printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
@@ -2557,7 +1180,7 @@ case YY_STATE_EOF(STRING):
2557 } 1180 }
2558 YY_BREAK 1181 YY_BREAK
2559 1182
2560case 60: 1183case 29:
2561YY_RULE_SETUP 1184YY_RULE_SETUP
2562{ 1185{
2563 ts = 0; 1186 ts = 0;
@@ -2582,8 +1205,8 @@ YY_RULE_SETUP
2582 } 1205 }
2583 } 1206 }
2584 YY_BREAK 1207 YY_BREAK
2585case 61: 1208case 30:
2586/* rule 61 can match eol */ 1209/* rule 30 can match eol */
2587*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 1210*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
2588(yy_c_buf_p) = yy_cp -= 1; 1211(yy_c_buf_p) = yy_cp -= 1;
2589YY_DO_BEFORE_ACTION; /* set up zconftext again */ 1212YY_DO_BEFORE_ACTION; /* set up zconftext again */
@@ -2594,15 +1217,15 @@ YY_RULE_SETUP
2594 return T_HELPTEXT; 1217 return T_HELPTEXT;
2595 } 1218 }
2596 YY_BREAK 1219 YY_BREAK
2597case 62: 1220case 31:
2598/* rule 62 can match eol */ 1221/* rule 31 can match eol */
2599YY_RULE_SETUP 1222YY_RULE_SETUP
2600{ 1223{
2601 current_file->lineno++; 1224 current_file->lineno++;
2602 append_string("\n", 1); 1225 append_string("\n", 1);
2603 } 1226 }
2604 YY_BREAK 1227 YY_BREAK
2605case 63: 1228case 32:
2606YY_RULE_SETUP 1229YY_RULE_SETUP
2607{ 1230{
2608 append_string(zconftext, zconfleng); 1231 append_string(zconftext, zconfleng);
@@ -2628,7 +1251,7 @@ case YY_STATE_EOF(COMMAND):
2628 yyterminate(); 1251 yyterminate();
2629} 1252}
2630 YY_BREAK 1253 YY_BREAK
2631case 64: 1254case 33:
2632YY_RULE_SETUP 1255YY_RULE_SETUP
2633YY_FATAL_ERROR( "flex scanner jammed" ); 1256YY_FATAL_ERROR( "flex scanner jammed" );
2634 YY_BREAK 1257 YY_BREAK
@@ -3338,10 +1961,10 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
3338 * @note If you want to scan bytes that may contain NUL values, then use 1961 * @note If you want to scan bytes that may contain NUL values, then use
3339 * zconf_scan_bytes() instead. 1962 * zconf_scan_bytes() instead.
3340 */ 1963 */
3341YY_BUFFER_STATE zconf_scan_string (yyconst char * str ) 1964YY_BUFFER_STATE zconf_scan_string (yyconst char * yy_str )
3342{ 1965{
3343 1966
3344 return zconf_scan_bytes(str,strlen(str) ); 1967 return zconf_scan_bytes(yy_str,strlen(yy_str) );
3345} 1968}
3346 1969
3347/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will 1970/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index 5fba1feff2a8..6881fb084324 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -37,6 +37,16 @@ extern "C" {
37#define _(text) gettext(text) 37#define _(text) gettext(text)
38#define N_(text) (text) 38#define N_(text) (text)
39 39
40
41#define TF_COMMAND 0x0001
42#define TF_PARAM 0x0002
43
44struct kconf_id {
45 int name;
46 int token;
47 unsigned int flags;
48};
49
40int zconfparse(void); 50int zconfparse(void);
41void zconfdump(FILE *out); 51void zconfdump(FILE *out);
42 52
diff --git a/scripts/kconfig/zconf.gperf b/scripts/kconfig/zconf.gperf
new file mode 100644
index 000000000000..c9d81cf5d7fb
--- /dev/null
+++ b/scripts/kconfig/zconf.gperf
@@ -0,0 +1,43 @@
1%language=ANSI-C
2%define hash-function-name kconf_id_hash
3%define lookup-function-name kconf_id_lookup
4%define string-pool-name kconf_id_strings
5%compare-strncmp
6%enum
7%pic
8%struct-type
9
10struct kconf_id;
11
12%%
13mainmenu, T_MAINMENU, TF_COMMAND
14menu, T_MENU, TF_COMMAND
15endmenu, T_ENDMENU, TF_COMMAND
16source, T_SOURCE, TF_COMMAND
17choice, T_CHOICE, TF_COMMAND
18endchoice, T_ENDCHOICE, TF_COMMAND
19comment, T_COMMENT, TF_COMMAND
20config, T_CONFIG, TF_COMMAND
21menuconfig, T_MENUCONFIG, TF_COMMAND
22help, T_HELP, TF_COMMAND
23if, T_IF, TF_COMMAND|TF_PARAM
24endif, T_ENDIF, TF_COMMAND
25depends, T_DEPENDS, TF_COMMAND
26requires, T_REQUIRES, TF_COMMAND
27optional, T_OPTIONAL, TF_COMMAND
28default, T_DEFAULT, TF_COMMAND
29prompt, T_PROMPT, TF_COMMAND
30tristate, T_TRISTATE, TF_COMMAND
31def_tristate, T_DEF_TRISTATE, TF_COMMAND
32bool, T_BOOLEAN, TF_COMMAND
33boolean, T_BOOLEAN, TF_COMMAND
34def_bool, T_DEF_BOOLEAN, TF_COMMAND
35def_boolean, T_DEF_BOOLEAN, TF_COMMAND
36int, T_INT, TF_COMMAND
37hex, T_HEX, TF_COMMAND
38string, T_STRING, TF_COMMAND
39select, T_SELECT, TF_COMMAND
40enable, T_SELECT, TF_COMMAND
41range, T_RANGE, TF_COMMAND
42on, T_ON, TF_PARAM
43%%
diff --git a/scripts/kconfig/zconf.hash.c_shipped b/scripts/kconfig/zconf.hash.c_shipped
new file mode 100644
index 000000000000..6741cb159801
--- /dev/null
+++ b/scripts/kconfig/zconf.hash.c_shipped
@@ -0,0 +1,231 @@
1/* ANSI-C code produced by gperf version 3.0.1 */
2/* Command-line: gperf */
3/* Computed positions: -k'1,3' */
4
5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28/* The character set is not based on ISO-646. */
29#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
30#endif
31
32struct kconf_id;
33/* maximum key range = 45, duplicates = 0 */
34
35#ifdef __GNUC__
36__inline
37#else
38#ifdef __cplusplus
39inline
40#endif
41#endif
42static unsigned int
43kconf_id_hash (register const char *str, register unsigned int len)
44{
45 static unsigned char asso_values[] =
46 {
47 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
48 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
49 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
50 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
51 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
52 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
53 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
54 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
55 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
56 47, 47, 47, 47, 47, 47, 47, 25, 10, 15,
57 0, 0, 5, 47, 0, 0, 47, 47, 0, 10,
58 0, 20, 20, 20, 5, 0, 0, 20, 47, 47,
59 20, 47, 47, 47, 47, 47, 47, 47, 47, 47,
60 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
61 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
62 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
63 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
64 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
65 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
66 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
67 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
68 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
69 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
70 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
71 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
72 47, 47, 47, 47, 47, 47
73 };
74 register int hval = len;
75
76 switch (hval)
77 {
78 default:
79 hval += asso_values[(unsigned char)str[2]];
80 /*FALLTHROUGH*/
81 case 2:
82 case 1:
83 hval += asso_values[(unsigned char)str[0]];
84 break;
85 }
86 return hval;
87}
88
89struct kconf_id_strings_t
90 {
91 char kconf_id_strings_str2[sizeof("if")];
92 char kconf_id_strings_str3[sizeof("int")];
93 char kconf_id_strings_str4[sizeof("help")];
94 char kconf_id_strings_str5[sizeof("endif")];
95 char kconf_id_strings_str6[sizeof("select")];
96 char kconf_id_strings_str7[sizeof("endmenu")];
97 char kconf_id_strings_str8[sizeof("tristate")];
98 char kconf_id_strings_str9[sizeof("endchoice")];
99 char kconf_id_strings_str10[sizeof("range")];
100 char kconf_id_strings_str11[sizeof("string")];
101 char kconf_id_strings_str12[sizeof("default")];
102 char kconf_id_strings_str13[sizeof("def_bool")];
103 char kconf_id_strings_str14[sizeof("menu")];
104 char kconf_id_strings_str16[sizeof("def_boolean")];
105 char kconf_id_strings_str17[sizeof("def_tristate")];
106 char kconf_id_strings_str18[sizeof("mainmenu")];
107 char kconf_id_strings_str20[sizeof("menuconfig")];
108 char kconf_id_strings_str21[sizeof("config")];
109 char kconf_id_strings_str22[sizeof("on")];
110 char kconf_id_strings_str23[sizeof("hex")];
111 char kconf_id_strings_str26[sizeof("source")];
112 char kconf_id_strings_str27[sizeof("depends")];
113 char kconf_id_strings_str28[sizeof("optional")];
114 char kconf_id_strings_str31[sizeof("enable")];
115 char kconf_id_strings_str32[sizeof("comment")];
116 char kconf_id_strings_str33[sizeof("requires")];
117 char kconf_id_strings_str34[sizeof("bool")];
118 char kconf_id_strings_str37[sizeof("boolean")];
119 char kconf_id_strings_str41[sizeof("choice")];
120 char kconf_id_strings_str46[sizeof("prompt")];
121 };
122static struct kconf_id_strings_t kconf_id_strings_contents =
123 {
124 "if",
125 "int",
126 "help",
127 "endif",
128 "select",
129 "endmenu",
130 "tristate",
131 "endchoice",
132 "range",
133 "string",
134 "default",
135 "def_bool",
136 "menu",
137 "def_boolean",
138 "def_tristate",
139 "mainmenu",
140 "menuconfig",
141 "config",
142 "on",
143 "hex",
144 "source",
145 "depends",
146 "optional",
147 "enable",
148 "comment",
149 "requires",
150 "bool",
151 "boolean",
152 "choice",
153 "prompt"
154 };
155#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
156#ifdef __GNUC__
157__inline
158#endif
159struct kconf_id *
160kconf_id_lookup (register const char *str, register unsigned int len)
161{
162 enum
163 {
164 TOTAL_KEYWORDS = 30,
165 MIN_WORD_LENGTH = 2,
166 MAX_WORD_LENGTH = 12,
167 MIN_HASH_VALUE = 2,
168 MAX_HASH_VALUE = 46
169 };
170
171 static struct kconf_id wordlist[] =
172 {
173 {-1}, {-1},
174 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM},
175 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_INT, TF_COMMAND},
176 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str4, T_HELP, TF_COMMAND},
177 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
178 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_SELECT, TF_COMMAND},
179 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
180 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TRISTATE, TF_COMMAND},
181 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND},
182 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND},
183 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_STRING, TF_COMMAND},
184 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND},
185 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEF_BOOLEAN, TF_COMMAND},
186 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_MENU, TF_COMMAND},
187 {-1},
188 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_DEF_BOOLEAN, TF_COMMAND},
189 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEF_TRISTATE, TF_COMMAND},
190 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_MAINMENU, TF_COMMAND},
191 {-1},
192 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str20, T_MENUCONFIG, TF_COMMAND},
193 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_CONFIG, TF_COMMAND},
194 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ON, TF_PARAM},
195 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_HEX, TF_COMMAND},
196 {-1}, {-1},
197 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SOURCE, TF_COMMAND},
198 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_DEPENDS, TF_COMMAND},
199 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPTIONAL, TF_COMMAND},
200 {-1}, {-1},
201 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
202 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
203 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_REQUIRES, TF_COMMAND},
204 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str34, T_BOOLEAN, TF_COMMAND},
205 {-1}, {-1},
206 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_BOOLEAN, TF_COMMAND},
207 {-1}, {-1}, {-1},
208 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_CHOICE, TF_COMMAND},
209 {-1}, {-1}, {-1}, {-1},
210 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_PROMPT, TF_COMMAND}
211 };
212
213 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
214 {
215 register int key = kconf_id_hash (str, len);
216
217 if (key <= MAX_HASH_VALUE && key >= 0)
218 {
219 register int o = wordlist[key].name;
220 if (o >= 0)
221 {
222 register const char *s = o + kconf_id_strings;
223
224 if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
225 return &wordlist[key];
226 }
227 }
228 }
229 return 0;
230}
231
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l
index 55517b2877cd..ec902091be97 100644
--- a/scripts/kconfig/zconf.l
+++ b/scripts/kconfig/zconf.l
@@ -18,8 +18,7 @@
18 18
19#define START_STRSIZE 16 19#define START_STRSIZE 16
20 20
21char *text; 21static char *text;
22static char *text_ptr;
23static int text_size, text_asize; 22static int text_size, text_asize;
24 23
25struct buffer { 24struct buffer {
@@ -38,23 +37,22 @@ void new_string(void)
38{ 37{
39 text = malloc(START_STRSIZE); 38 text = malloc(START_STRSIZE);
40 text_asize = START_STRSIZE; 39 text_asize = START_STRSIZE;
41 text_ptr = text;
42 text_size = 0; 40 text_size = 0;
43 *text_ptr = 0; 41 *text = 0;
44} 42}
45 43
46void append_string(const char *str, int size) 44void append_string(const char *str, int size)
47{ 45{
48 int new_size = text_size + size + 1; 46 int new_size = text_size + size + 1;
49 if (new_size > text_asize) { 47 if (new_size > text_asize) {
48 new_size += START_STRSIZE - 1;
49 new_size &= -START_STRSIZE;
50 text = realloc(text, new_size); 50 text = realloc(text, new_size);
51 text_asize = new_size; 51 text_asize = new_size;
52 text_ptr = text + text_size;
53 } 52 }
54 memcpy(text_ptr, str, size); 53 memcpy(text + text_size, str, size);
55 text_ptr += size;
56 text_size += size; 54 text_size += size;
57 *text_ptr = 0; 55 text[text_size] = 0;
58} 56}
59 57
60void alloc_string(const char *str, int size) 58void alloc_string(const char *str, int size)
@@ -88,36 +86,12 @@ n [A-Za-z0-9_]
88 86
89 87
90<COMMAND>{ 88<COMMAND>{
91 "mainmenu" BEGIN(PARAM); return T_MAINMENU;
92 "menu" BEGIN(PARAM); return T_MENU;
93 "endmenu" BEGIN(PARAM); return T_ENDMENU;
94 "source" BEGIN(PARAM); return T_SOURCE;
95 "choice" BEGIN(PARAM); return T_CHOICE;
96 "endchoice" BEGIN(PARAM); return T_ENDCHOICE;
97 "comment" BEGIN(PARAM); return T_COMMENT;
98 "config" BEGIN(PARAM); return T_CONFIG;
99 "menuconfig" BEGIN(PARAM); return T_MENUCONFIG;
100 "help" BEGIN(PARAM); return T_HELP;
101 "if" BEGIN(PARAM); return T_IF;
102 "endif" BEGIN(PARAM); return T_ENDIF;
103 "depends" BEGIN(PARAM); return T_DEPENDS;
104 "requires" BEGIN(PARAM); return T_REQUIRES;
105 "optional" BEGIN(PARAM); return T_OPTIONAL;
106 "default" BEGIN(PARAM); return T_DEFAULT;
107 "prompt" BEGIN(PARAM); return T_PROMPT;
108 "tristate" BEGIN(PARAM); return T_TRISTATE;
109 "def_tristate" BEGIN(PARAM); return T_DEF_TRISTATE;
110 "bool" BEGIN(PARAM); return T_BOOLEAN;
111 "boolean" BEGIN(PARAM); return T_BOOLEAN;
112 "def_bool" BEGIN(PARAM); return T_DEF_BOOLEAN;
113 "def_boolean" BEGIN(PARAM); return T_DEF_BOOLEAN;
114 "int" BEGIN(PARAM); return T_INT;
115 "hex" BEGIN(PARAM); return T_HEX;
116 "string" BEGIN(PARAM); return T_STRING;
117 "select" BEGIN(PARAM); return T_SELECT;
118 "enable" BEGIN(PARAM); return T_SELECT;
119 "range" BEGIN(PARAM); return T_RANGE;
120 {n}+ { 89 {n}+ {
90 struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
91 if (id && id->flags & TF_COMMAND) {
92 BEGIN(PARAM);
93 return id->token;
94 }
121 alloc_string(yytext, yyleng); 95 alloc_string(yytext, yyleng);
122 zconflval.string = text; 96 zconflval.string = text;
123 return T_WORD; 97 return T_WORD;
@@ -134,8 +108,6 @@ n [A-Za-z0-9_]
134 "!" return T_NOT; 108 "!" return T_NOT;
135 "=" return T_EQUAL; 109 "=" return T_EQUAL;
136 "!=" return T_UNEQUAL; 110 "!=" return T_UNEQUAL;
137 "if" return T_IF;
138 "on" return T_ON;
139 \"|\' { 111 \"|\' {
140 str = yytext[0]; 112 str = yytext[0];
141 new_string(); 113 new_string();
@@ -144,6 +116,9 @@ n [A-Za-z0-9_]
144 \n BEGIN(INITIAL); current_file->lineno++; return T_EOL; 116 \n BEGIN(INITIAL); current_file->lineno++; return T_EOL;
145 --- /* ignore */ 117 --- /* ignore */
146 ({n}|[-/.])+ { 118 ({n}|[-/.])+ {
119 struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
120 if (id && id->flags & TF_PARAM)
121 return id->token;
147 alloc_string(yytext, yyleng); 122 alloc_string(yytext, yyleng);
148 zconflval.string = text; 123 zconflval.string = text;
149 return T_WORD; 124 return T_WORD;
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped
index da12f7b33be3..07fa508d4659 100644
--- a/scripts/kconfig/zconf.tab.c_shipped
+++ b/scripts/kconfig/zconf.tab.c_shipped
@@ -1,7 +1,7 @@
1/* A Bison parser, made by GNU Bison 1.875a. */ 1/* A Bison parser, made by GNU Bison 2.0. */
2 2
3/* Skeleton parser for Yacc-like parsing with Bison, 3/* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -45,8 +45,7 @@
45/* Using locations. */ 45/* Using locations. */
46#define YYLSP_NEEDED 0 46#define YYLSP_NEEDED 0
47 47
48/* If NAME_PREFIX is specified substitute the variables and functions 48/* Substitute the variable and function names. */
49 names. */
50#define yyparse zconfparse 49#define yyparse zconfparse
51#define yylex zconflex 50#define yylex zconflex
52#define yyerror zconferror 51#define yyerror zconferror
@@ -161,6 +160,11 @@
161#include <string.h> 160#include <string.h>
162#include <stdbool.h> 161#include <stdbool.h>
163 162
163#define LKC_DIRECT_LINK
164#include "lkc.h"
165
166#include "zconf.hash.c"
167
164#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) 168#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
165 169
166#define PRINTD 0x0001 170#define PRINTD 0x0001
@@ -202,7 +206,7 @@ typedef union YYSTYPE {
202 struct expr *expr; 206 struct expr *expr;
203 struct menu *menu; 207 struct menu *menu;
204} YYSTYPE; 208} YYSTYPE;
205/* Line 191 of yacc.c. */ 209/* Line 190 of yacc.c. */
206 210
207# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 211# define yystype YYSTYPE /* obsolescent; will be withdrawn */
208# define YYSTYPE_IS_DECLARED 1 212# define YYSTYPE_IS_DECLARED 1
@@ -214,27 +218,26 @@ typedef union YYSTYPE {
214/* Copy the second part of user declarations. */ 218/* Copy the second part of user declarations. */
215 219
216 220
217#define LKC_DIRECT_LINK 221/* Line 213 of yacc.c. */
218#include "lkc.h"
219
220
221/* Line 214 of yacc.c. */
222 222
223 223
224#if ! defined (yyoverflow) || YYERROR_VERBOSE 224#if ! defined (yyoverflow) || YYERROR_VERBOSE
225 225
226# ifndef YYFREE
227# define YYFREE free
228# endif
229# ifndef YYMALLOC
230# define YYMALLOC malloc
231# endif
232
226/* The parser invokes alloca or malloc; define the necessary symbols. */ 233/* The parser invokes alloca or malloc; define the necessary symbols. */
227 234
228# if YYSTACK_USE_ALLOCA 235# ifdef YYSTACK_USE_ALLOCA
229# define YYSTACK_ALLOC alloca 236# if YYSTACK_USE_ALLOCA
230# else 237# ifdef __GNUC__
231# ifndef YYSTACK_USE_ALLOCA 238# define YYSTACK_ALLOC __builtin_alloca
232# if defined (alloca) || defined (_ALLOCA_H)
233# define YYSTACK_ALLOC alloca
234# else 239# else
235# ifdef __GNUC__ 240# define YYSTACK_ALLOC alloca
236# define YYSTACK_ALLOC __builtin_alloca
237# endif
238# endif 241# endif
239# endif 242# endif
240# endif 243# endif
@@ -247,20 +250,20 @@ typedef union YYSTYPE {
247# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 250# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
248# define YYSIZE_T size_t 251# define YYSIZE_T size_t
249# endif 252# endif
250# define YYSTACK_ALLOC malloc 253# define YYSTACK_ALLOC YYMALLOC
251# define YYSTACK_FREE free 254# define YYSTACK_FREE YYFREE
252# endif 255# endif
253#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ 256#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
254 257
255 258
256#if (! defined (yyoverflow) \ 259#if (! defined (yyoverflow) \
257 && (! defined (__cplusplus) \ 260 && (! defined (__cplusplus) \
258 || (YYSTYPE_IS_TRIVIAL))) 261 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
259 262
260/* A type that is properly aligned for any stack member. */ 263/* A type that is properly aligned for any stack member. */
261union yyalloc 264union yyalloc
262{ 265{
263 short yyss; 266 short int yyss;
264 YYSTYPE yyvs; 267 YYSTYPE yyvs;
265 }; 268 };
266 269
@@ -270,13 +273,13 @@ union yyalloc
270/* The size of an array large to enough to hold all stacks, each with 273/* The size of an array large to enough to hold all stacks, each with
271 N elements. */ 274 N elements. */
272# define YYSTACK_BYTES(N) \ 275# define YYSTACK_BYTES(N) \
273 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ 276 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
274 + YYSTACK_GAP_MAXIMUM) 277 + YYSTACK_GAP_MAXIMUM)
275 278
276/* Copy COUNT objects from FROM to TO. The source and destination do 279/* Copy COUNT objects from FROM to TO. The source and destination do
277 not overlap. */ 280 not overlap. */
278# ifndef YYCOPY 281# ifndef YYCOPY
279# if 1 < __GNUC__ 282# if defined (__GNUC__) && 1 < __GNUC__
280# define YYCOPY(To, From, Count) \ 283# define YYCOPY(To, From, Count) \
281 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 284 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
282# else 285# else
@@ -312,7 +315,7 @@ union yyalloc
312#if defined (__STDC__) || defined (__cplusplus) 315#if defined (__STDC__) || defined (__cplusplus)
313 typedef signed char yysigned_char; 316 typedef signed char yysigned_char;
314#else 317#else
315 typedef short yysigned_char; 318 typedef short int yysigned_char;
316#endif 319#endif
317 320
318/* YYFINAL -- State number of the termination state. */ 321/* YYFINAL -- State number of the termination state. */
@@ -374,7 +377,7 @@ static const unsigned char yytranslate[] =
374#if YYDEBUG 377#if YYDEBUG
375/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 378/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
376 YYRHS. */ 379 YYRHS. */
377static const unsigned short yyprhs[] = 380static const unsigned short int yyprhs[] =
378{ 381{
379 0, 0, 3, 4, 7, 9, 11, 13, 17, 19, 382 0, 0, 3, 4, 7, 9, 11, 13, 17, 19,
380 21, 23, 26, 28, 30, 32, 34, 36, 38, 42, 383 21, 23, 26, 28, 30, 32, 34, 36, 38, 42,
@@ -427,19 +430,19 @@ static const yysigned_char yyrhs[] =
427}; 430};
428 431
429/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 432/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
430static const unsigned short yyrline[] = 433static const unsigned short int yyrline[] =
431{ 434{
432 0, 94, 94, 95, 98, 99, 100, 101, 102, 103, 435 0, 97, 97, 98, 101, 102, 103, 104, 105, 106,
433 104, 105, 109, 110, 111, 112, 113, 114, 120, 128, 436 107, 108, 112, 113, 114, 115, 116, 117, 123, 131,
434 134, 142, 152, 154, 155, 156, 157, 160, 166, 173, 437 137, 145, 155, 157, 158, 159, 160, 163, 169, 176,
435 179, 186, 192, 198, 204, 210, 216, 222, 230, 239, 438 182, 189, 195, 201, 207, 213, 219, 225, 233, 242,
436 245, 254, 255, 261, 263, 264, 265, 266, 269, 275, 439 248, 257, 258, 264, 266, 267, 268, 269, 272, 278,
437 281, 287, 293, 299, 301, 306, 315, 324, 325, 331, 440 284, 290, 296, 302, 304, 309, 318, 327, 328, 334,
438 333, 334, 335, 340, 347, 353, 362, 363, 369, 371, 441 336, 337, 338, 343, 350, 356, 365, 366, 372, 374,
439 372, 373, 374, 377, 383, 390, 397, 404, 410, 417, 442 375, 376, 377, 380, 386, 393, 400, 407, 413, 420,
440 418, 419, 422, 427, 432, 440, 442, 447, 448, 451, 443 421, 422, 425, 430, 435, 443, 445, 450, 451, 454,
441 452, 453, 457, 457, 459, 460, 463, 464, 465, 466, 444 455, 456, 460, 460, 462, 463, 466, 467, 468, 469,
442 467, 468, 469, 472, 473 445 470, 471, 472, 475, 476
443}; 446};
444#endif 447#endif
445 448
@@ -448,29 +451,29 @@ static const unsigned short yyrline[] =
448 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 451 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
449static const char *const yytname[] = 452static const char *const yytname[] =
450{ 453{
451 "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", 454 "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
452 "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", 455 "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
453 "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", 456 "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
454 "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE", 457 "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
455 "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT", 458 "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT",
456 "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL", 459 "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL",
457 "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR", 460 "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
458 "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", 461 "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", "common_block",
459 "common_block", "config_entry_start", "config_stmt", 462 "config_entry_start", "config_stmt", "menuconfig_entry_start",
460 "menuconfig_entry_start", "menuconfig_stmt", "config_option_list", 463 "menuconfig_stmt", "config_option_list", "config_option", "choice",
461 "config_option", "choice", "choice_entry", "choice_end", "choice_stmt", 464 "choice_entry", "choice_end", "choice_stmt", "choice_option_list",
462 "choice_option_list", "choice_option", "choice_block", "if", "if_end", 465 "choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block",
463 "if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt", 466 "menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source",
464 "menu_block", "source", "source_stmt", "comment", "comment_stmt", 467 "source_stmt", "comment", "comment_stmt", "help_start", "help",
465 "help_start", "help", "depends_list", "depends", "prompt_stmt_opt", 468 "depends_list", "depends", "prompt_stmt_opt", "prompt", "end",
466 "prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0 469 "nl_or_eof", "if_expr", "expr", "symbol", 0
467}; 470};
468#endif 471#endif
469 472
470# ifdef YYPRINT 473# ifdef YYPRINT
471/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 474/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
472 token YYLEX-NUM. */ 475 token YYLEX-NUM. */
473static const unsigned short yytoknum[] = 476static const unsigned short int yytoknum[] =
474{ 477{
475 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 478 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
476 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 479 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
@@ -539,7 +542,7 @@ static const unsigned char yydefact[] =
539}; 542};
540 543
541/* YYDEFGOTO[NTERM-NUM]. */ 544/* YYDEFGOTO[NTERM-NUM]. */
542static const short yydefgoto[] = 545static const short int yydefgoto[] =
543{ 546{
544 -1, 1, 17, 18, 19, 20, 21, 22, 52, 88, 547 -1, 1, 17, 18, 19, 20, 21, 22, 52, 88,
545 23, 24, 105, 25, 54, 98, 55, 26, 109, 27, 548 23, 24, 105, 25, 54, 98, 55, 26, 109, 27,
@@ -551,7 +554,7 @@ static const short yydefgoto[] =
551/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 554/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
552 STATE-NUM. */ 555 STATE-NUM. */
553#define YYPACT_NINF -99 556#define YYPACT_NINF -99
554static const short yypact[] = 557static const short int yypact[] =
555{ 558{
556 -99, 48, -99, 38, 46, 46, -99, 46, -29, -99, 559 -99, 48, -99, 38, 46, 46, -99, 46, -29, -99,
557 46, -17, -3, -11, -99, -99, -99, -99, -99, -99, 560 46, -17, -3, -11, -99, -99, -99, -99, -99, -99,
@@ -575,7 +578,7 @@ static const short yypact[] =
575}; 578};
576 579
577/* YYPGOTO[NTERM-NUM]. */ 580/* YYPGOTO[NTERM-NUM]. */
578static const short yypgoto[] = 581static const short int yypgoto[] =
579{ 582{
580 -99, -99, -99, 111, -99, -99, -99, -99, 178, -99, 583 -99, -99, -99, 111, -99, -99, -99, -99, 178, -99,
581 -99, -99, -99, 91, -99, -99, -99, -99, -99, -99, 584 -99, -99, -99, 91, -99, -99, -99, -99, -99, -99,
@@ -589,7 +592,7 @@ static const short yypgoto[] =
589 number is the opposite. If zero, do what YYDEFACT says. 592 number is the opposite. If zero, do what YYDEFACT says.
590 If YYTABLE_NINF, syntax error. */ 593 If YYTABLE_NINF, syntax error. */
591#define YYTABLE_NINF -68 594#define YYTABLE_NINF -68
592static const short yytable[] = 595static const short int yytable[] =
593{ 596{
594 66, 67, 36, 42, 39, 40, 71, 41, 123, 124, 597 66, 67, 36, 42, 39, 40, 71, 41, 123, 124,
595 43, 44, 74, 75, 120, 154, 72, 46, 47, 69, 598 43, 44, 74, 75, 120, 154, 72, 46, 47, 69,
@@ -687,7 +690,7 @@ static const unsigned char yystos[] =
687 690
688#define YYACCEPT goto yyacceptlab 691#define YYACCEPT goto yyacceptlab
689#define YYABORT goto yyabortlab 692#define YYABORT goto yyabortlab
690#define YYERROR goto yyerrlab1 693#define YYERROR goto yyerrorlab
691 694
692 695
693/* Like YYERROR except do call yyerror. This remains here temporarily 696/* Like YYERROR except do call yyerror. This remains here temporarily
@@ -715,20 +718,53 @@ do \
715 } \ 718 } \
716while (0) 719while (0)
717 720
721
718#define YYTERROR 1 722#define YYTERROR 1
719#define YYERRCODE 256 723#define YYERRCODE 256
720 724
721/* YYLLOC_DEFAULT -- Compute the default location (before the actions
722 are run). */
723 725
726/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
727 If N is 0, then set CURRENT to the empty location which ends
728 the previous symbol: RHS[0] (always defined). */
729
730#define YYRHSLOC(Rhs, K) ((Rhs)[K])
724#ifndef YYLLOC_DEFAULT 731#ifndef YYLLOC_DEFAULT
725# define YYLLOC_DEFAULT(Current, Rhs, N) \ 732# define YYLLOC_DEFAULT(Current, Rhs, N) \
726 Current.first_line = Rhs[1].first_line; \ 733 do \
727 Current.first_column = Rhs[1].first_column; \ 734 if (N) \
728 Current.last_line = Rhs[N].last_line; \ 735 { \
729 Current.last_column = Rhs[N].last_column; 736 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
737 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
738 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
739 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
740 } \
741 else \
742 { \
743 (Current).first_line = (Current).last_line = \
744 YYRHSLOC (Rhs, 0).last_line; \
745 (Current).first_column = (Current).last_column = \
746 YYRHSLOC (Rhs, 0).last_column; \
747 } \
748 while (0)
730#endif 749#endif
731 750
751
752/* YY_LOCATION_PRINT -- Print the location on the stream.
753 This macro was not mandated originally: define only if we know
754 we won't break user code: when these are the locations we know. */
755
756#ifndef YY_LOCATION_PRINT
757# if YYLTYPE_IS_TRIVIAL
758# define YY_LOCATION_PRINT(File, Loc) \
759 fprintf (File, "%d.%d-%d.%d", \
760 (Loc).first_line, (Loc).first_column, \
761 (Loc).last_line, (Loc).last_column)
762# else
763# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
764# endif
765#endif
766
767
732/* YYLEX -- calling `yylex' with the right arguments. */ 768/* YYLEX -- calling `yylex' with the right arguments. */
733 769
734#ifdef YYLEX_PARAM 770#ifdef YYLEX_PARAM
@@ -751,36 +787,30 @@ do { \
751 YYFPRINTF Args; \ 787 YYFPRINTF Args; \
752} while (0) 788} while (0)
753 789
754# define YYDSYMPRINT(Args) \ 790# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
755do { \
756 if (yydebug) \
757 yysymprint Args; \
758} while (0)
759
760# define YYDSYMPRINTF(Title, Token, Value, Location) \
761do { \ 791do { \
762 if (yydebug) \ 792 if (yydebug) \
763 { \ 793 { \
764 YYFPRINTF (stderr, "%s ", Title); \ 794 YYFPRINTF (stderr, "%s ", Title); \
765 yysymprint (stderr, \ 795 yysymprint (stderr, \
766 Token, Value); \ 796 Type, Value); \
767 YYFPRINTF (stderr, "\n"); \ 797 YYFPRINTF (stderr, "\n"); \
768 } \ 798 } \
769} while (0) 799} while (0)
770 800
771/*------------------------------------------------------------------. 801/*------------------------------------------------------------------.
772| yy_stack_print -- Print the state stack from its BOTTOM up to its | 802| yy_stack_print -- Print the state stack from its BOTTOM up to its |
773| TOP (cinluded). | 803| TOP (included). |
774`------------------------------------------------------------------*/ 804`------------------------------------------------------------------*/
775 805
776#if defined (__STDC__) || defined (__cplusplus) 806#if defined (__STDC__) || defined (__cplusplus)
777static void 807static void
778yy_stack_print (short *bottom, short *top) 808yy_stack_print (short int *bottom, short int *top)
779#else 809#else
780static void 810static void
781yy_stack_print (bottom, top) 811yy_stack_print (bottom, top)
782 short *bottom; 812 short int *bottom;
783 short *top; 813 short int *top;
784#endif 814#endif
785{ 815{
786 YYFPRINTF (stderr, "Stack now"); 816 YYFPRINTF (stderr, "Stack now");
@@ -810,9 +840,9 @@ yy_reduce_print (yyrule)
810#endif 840#endif
811{ 841{
812 int yyi; 842 int yyi;
813 unsigned int yylineno = yyrline[yyrule]; 843 unsigned int yylno = yyrline[yyrule];
814 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", 844 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
815 yyrule - 1, yylineno); 845 yyrule - 1, yylno);
816 /* Print the symbols being reduced, and their result. */ 846 /* Print the symbols being reduced, and their result. */
817 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) 847 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
818 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); 848 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
@@ -830,8 +860,7 @@ do { \
830int yydebug; 860int yydebug;
831#else /* !YYDEBUG */ 861#else /* !YYDEBUG */
832# define YYDPRINTF(Args) 862# define YYDPRINTF(Args)
833# define YYDSYMPRINT(Args) 863# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
834# define YYDSYMPRINTF(Title, Token, Value, Location)
835# define YY_STACK_PRINT(Bottom, Top) 864# define YY_STACK_PRINT(Bottom, Top)
836# define YY_REDUCE_PRINT(Rule) 865# define YY_REDUCE_PRINT(Rule)
837#endif /* !YYDEBUG */ 866#endif /* !YYDEBUG */
@@ -849,10 +878,6 @@ int yydebug;
849 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) 878 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
850 evaluated with infinite-precision integer arithmetic. */ 879 evaluated with infinite-precision integer arithmetic. */
851 880
852#if YYMAXDEPTH == 0
853# undef YYMAXDEPTH
854#endif
855
856#ifndef YYMAXDEPTH 881#ifndef YYMAXDEPTH
857# define YYMAXDEPTH 10000 882# define YYMAXDEPTH 10000
858#endif 883#endif
@@ -934,15 +959,15 @@ yysymprint (yyoutput, yytype, yyvaluep)
934 (void) yyvaluep; 959 (void) yyvaluep;
935 960
936 if (yytype < YYNTOKENS) 961 if (yytype < YYNTOKENS)
937 { 962 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
938 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
939# ifdef YYPRINT
940 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
941# endif
942 }
943 else 963 else
944 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 964 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
945 965
966
967# ifdef YYPRINT
968 if (yytype < YYNTOKENS)
969 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
970# endif
946 switch (yytype) 971 switch (yytype)
947 { 972 {
948 default: 973 default:
@@ -958,10 +983,11 @@ yysymprint (yyoutput, yytype, yyvaluep)
958 983
959#if defined (__STDC__) || defined (__cplusplus) 984#if defined (__STDC__) || defined (__cplusplus)
960static void 985static void
961yydestruct (int yytype, YYSTYPE *yyvaluep) 986yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
962#else 987#else
963static void 988static void
964yydestruct (yytype, yyvaluep) 989yydestruct (yymsg, yytype, yyvaluep)
990 const char *yymsg;
965 int yytype; 991 int yytype;
966 YYSTYPE *yyvaluep; 992 YYSTYPE *yyvaluep;
967#endif 993#endif
@@ -969,6 +995,10 @@ yydestruct (yytype, yyvaluep)
969 /* Pacify ``unused variable'' warnings. */ 995 /* Pacify ``unused variable'' warnings. */
970 (void) yyvaluep; 996 (void) yyvaluep;
971 997
998 if (!yymsg)
999 yymsg = "Deleting";
1000 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1001
972 switch (yytype) 1002 switch (yytype)
973 { 1003 {
974 1004
@@ -996,10 +1026,10 @@ int yyparse ();
996 1026
997 1027
998 1028
999/* The lookahead symbol. */ 1029/* The look-ahead symbol. */
1000int yychar; 1030int yychar;
1001 1031
1002/* The semantic value of the lookahead symbol. */ 1032/* The semantic value of the look-ahead symbol. */
1003YYSTYPE yylval; 1033YYSTYPE yylval;
1004 1034
1005/* Number of syntax errors so far. */ 1035/* Number of syntax errors so far. */
@@ -1035,7 +1065,7 @@ yyparse ()
1035 int yyresult; 1065 int yyresult;
1036 /* Number of tokens to shift before error messages enabled. */ 1066 /* Number of tokens to shift before error messages enabled. */
1037 int yyerrstatus; 1067 int yyerrstatus;
1038 /* Lookahead token as an internal (translated) token number. */ 1068 /* Look-ahead token as an internal (translated) token number. */
1039 int yytoken = 0; 1069 int yytoken = 0;
1040 1070
1041 /* Three stacks and their tools: 1071 /* Three stacks and their tools:
@@ -1047,9 +1077,9 @@ yyparse ()
1047 to reallocate them elsewhere. */ 1077 to reallocate them elsewhere. */
1048 1078
1049 /* The state stack. */ 1079 /* The state stack. */
1050 short yyssa[YYINITDEPTH]; 1080 short int yyssa[YYINITDEPTH];
1051 short *yyss = yyssa; 1081 short int *yyss = yyssa;
1052 register short *yyssp; 1082 register short int *yyssp;
1053 1083
1054 /* The semantic value stack. */ 1084 /* The semantic value stack. */
1055 YYSTYPE yyvsa[YYINITDEPTH]; 1085 YYSTYPE yyvsa[YYINITDEPTH];
@@ -1086,6 +1116,9 @@ yyparse ()
1086 yyssp = yyss; 1116 yyssp = yyss;
1087 yyvsp = yyvs; 1117 yyvsp = yyvs;
1088 1118
1119
1120 yyvsp[0] = yylval;
1121
1089 goto yysetstate; 1122 goto yysetstate;
1090 1123
1091/*------------------------------------------------------------. 1124/*------------------------------------------------------------.
@@ -1111,7 +1144,7 @@ yyparse ()
1111 these so that the &'s don't force the real ones into 1144 these so that the &'s don't force the real ones into
1112 memory. */ 1145 memory. */
1113 YYSTYPE *yyvs1 = yyvs; 1146 YYSTYPE *yyvs1 = yyvs;
1114 short *yyss1 = yyss; 1147 short int *yyss1 = yyss;
1115 1148
1116 1149
1117 /* Each stack pointer address is followed by the size of the 1150 /* Each stack pointer address is followed by the size of the
@@ -1139,7 +1172,7 @@ yyparse ()
1139 yystacksize = YYMAXDEPTH; 1172 yystacksize = YYMAXDEPTH;
1140 1173
1141 { 1174 {
1142 short *yyss1 = yyss; 1175 short int *yyss1 = yyss;
1143 union yyalloc *yyptr = 1176 union yyalloc *yyptr =
1144 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1177 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1145 if (! yyptr) 1178 if (! yyptr)
@@ -1175,18 +1208,18 @@ yyparse ()
1175yybackup: 1208yybackup:
1176 1209
1177/* Do appropriate processing given the current state. */ 1210/* Do appropriate processing given the current state. */
1178/* Read a lookahead token if we need one and don't already have one. */ 1211/* Read a look-ahead token if we need one and don't already have one. */
1179/* yyresume: */ 1212/* yyresume: */
1180 1213
1181 /* First try to decide what to do without reference to lookahead token. */ 1214 /* First try to decide what to do without reference to look-ahead token. */
1182 1215
1183 yyn = yypact[yystate]; 1216 yyn = yypact[yystate];
1184 if (yyn == YYPACT_NINF) 1217 if (yyn == YYPACT_NINF)
1185 goto yydefault; 1218 goto yydefault;
1186 1219
1187 /* Not known => get a lookahead token if don't already have one. */ 1220 /* Not known => get a look-ahead token if don't already have one. */
1188 1221
1189 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1222 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1190 if (yychar == YYEMPTY) 1223 if (yychar == YYEMPTY)
1191 { 1224 {
1192 YYDPRINTF ((stderr, "Reading a token: ")); 1225 YYDPRINTF ((stderr, "Reading a token: "));
@@ -1201,7 +1234,7 @@ yybackup:
1201 else 1234 else
1202 { 1235 {
1203 yytoken = YYTRANSLATE (yychar); 1236 yytoken = YYTRANSLATE (yychar);
1204 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); 1237 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1205 } 1238 }
1206 1239
1207 /* If the proper action on seeing token YYTOKEN is to reduce or to 1240 /* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1221,8 +1254,8 @@ yybackup:
1221 if (yyn == YYFINAL) 1254 if (yyn == YYFINAL)
1222 YYACCEPT; 1255 YYACCEPT;
1223 1256
1224 /* Shift the lookahead token. */ 1257 /* Shift the look-ahead token. */
1225 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); 1258 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1226 1259
1227 /* Discard the token being shifted unless it is eof. */ 1260 /* Discard the token being shifted unless it is eof. */
1228 if (yychar != YYEOF) 1261 if (yychar != YYEOF)
@@ -1294,10 +1327,10 @@ yyreduce:
1294 case 18: 1327 case 18:
1295 1328
1296 { 1329 {
1297 struct symbol *sym = sym_lookup(yyvsp[-1].string, 0); 1330 struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
1298 sym->flags |= SYMBOL_OPTIONAL; 1331 sym->flags |= SYMBOL_OPTIONAL;
1299 menu_add_entry(sym); 1332 menu_add_entry(sym);
1300 printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); 1333 printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
1301;} 1334;}
1302 break; 1335 break;
1303 1336
@@ -1312,10 +1345,10 @@ yyreduce:
1312 case 20: 1345 case 20:
1313 1346
1314 { 1347 {
1315 struct symbol *sym = sym_lookup(yyvsp[-1].string, 0); 1348 struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
1316 sym->flags |= SYMBOL_OPTIONAL; 1349 sym->flags |= SYMBOL_OPTIONAL;
1317 menu_add_entry(sym); 1350 menu_add_entry(sym);
1318 printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); 1351 printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
1319;} 1352;}
1320 break; 1353 break;
1321 1354
@@ -1342,7 +1375,7 @@ yyreduce:
1342 case 28: 1375 case 28:
1343 1376
1344 { 1377 {
1345 menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); 1378 menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
1346 menu_set_type(S_TRISTATE); 1379 menu_set_type(S_TRISTATE);
1347 printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); 1380 printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
1348;} 1381;}
@@ -1359,7 +1392,7 @@ yyreduce:
1359 case 30: 1392 case 30:
1360 1393
1361 { 1394 {
1362 menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); 1395 menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
1363 menu_set_type(S_BOOLEAN); 1396 menu_set_type(S_BOOLEAN);
1364 printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); 1397 printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
1365;} 1398;}
@@ -1392,7 +1425,7 @@ yyreduce:
1392 case 34: 1425 case 34:
1393 1426
1394 { 1427 {
1395 menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr); 1428 menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
1396 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); 1429 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
1397;} 1430;}
1398 break; 1431 break;
@@ -1400,7 +1433,7 @@ yyreduce:
1400 case 35: 1433 case 35:
1401 1434
1402 { 1435 {
1403 menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); 1436 menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
1404 printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); 1437 printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
1405;} 1438;}
1406 break; 1439 break;
@@ -1408,7 +1441,7 @@ yyreduce:
1408 case 36: 1441 case 36:
1409 1442
1410 { 1443 {
1411 menu_add_symbol(P_SELECT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr); 1444 menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
1412 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); 1445 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
1413;} 1446;}
1414 break; 1447 break;
@@ -1416,7 +1449,7 @@ yyreduce:
1416 case 37: 1449 case 37:
1417 1450
1418 { 1451 {
1419 menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,yyvsp[-3].symbol, yyvsp[-2].symbol), yyvsp[-1].expr); 1452 menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr));
1420 printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); 1453 printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
1421;} 1454;}
1422 break; 1455 break;
@@ -1443,7 +1476,7 @@ yyreduce:
1443 case 40: 1476 case 40:
1444 1477
1445 { 1478 {
1446 if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) { 1479 if (zconf_endtoken((yyvsp[0].token), T_CHOICE, T_ENDCHOICE)) {
1447 menu_end_menu(); 1480 menu_end_menu();
1448 printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); 1481 printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
1449 } 1482 }
@@ -1461,7 +1494,7 @@ yyreduce:
1461 case 48: 1494 case 48:
1462 1495
1463 { 1496 {
1464 menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr); 1497 menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
1465 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); 1498 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
1466;} 1499;}
1467 break; 1500 break;
@@ -1493,7 +1526,7 @@ yyreduce:
1493 case 52: 1526 case 52:
1494 1527
1495 { 1528 {
1496 menu_add_symbol(P_DEFAULT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr); 1529 menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
1497 printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); 1530 printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
1498;} 1531;}
1499 break; 1532 break;
@@ -1503,7 +1536,7 @@ yyreduce:
1503 { 1536 {
1504 printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); 1537 printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
1505 menu_add_entry(NULL); 1538 menu_add_entry(NULL);
1506 menu_add_dep(yyvsp[-1].expr); 1539 menu_add_dep((yyvsp[-1].expr));
1507 menu_end_entry(); 1540 menu_end_entry();
1508 menu_add_menu(); 1541 menu_add_menu();
1509;} 1542;}
@@ -1512,7 +1545,7 @@ yyreduce:
1512 case 56: 1545 case 56:
1513 1546
1514 { 1547 {
1515 if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) { 1548 if (zconf_endtoken((yyvsp[0].token), T_IF, T_ENDIF)) {
1516 menu_end_menu(); 1549 menu_end_menu();
1517 printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); 1550 printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
1518 } 1551 }
@@ -1531,7 +1564,7 @@ yyreduce:
1531 1564
1532 { 1565 {
1533 menu_add_entry(NULL); 1566 menu_add_entry(NULL);
1534 menu_add_prompt(P_MENU, yyvsp[-1].string, NULL); 1567 menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL);
1535 printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); 1568 printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
1536;} 1569;}
1537 break; 1570 break;
@@ -1547,7 +1580,7 @@ yyreduce:
1547 case 65: 1580 case 65:
1548 1581
1549 { 1582 {
1550 if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) { 1583 if (zconf_endtoken((yyvsp[0].token), T_MENU, T_ENDMENU)) {
1551 menu_end_menu(); 1584 menu_end_menu();
1552 printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); 1585 printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
1553 } 1586 }
@@ -1570,15 +1603,15 @@ yyreduce:
1570 case 73: 1603 case 73:
1571 1604
1572 { 1605 {
1573 yyval.string = yyvsp[-1].string; 1606 (yyval.string) = (yyvsp[-1].string);
1574 printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); 1607 printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
1575;} 1608;}
1576 break; 1609 break;
1577 1610
1578 case 74: 1611 case 74:
1579 1612
1580 { 1613 {
1581 zconf_nextfile(yyvsp[0].string); 1614 zconf_nextfile((yyvsp[0].string));
1582;} 1615;}
1583 break; 1616 break;
1584 1617
@@ -1586,7 +1619,7 @@ yyreduce:
1586 1619
1587 { 1620 {
1588 menu_add_entry(NULL); 1621 menu_add_entry(NULL);
1589 menu_add_prompt(P_COMMENT, yyvsp[-1].string, NULL); 1622 menu_add_prompt(P_COMMENT, (yyvsp[-1].string), NULL);
1590 printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); 1623 printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
1591;} 1624;}
1592 break; 1625 break;
@@ -1609,14 +1642,14 @@ yyreduce:
1609 case 78: 1642 case 78:
1610 1643
1611 { 1644 {
1612 current_entry->sym->help = yyvsp[0].string; 1645 current_entry->sym->help = (yyvsp[0].string);
1613;} 1646;}
1614 break; 1647 break;
1615 1648
1616 case 82: 1649 case 82:
1617 1650
1618 { 1651 {
1619 menu_add_dep(yyvsp[-1].expr); 1652 menu_add_dep((yyvsp[-1].expr));
1620 printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); 1653 printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
1621;} 1654;}
1622 break; 1655 break;
@@ -1624,7 +1657,7 @@ yyreduce:
1624 case 83: 1657 case 83:
1625 1658
1626 { 1659 {
1627 menu_add_dep(yyvsp[-1].expr); 1660 menu_add_dep((yyvsp[-1].expr));
1628 printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno()); 1661 printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
1629;} 1662;}
1630 break; 1663 break;
@@ -1632,7 +1665,7 @@ yyreduce:
1632 case 84: 1665 case 84:
1633 1666
1634 { 1667 {
1635 menu_add_dep(yyvsp[-1].expr); 1668 menu_add_dep((yyvsp[-1].expr));
1636 printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno()); 1669 printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
1637;} 1670;}
1638 break; 1671 break;
@@ -1640,84 +1673,84 @@ yyreduce:
1640 case 86: 1673 case 86:
1641 1674
1642 { 1675 {
1643 menu_add_prompt(P_PROMPT, yyvsp[-1].string, yyvsp[0].expr); 1676 menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr));
1644;} 1677;}
1645 break; 1678 break;
1646 1679
1647 case 89: 1680 case 89:
1648 1681
1649 { yyval.token = T_ENDMENU; ;} 1682 { (yyval.token) = T_ENDMENU; ;}
1650 break; 1683 break;
1651 1684
1652 case 90: 1685 case 90:
1653 1686
1654 { yyval.token = T_ENDCHOICE; ;} 1687 { (yyval.token) = T_ENDCHOICE; ;}
1655 break; 1688 break;
1656 1689
1657 case 91: 1690 case 91:
1658 1691
1659 { yyval.token = T_ENDIF; ;} 1692 { (yyval.token) = T_ENDIF; ;}
1660 break; 1693 break;
1661 1694
1662 case 94: 1695 case 94:
1663 1696
1664 { yyval.expr = NULL; ;} 1697 { (yyval.expr) = NULL; ;}
1665 break; 1698 break;
1666 1699
1667 case 95: 1700 case 95:
1668 1701
1669 { yyval.expr = yyvsp[0].expr; ;} 1702 { (yyval.expr) = (yyvsp[0].expr); ;}
1670 break; 1703 break;
1671 1704
1672 case 96: 1705 case 96:
1673 1706
1674 { yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;} 1707 { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;}
1675 break; 1708 break;
1676 1709
1677 case 97: 1710 case 97:
1678 1711
1679 { yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;} 1712 { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;}
1680 break; 1713 break;
1681 1714
1682 case 98: 1715 case 98:
1683 1716
1684 { yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;} 1717 { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;}
1685 break; 1718 break;
1686 1719
1687 case 99: 1720 case 99:
1688 1721
1689 { yyval.expr = yyvsp[-1].expr; ;} 1722 { (yyval.expr) = (yyvsp[-1].expr); ;}
1690 break; 1723 break;
1691 1724
1692 case 100: 1725 case 100:
1693 1726
1694 { yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;} 1727 { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;}
1695 break; 1728 break;
1696 1729
1697 case 101: 1730 case 101:
1698 1731
1699 { yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;} 1732 { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;}
1700 break; 1733 break;
1701 1734
1702 case 102: 1735 case 102:
1703 1736
1704 { yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;} 1737 { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;}
1705 break; 1738 break;
1706 1739
1707 case 103: 1740 case 103:
1708 1741
1709 { yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;} 1742 { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;}
1710 break; 1743 break;
1711 1744
1712 case 104: 1745 case 104:
1713 1746
1714 { yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ;} 1747 { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;}
1715 break; 1748 break;
1716 1749
1717 1750
1718 } 1751 }
1719 1752
1720/* Line 999 of yacc.c. */ 1753/* Line 1037 of yacc.c. */
1721 1754
1722 1755
1723 yyvsp -= yylen; 1756 yyvsp -= yylen;
@@ -1759,18 +1792,33 @@ yyerrlab:
1759 { 1792 {
1760 YYSIZE_T yysize = 0; 1793 YYSIZE_T yysize = 0;
1761 int yytype = YYTRANSLATE (yychar); 1794 int yytype = YYTRANSLATE (yychar);
1795 const char* yyprefix;
1762 char *yymsg; 1796 char *yymsg;
1763 int yyx, yycount; 1797 int yyx;
1764 1798
1765 yycount = 0;
1766 /* Start YYX at -YYN if negative to avoid negative indexes in 1799 /* Start YYX at -YYN if negative to avoid negative indexes in
1767 YYCHECK. */ 1800 YYCHECK. */
1768 for (yyx = yyn < 0 ? -yyn : 0; 1801 int yyxbegin = yyn < 0 ? -yyn : 0;
1769 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) 1802
1803 /* Stay within bounds of both yycheck and yytname. */
1804 int yychecklim = YYLAST - yyn;
1805 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1806 int yycount = 0;
1807
1808 yyprefix = ", expecting ";
1809 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1770 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 1810 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1771 yysize += yystrlen (yytname[yyx]) + 15, yycount++; 1811 {
1772 yysize += yystrlen ("syntax error, unexpected ") + 1; 1812 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
1773 yysize += yystrlen (yytname[yytype]); 1813 yycount += 1;
1814 if (yycount == 5)
1815 {
1816 yysize = 0;
1817 break;
1818 }
1819 }
1820 yysize += (sizeof ("syntax error, unexpected ")
1821 + yystrlen (yytname[yytype]));
1774 yymsg = (char *) YYSTACK_ALLOC (yysize); 1822 yymsg = (char *) YYSTACK_ALLOC (yysize);
1775 if (yymsg != 0) 1823 if (yymsg != 0)
1776 { 1824 {
@@ -1779,16 +1827,13 @@ yyerrlab:
1779 1827
1780 if (yycount < 5) 1828 if (yycount < 5)
1781 { 1829 {
1782 yycount = 0; 1830 yyprefix = ", expecting ";
1783 for (yyx = yyn < 0 ? -yyn : 0; 1831 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1784 yyx < (int) (sizeof (yytname) / sizeof (char *));
1785 yyx++)
1786 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 1832 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1787 { 1833 {
1788 const char *yyq = ! yycount ? ", expecting " : " or "; 1834 yyp = yystpcpy (yyp, yyprefix);
1789 yyp = yystpcpy (yyp, yyq);
1790 yyp = yystpcpy (yyp, yytname[yyx]); 1835 yyp = yystpcpy (yyp, yytname[yyx]);
1791 yycount++; 1836 yyprefix = " or ";
1792 } 1837 }
1793 } 1838 }
1794 yyerror (yymsg); 1839 yyerror (yymsg);
@@ -1806,38 +1851,57 @@ yyerrlab:
1806 1851
1807 if (yyerrstatus == 3) 1852 if (yyerrstatus == 3)
1808 { 1853 {
1809 /* If just tried and failed to reuse lookahead token after an 1854 /* If just tried and failed to reuse look-ahead token after an
1810 error, discard it. */ 1855 error, discard it. */
1811 1856
1812 /* Return failure if at end of input. */ 1857 if (yychar <= YYEOF)
1813 if (yychar == YYEOF)
1814 { 1858 {
1815 /* Pop the error token. */ 1859 /* If at end of input, pop the error token,
1816 YYPOPSTACK; 1860 then the rest of the stack, then return failure. */
1817 /* Pop the rest of the stack. */ 1861 if (yychar == YYEOF)
1818 while (yyss < yyssp) 1862 for (;;)
1819 { 1863 {
1820 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 1864
1821 yydestruct (yystos[*yyssp], yyvsp); 1865 YYPOPSTACK;
1822 YYPOPSTACK; 1866 if (yyssp == yyss)
1823 } 1867 YYABORT;
1824 YYABORT; 1868 yydestruct ("Error: popping",
1869 yystos[*yyssp], yyvsp);
1870 }
1825 } 1871 }
1826 1872 else
1827 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); 1873 {
1828 yydestruct (yytoken, &yylval); 1874 yydestruct ("Error: discarding", yytoken, &yylval);
1829 yychar = YYEMPTY; 1875 yychar = YYEMPTY;
1830 1876 }
1831 } 1877 }
1832 1878
1833 /* Else will try to reuse lookahead token after shifting the error 1879 /* Else will try to reuse look-ahead token after shifting the error
1834 token. */ 1880 token. */
1835 goto yyerrlab1; 1881 goto yyerrlab1;
1836 1882
1837 1883
1838/*----------------------------------------------------. 1884/*---------------------------------------------------.
1839| yyerrlab1 -- error raised explicitly by an action. | 1885| yyerrorlab -- error raised explicitly by YYERROR. |
1840`----------------------------------------------------*/ 1886`---------------------------------------------------*/
1887yyerrorlab:
1888
1889#ifdef __GNUC__
1890 /* Pacify GCC when the user code never invokes YYERROR and the label
1891 yyerrorlab therefore never appears in user code. */
1892 if (0)
1893 goto yyerrorlab;
1894#endif
1895
1896yyvsp -= yylen;
1897 yyssp -= yylen;
1898 yystate = *yyssp;
1899 goto yyerrlab1;
1900
1901
1902/*-------------------------------------------------------------.
1903| yyerrlab1 -- common code for both syntax error and YYERROR. |
1904`-------------------------------------------------------------*/
1841yyerrlab1: 1905yyerrlab1:
1842 yyerrstatus = 3; /* Each real token shifted decrements this. */ 1906 yyerrstatus = 3; /* Each real token shifted decrements this. */
1843 1907
@@ -1859,22 +1923,22 @@ yyerrlab1:
1859 if (yyssp == yyss) 1923 if (yyssp == yyss)
1860 YYABORT; 1924 YYABORT;
1861 1925
1862 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1863 yydestruct (yystos[yystate], yyvsp);
1864 yyvsp--;
1865 yystate = *--yyssp;
1866 1926
1927 yydestruct ("Error: popping", yystos[yystate], yyvsp);
1928 YYPOPSTACK;
1929 yystate = *yyssp;
1867 YY_STACK_PRINT (yyss, yyssp); 1930 YY_STACK_PRINT (yyss, yyssp);
1868 } 1931 }
1869 1932
1870 if (yyn == YYFINAL) 1933 if (yyn == YYFINAL)
1871 YYACCEPT; 1934 YYACCEPT;
1872 1935
1873 YYDPRINTF ((stderr, "Shifting error token, "));
1874
1875 *++yyvsp = yylval; 1936 *++yyvsp = yylval;
1876 1937
1877 1938
1939 /* Shift the error token. */
1940 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1941
1878 yystate = yyn; 1942 yystate = yyn;
1879 goto yynewstate; 1943 goto yynewstate;
1880 1944
@@ -1890,6 +1954,9 @@ yyacceptlab:
1890| yyabortlab -- YYABORT comes here. | 1954| yyabortlab -- YYABORT comes here. |
1891`-----------------------------------*/ 1955`-----------------------------------*/
1892yyabortlab: 1956yyabortlab:
1957 yydestruct ("Error: discarding lookahead",
1958 yytoken, &yylval);
1959 yychar = YYEMPTY;
1893 yyresult = 1; 1960 yyresult = 1;
1894 goto yyreturn; 1961 goto yyreturn;
1895 1962
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 1e214e9c1d31..43021d436baf 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -11,6 +11,11 @@
11#include <string.h> 11#include <string.h>
12#include <stdbool.h> 12#include <stdbool.h>
13 13
14#define LKC_DIRECT_LINK
15#include "lkc.h"
16
17#include "zconf.hash.c"
18
14#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) 19#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
15 20
16#define PRINTD 0x0001 21#define PRINTD 0x0001
@@ -88,10 +93,6 @@ static struct menu *current_menu, *current_entry;
88%type <expr> if_expr 93%type <expr> if_expr
89%type <token> end 94%type <token> end
90 95
91%{
92#define LKC_DIRECT_LINK
93#include "lkc.h"
94%}
95%% 96%%
96input: /* empty */ 97input: /* empty */
97 | input block 98 | input block