diff options
| -rw-r--r-- | scripts/kconfig/Makefile | 28 | ||||
| -rw-r--r-- | scripts/kconfig/expr.c | 278 | ||||
| -rw-r--r-- | scripts/kconfig/expr.h | 4 | ||||
| -rw-r--r-- | scripts/kconfig/symbol.c | 4 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.l | 11 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.lex.c_shipped | 314 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.tab.c_shipped | 524 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.y | 9 |
8 files changed, 666 insertions, 506 deletions
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index f52abae0ec5f..aceaaed09811 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile | |||
| @@ -86,7 +86,7 @@ $(simple-targets): $(obj)/conf | |||
| 86 | PHONY += oldnoconfig savedefconfig defconfig | 86 | PHONY += oldnoconfig savedefconfig defconfig |
| 87 | 87 | ||
| 88 | # oldnoconfig is an alias of olddefconfig, because people already are dependent | 88 | # oldnoconfig is an alias of olddefconfig, because people already are dependent |
| 89 | # on its behavior(sets new symbols to their default value but not 'n') with the | 89 | # on its behavior (sets new symbols to their default value but not 'n') with the |
| 90 | # counter-intuitive name. | 90 | # counter-intuitive name. |
| 91 | oldnoconfig: olddefconfig | 91 | oldnoconfig: olddefconfig |
| 92 | 92 | ||
| @@ -126,10 +126,11 @@ tinyconfig: | |||
| 126 | # Help text used by make help | 126 | # Help text used by make help |
| 127 | help: | 127 | help: |
| 128 | @echo ' config - Update current config utilising a line-oriented program' | 128 | @echo ' config - Update current config utilising a line-oriented program' |
| 129 | @echo ' nconfig - Update current config utilising a ncurses menu based program' | 129 | @echo ' nconfig - Update current config utilising a ncurses menu based' |
| 130 | @echo ' program' | ||
| 130 | @echo ' menuconfig - Update current config utilising a menu based program' | 131 | @echo ' menuconfig - Update current config utilising a menu based program' |
| 131 | @echo ' xconfig - Update current config utilising a QT based front-end' | 132 | @echo ' xconfig - Update current config utilising a Qt based front-end' |
| 132 | @echo ' gconfig - Update current config utilising a GTK based front-end' | 133 | @echo ' gconfig - Update current config utilising a GTK+ based front-end' |
| 133 | @echo ' oldconfig - Update current config utilising a provided .config as base' | 134 | @echo ' oldconfig - Update current config utilising a provided .config as base' |
| 134 | @echo ' localmodconfig - Update current config disabling modules not loaded' | 135 | @echo ' localmodconfig - Update current config disabling modules not loaded' |
| 135 | @echo ' localyesconfig - Update current config converting local mods to core' | 136 | @echo ' localyesconfig - Update current config converting local mods to core' |
| @@ -142,7 +143,8 @@ help: | |||
| 142 | @echo ' alldefconfig - New config with all symbols set to default' | 143 | @echo ' alldefconfig - New config with all symbols set to default' |
| 143 | @echo ' randconfig - New config with random answer to all options' | 144 | @echo ' randconfig - New config with random answer to all options' |
| 144 | @echo ' listnewconfig - List new options' | 145 | @echo ' listnewconfig - List new options' |
| 145 | @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their default value' | 146 | @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their' |
| 147 | @echo ' default value' | ||
| 146 | @echo ' kvmconfig - Enable additional options for kvm guest kernel support' | 148 | @echo ' kvmconfig - Enable additional options for kvm guest kernel support' |
| 147 | @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support' | 149 | @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support' |
| 148 | @echo ' tinyconfig - Configure the tiniest possible kernel' | 150 | @echo ' tinyconfig - Configure the tiniest possible kernel' |
| @@ -163,9 +165,9 @@ HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \ | |||
| 163 | # mconf: Used for the menuconfig target | 165 | # mconf: Used for the menuconfig target |
| 164 | # Utilizes the lxdialog package | 166 | # Utilizes the lxdialog package |
| 165 | # qconf: Used for the xconfig target | 167 | # qconf: Used for the xconfig target |
| 166 | # Based on QT which needs to be installed to compile it | 168 | # Based on Qt which needs to be installed to compile it |
| 167 | # gconf: Used for the gconfig target | 169 | # gconf: Used for the gconfig target |
| 168 | # Based on GTK which needs to be installed to compile it | 170 | # Based on GTK+ which needs to be installed to compile it |
| 169 | # object files used by all kconfig flavours | 171 | # object files used by all kconfig flavours |
| 170 | 172 | ||
| 171 | lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o | 173 | lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o |
| @@ -222,11 +224,11 @@ ifeq ($(MAKECMDGOALS),xconfig) | |||
| 222 | $(obj)/.tmp_qtcheck: $(src)/Makefile | 224 | $(obj)/.tmp_qtcheck: $(src)/Makefile |
| 223 | -include $(obj)/.tmp_qtcheck | 225 | -include $(obj)/.tmp_qtcheck |
| 224 | 226 | ||
| 225 | # QT needs some extra effort... | 227 | # Qt needs some extra effort... |
| 226 | $(obj)/.tmp_qtcheck: | 228 | $(obj)/.tmp_qtcheck: |
| 227 | @set -e; $(kecho) " CHECK qt"; dir=""; pkg=""; \ | 229 | @set -e; $(kecho) " CHECK qt"; dir=""; pkg=""; \ |
| 228 | if ! pkg-config --exists QtCore 2> /dev/null; then \ | 230 | if ! pkg-config --exists QtCore 2> /dev/null; then \ |
| 229 | echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \ | 231 | echo "* Unable to find the Qt4 tool qmake. Trying to use Qt3"; \ |
| 230 | pkg-config --exists qt 2> /dev/null && pkg=qt; \ | 232 | pkg-config --exists qt 2> /dev/null && pkg=qt; \ |
| 231 | pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \ | 233 | pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \ |
| 232 | if [ -n "$$pkg" ]; then \ | 234 | if [ -n "$$pkg" ]; then \ |
| @@ -240,8 +242,8 @@ $(obj)/.tmp_qtcheck: | |||
| 240 | done; \ | 242 | done; \ |
| 241 | if [ -z "$$dir" ]; then \ | 243 | if [ -z "$$dir" ]; then \ |
| 242 | echo >&2 "*"; \ | 244 | echo >&2 "*"; \ |
| 243 | echo >&2 "* Unable to find any QT installation. Please make sure that"; \ | 245 | echo >&2 "* Unable to find any Qt installation. Please make sure that"; \ |
| 244 | echo >&2 "* the QT4 or QT3 development package is correctly installed and"; \ | 246 | echo >&2 "* the Qt4 or Qt3 development package is correctly installed and"; \ |
| 245 | echo >&2 "* either qmake can be found or install pkg-config or set"; \ | 247 | echo >&2 "* either qmake can be found or install pkg-config or set"; \ |
| 246 | echo >&2 "* the QTDIR environment variable to the correct location."; \ | 248 | echo >&2 "* the QTDIR environment variable to the correct location."; \ |
| 247 | echo >&2 "*"; \ | 249 | echo >&2 "*"; \ |
| @@ -278,7 +280,7 @@ $(obj)/gconf.o: $(obj)/.tmp_gtkcheck | |||
| 278 | ifeq ($(MAKECMDGOALS),gconfig) | 280 | ifeq ($(MAKECMDGOALS),gconfig) |
| 279 | -include $(obj)/.tmp_gtkcheck | 281 | -include $(obj)/.tmp_gtkcheck |
| 280 | 282 | ||
| 281 | # GTK needs some extra effort, too... | 283 | # GTK+ needs some extra effort, too... |
| 282 | $(obj)/.tmp_gtkcheck: | 284 | $(obj)/.tmp_gtkcheck: |
| 283 | @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \ | 285 | @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \ |
| 284 | if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \ | 286 | if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \ |
| @@ -309,7 +311,7 @@ quiet_cmd_moc = MOC $@ | |||
| 309 | $(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck | 311 | $(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck |
| 310 | $(call cmd,moc) | 312 | $(call cmd,moc) |
| 311 | 313 | ||
| 312 | # Extract gconf menu items for I18N support | 314 | # Extract gconf menu items for i18n support |
| 313 | $(obj)/gconf.glade.h: $(obj)/gconf.glade | 315 | $(obj)/gconf.glade.h: $(obj)/gconf.glade |
| 314 | $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \ | 316 | $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \ |
| 315 | $(obj)/gconf.glade | 317 | $(obj)/gconf.glade |
diff --git a/scripts/kconfig/expr.c b/scripts/kconfig/expr.c index fb0a2a286dca..667d1aa23711 100644 --- a/scripts/kconfig/expr.c +++ b/scripts/kconfig/expr.c | |||
| @@ -13,9 +13,6 @@ | |||
| 13 | 13 | ||
| 14 | static int expr_eq(struct expr *e1, struct expr *e2); | 14 | static int expr_eq(struct expr *e1, struct expr *e2); |
| 15 | static struct expr *expr_eliminate_yn(struct expr *e); | 15 | static struct expr *expr_eliminate_yn(struct expr *e); |
| 16 | static struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2); | ||
| 17 | static struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2); | ||
| 18 | static void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2); | ||
| 19 | 16 | ||
| 20 | struct expr *expr_alloc_symbol(struct symbol *sym) | 17 | struct expr *expr_alloc_symbol(struct symbol *sym) |
| 21 | { | 18 | { |
| @@ -82,6 +79,10 @@ struct expr *expr_copy(const struct expr *org) | |||
| 82 | e->left.expr = expr_copy(org->left.expr); | 79 | e->left.expr = expr_copy(org->left.expr); |
| 83 | break; | 80 | break; |
| 84 | case E_EQUAL: | 81 | case E_EQUAL: |
| 82 | case E_GEQ: | ||
| 83 | case E_GTH: | ||
| 84 | case E_LEQ: | ||
| 85 | case E_LTH: | ||
| 85 | case E_UNEQUAL: | 86 | case E_UNEQUAL: |
| 86 | e->left.sym = org->left.sym; | 87 | e->left.sym = org->left.sym; |
| 87 | e->right.sym = org->right.sym; | 88 | e->right.sym = org->right.sym; |
| @@ -114,6 +115,10 @@ void expr_free(struct expr *e) | |||
| 114 | expr_free(e->left.expr); | 115 | expr_free(e->left.expr); |
| 115 | return; | 116 | return; |
| 116 | case E_EQUAL: | 117 | case E_EQUAL: |
| 118 | case E_GEQ: | ||
| 119 | case E_GTH: | ||
| 120 | case E_LEQ: | ||
| 121 | case E_LTH: | ||
| 117 | case E_UNEQUAL: | 122 | case E_UNEQUAL: |
| 118 | break; | 123 | break; |
| 119 | case E_OR: | 124 | case E_OR: |
| @@ -200,6 +205,10 @@ static int expr_eq(struct expr *e1, struct expr *e2) | |||
| 200 | return 0; | 205 | return 0; |
| 201 | switch (e1->type) { | 206 | switch (e1->type) { |
| 202 | case E_EQUAL: | 207 | case E_EQUAL: |
| 208 | case E_GEQ: | ||
| 209 | case E_GTH: | ||
| 210 | case E_LEQ: | ||
| 211 | case E_LTH: | ||
| 203 | case E_UNEQUAL: | 212 | case E_UNEQUAL: |
| 204 | return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym; | 213 | return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym; |
| 205 | case E_SYMBOL: | 214 | case E_SYMBOL: |
| @@ -559,62 +568,6 @@ static void expr_eliminate_dups1(enum expr_type type, struct expr **ep1, struct | |||
| 559 | #undef e2 | 568 | #undef e2 |
| 560 | } | 569 | } |
| 561 | 570 | ||
| 562 | static void expr_eliminate_dups2(enum expr_type type, struct expr **ep1, struct expr **ep2) | ||
| 563 | { | ||
| 564 | #define e1 (*ep1) | ||
| 565 | #define e2 (*ep2) | ||
| 566 | struct expr *tmp, *tmp1, *tmp2; | ||
| 567 | |||
| 568 | if (e1->type == type) { | ||
| 569 | expr_eliminate_dups2(type, &e1->left.expr, &e2); | ||
| 570 | expr_eliminate_dups2(type, &e1->right.expr, &e2); | ||
| 571 | return; | ||
| 572 | } | ||
| 573 | if (e2->type == type) { | ||
| 574 | expr_eliminate_dups2(type, &e1, &e2->left.expr); | ||
| 575 | expr_eliminate_dups2(type, &e1, &e2->right.expr); | ||
| 576 | } | ||
| 577 | if (e1 == e2) | ||
| 578 | return; | ||
| 579 | |||
| 580 | switch (e1->type) { | ||
| 581 | case E_OR: | ||
| 582 | expr_eliminate_dups2(e1->type, &e1, &e1); | ||
| 583 | // (FOO || BAR) && (!FOO && !BAR) -> n | ||
| 584 | tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); | ||
| 585 | tmp2 = expr_copy(e2); | ||
| 586 | tmp = expr_extract_eq_and(&tmp1, &tmp2); | ||
| 587 | if (expr_is_yes(tmp1)) { | ||
| 588 | expr_free(e1); | ||
| 589 | e1 = expr_alloc_symbol(&symbol_no); | ||
| 590 | trans_count++; | ||
| 591 | } | ||
| 592 | expr_free(tmp2); | ||
| 593 | expr_free(tmp1); | ||
| 594 | expr_free(tmp); | ||
| 595 | break; | ||
| 596 | case E_AND: | ||
| 597 | expr_eliminate_dups2(e1->type, &e1, &e1); | ||
| 598 | // (FOO && BAR) || (!FOO || !BAR) -> y | ||
| 599 | tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); | ||
| 600 | tmp2 = expr_copy(e2); | ||
| 601 | tmp = expr_extract_eq_or(&tmp1, &tmp2); | ||
| 602 | if (expr_is_no(tmp1)) { | ||
| 603 | expr_free(e1); | ||
| 604 | e1 = expr_alloc_symbol(&symbol_yes); | ||
| 605 | trans_count++; | ||
| 606 | } | ||
| 607 | expr_free(tmp2); | ||
| 608 | expr_free(tmp1); | ||
| 609 | expr_free(tmp); | ||
| 610 | break; | ||
| 611 | default: | ||
| 612 | ; | ||
| 613 | } | ||
| 614 | #undef e1 | ||
| 615 | #undef e2 | ||
| 616 | } | ||
| 617 | |||
| 618 | struct expr *expr_eliminate_dups(struct expr *e) | 571 | struct expr *expr_eliminate_dups(struct expr *e) |
| 619 | { | 572 | { |
| 620 | int oldcount; | 573 | int oldcount; |
| @@ -627,7 +580,6 @@ struct expr *expr_eliminate_dups(struct expr *e) | |||
| 627 | switch (e->type) { | 580 | switch (e->type) { |
| 628 | case E_OR: case E_AND: | 581 | case E_OR: case E_AND: |
| 629 | expr_eliminate_dups1(e->type, &e, &e); | 582 | expr_eliminate_dups1(e->type, &e, &e); |
| 630 | expr_eliminate_dups2(e->type, &e, &e); | ||
| 631 | default: | 583 | default: |
| 632 | ; | 584 | ; |
| 633 | } | 585 | } |
| @@ -647,6 +599,10 @@ struct expr *expr_transform(struct expr *e) | |||
| 647 | return NULL; | 599 | return NULL; |
| 648 | switch (e->type) { | 600 | switch (e->type) { |
| 649 | case E_EQUAL: | 601 | case E_EQUAL: |
| 602 | case E_GEQ: | ||
| 603 | case E_GTH: | ||
| 604 | case E_LEQ: | ||
| 605 | case E_LTH: | ||
| 650 | case E_UNEQUAL: | 606 | case E_UNEQUAL: |
| 651 | case E_SYMBOL: | 607 | case E_SYMBOL: |
| 652 | case E_LIST: | 608 | case E_LIST: |
| @@ -719,6 +675,22 @@ struct expr *expr_transform(struct expr *e) | |||
| 719 | e = tmp; | 675 | e = tmp; |
| 720 | e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; | 676 | e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; |
| 721 | break; | 677 | break; |
| 678 | case E_LEQ: | ||
| 679 | case E_GEQ: | ||
| 680 | // !a<='x' -> a>'x' | ||
| 681 | tmp = e->left.expr; | ||
| 682 | free(e); | ||
| 683 | e = tmp; | ||
| 684 | e->type = e->type == E_LEQ ? E_GTH : E_LTH; | ||
| 685 | break; | ||
| 686 | case E_LTH: | ||
| 687 | case E_GTH: | ||
| 688 | // !a<'x' -> a>='x' | ||
| 689 | tmp = e->left.expr; | ||
| 690 | free(e); | ||
| 691 | e = tmp; | ||
| 692 | e->type = e->type == E_LTH ? E_GEQ : E_LEQ; | ||
| 693 | break; | ||
| 722 | case E_OR: | 694 | case E_OR: |
| 723 | // !(a || b) -> !a && !b | 695 | // !(a || b) -> !a && !b |
| 724 | tmp = e->left.expr; | 696 | tmp = e->left.expr; |
| @@ -789,6 +761,10 @@ int expr_contains_symbol(struct expr *dep, struct symbol *sym) | |||
| 789 | case E_SYMBOL: | 761 | case E_SYMBOL: |
| 790 | return dep->left.sym == sym; | 762 | return dep->left.sym == sym; |
| 791 | case E_EQUAL: | 763 | case E_EQUAL: |
| 764 | case E_GEQ: | ||
| 765 | case E_GTH: | ||
| 766 | case E_LEQ: | ||
| 767 | case E_LTH: | ||
| 792 | case E_UNEQUAL: | 768 | case E_UNEQUAL: |
| 793 | return dep->left.sym == sym || | 769 | return dep->left.sym == sym || |
| 794 | dep->right.sym == sym; | 770 | dep->right.sym == sym; |
| @@ -829,57 +805,6 @@ bool expr_depends_symbol(struct expr *dep, struct symbol *sym) | |||
| 829 | return false; | 805 | return false; |
| 830 | } | 806 | } |
| 831 | 807 | ||
| 832 | static struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2) | ||
| 833 | { | ||
| 834 | struct expr *tmp = NULL; | ||
| 835 | expr_extract_eq(E_AND, &tmp, ep1, ep2); | ||
| 836 | if (tmp) { | ||
| 837 | *ep1 = expr_eliminate_yn(*ep1); | ||
| 838 | *ep2 = expr_eliminate_yn(*ep2); | ||
| 839 | } | ||
| 840 | return tmp; | ||
| 841 | } | ||
| 842 | |||
| 843 | static struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2) | ||
| 844 | { | ||
| 845 | struct expr *tmp = NULL; | ||
| 846 | expr_extract_eq(E_OR, &tmp, ep1, ep2); | ||
| 847 | if (tmp) { | ||
| 848 | *ep1 = expr_eliminate_yn(*ep1); | ||
| 849 | *ep2 = expr_eliminate_yn(*ep2); | ||
| 850 | } | ||
| 851 | return tmp; | ||
| 852 | } | ||
| 853 | |||
| 854 | static void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2) | ||
| 855 | { | ||
| 856 | #define e1 (*ep1) | ||
| 857 | #define e2 (*ep2) | ||
| 858 | if (e1->type == type) { | ||
| 859 | expr_extract_eq(type, ep, &e1->left.expr, &e2); | ||
| 860 | expr_extract_eq(type, ep, &e1->right.expr, &e2); | ||
| 861 | return; | ||
| 862 | } | ||
| 863 | if (e2->type == type) { | ||
| 864 | expr_extract_eq(type, ep, ep1, &e2->left.expr); | ||
| 865 | expr_extract_eq(type, ep, ep1, &e2->right.expr); | ||
| 866 | return; | ||
| 867 | } | ||
| 868 | if (expr_eq(e1, e2)) { | ||
| 869 | *ep = *ep ? expr_alloc_two(type, *ep, e1) : e1; | ||
| 870 | expr_free(e2); | ||
| 871 | if (type == E_AND) { | ||
| 872 | e1 = expr_alloc_symbol(&symbol_yes); | ||
| 873 | e2 = expr_alloc_symbol(&symbol_yes); | ||
| 874 | } else if (type == E_OR) { | ||
| 875 | e1 = expr_alloc_symbol(&symbol_no); | ||
| 876 | e2 = expr_alloc_symbol(&symbol_no); | ||
| 877 | } | ||
| 878 | } | ||
| 879 | #undef e1 | ||
| 880 | #undef e2 | ||
| 881 | } | ||
| 882 | |||
| 883 | struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym) | 808 | struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym) |
| 884 | { | 809 | { |
| 885 | struct expr *e1, *e2; | 810 | struct expr *e1, *e2; |
| @@ -914,6 +839,10 @@ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symb | |||
| 914 | case E_NOT: | 839 | case E_NOT: |
| 915 | return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym); | 840 | return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym); |
| 916 | case E_UNEQUAL: | 841 | case E_UNEQUAL: |
| 842 | case E_LTH: | ||
| 843 | case E_LEQ: | ||
| 844 | case E_GTH: | ||
| 845 | case E_GEQ: | ||
| 917 | case E_EQUAL: | 846 | case E_EQUAL: |
| 918 | if (type == E_EQUAL) { | 847 | if (type == E_EQUAL) { |
| 919 | if (sym == &symbol_yes) | 848 | if (sym == &symbol_yes) |
| @@ -941,10 +870,57 @@ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symb | |||
| 941 | return NULL; | 870 | return NULL; |
| 942 | } | 871 | } |
| 943 | 872 | ||
| 873 | enum string_value_kind { | ||
| 874 | k_string, | ||
| 875 | k_signed, | ||
| 876 | k_unsigned, | ||
| 877 | k_invalid | ||
| 878 | }; | ||
| 879 | |||
| 880 | union string_value { | ||
| 881 | unsigned long long u; | ||
| 882 | signed long long s; | ||
| 883 | }; | ||
| 884 | |||
| 885 | static enum string_value_kind expr_parse_string(const char *str, | ||
| 886 | enum symbol_type type, | ||
| 887 | union string_value *val) | ||
| 888 | { | ||
| 889 | char *tail; | ||
| 890 | enum string_value_kind kind; | ||
| 891 | |||
| 892 | errno = 0; | ||
| 893 | switch (type) { | ||
| 894 | case S_BOOLEAN: | ||
| 895 | case S_TRISTATE: | ||
| 896 | return k_string; | ||
| 897 | case S_INT: | ||
| 898 | val->s = strtoll(str, &tail, 10); | ||
| 899 | kind = k_signed; | ||
| 900 | break; | ||
| 901 | case S_HEX: | ||
| 902 | val->u = strtoull(str, &tail, 16); | ||
| 903 | kind = k_unsigned; | ||
| 904 | break; | ||
| 905 | case S_STRING: | ||
| 906 | case S_UNKNOWN: | ||
| 907 | val->s = strtoll(str, &tail, 0); | ||
| 908 | kind = k_signed; | ||
| 909 | break; | ||
| 910 | default: | ||
| 911 | return k_invalid; | ||
| 912 | } | ||
| 913 | return !errno && !*tail && tail > str && isxdigit(tail[-1]) | ||
| 914 | ? kind : k_string; | ||
| 915 | } | ||
| 916 | |||
| 944 | tristate expr_calc_value(struct expr *e) | 917 | tristate expr_calc_value(struct expr *e) |
| 945 | { | 918 | { |
| 946 | tristate val1, val2; | 919 | tristate val1, val2; |
| 947 | const char *str1, *str2; | 920 | const char *str1, *str2; |
| 921 | enum string_value_kind k1 = k_string, k2 = k_string; | ||
| 922 | union string_value lval = {}, rval = {}; | ||
| 923 | int res; | ||
| 948 | 924 | ||
| 949 | if (!e) | 925 | if (!e) |
| 950 | return yes; | 926 | return yes; |
| @@ -965,21 +941,57 @@ tristate expr_calc_value(struct expr *e) | |||
| 965 | val1 = expr_calc_value(e->left.expr); | 941 | val1 = expr_calc_value(e->left.expr); |
| 966 | return EXPR_NOT(val1); | 942 | return EXPR_NOT(val1); |
| 967 | case E_EQUAL: | 943 | case E_EQUAL: |
| 968 | sym_calc_value(e->left.sym); | 944 | case E_GEQ: |
| 969 | sym_calc_value(e->right.sym); | 945 | case E_GTH: |
| 970 | str1 = sym_get_string_value(e->left.sym); | 946 | case E_LEQ: |
| 971 | str2 = sym_get_string_value(e->right.sym); | 947 | case E_LTH: |
| 972 | return !strcmp(str1, str2) ? yes : no; | ||
| 973 | case E_UNEQUAL: | 948 | case E_UNEQUAL: |
| 974 | sym_calc_value(e->left.sym); | 949 | break; |
| 975 | sym_calc_value(e->right.sym); | ||
| 976 | str1 = sym_get_string_value(e->left.sym); | ||
| 977 | str2 = sym_get_string_value(e->right.sym); | ||
| 978 | return !strcmp(str1, str2) ? no : yes; | ||
| 979 | default: | 950 | default: |
| 980 | printf("expr_calc_value: %d?\n", e->type); | 951 | printf("expr_calc_value: %d?\n", e->type); |
| 981 | return no; | 952 | return no; |
| 982 | } | 953 | } |
| 954 | |||
| 955 | sym_calc_value(e->left.sym); | ||
| 956 | sym_calc_value(e->right.sym); | ||
| 957 | str1 = sym_get_string_value(e->left.sym); | ||
| 958 | str2 = sym_get_string_value(e->right.sym); | ||
| 959 | |||
| 960 | if (e->left.sym->type != S_STRING || e->right.sym->type != S_STRING) { | ||
| 961 | k1 = expr_parse_string(str1, e->left.sym->type, &lval); | ||
| 962 | k2 = expr_parse_string(str2, e->right.sym->type, &rval); | ||
| 963 | } | ||
| 964 | |||
| 965 | if (k1 == k_string || k2 == k_string) | ||
| 966 | res = strcmp(str1, str2); | ||
| 967 | else if (k1 == k_invalid || k2 == k_invalid) { | ||
| 968 | if (e->type != E_EQUAL && e->type != E_UNEQUAL) { | ||
| 969 | printf("Cannot compare \"%s\" and \"%s\"\n", str1, str2); | ||
| 970 | return no; | ||
| 971 | } | ||
| 972 | res = strcmp(str1, str2); | ||
| 973 | } else if (k1 == k_unsigned || k2 == k_unsigned) | ||
| 974 | res = (lval.u > rval.u) - (lval.u < rval.u); | ||
| 975 | else /* if (k1 == k_signed && k2 == k_signed) */ | ||
| 976 | res = (lval.s > rval.s) - (lval.s < rval.s); | ||
| 977 | |||
| 978 | switch(e->type) { | ||
| 979 | case E_EQUAL: | ||
| 980 | return res ? no : yes; | ||
| 981 | case E_GEQ: | ||
| 982 | return res >= 0 ? yes : no; | ||
| 983 | case E_GTH: | ||
| 984 | return res > 0 ? yes : no; | ||
| 985 | case E_LEQ: | ||
| 986 | return res <= 0 ? yes : no; | ||
| 987 | case E_LTH: | ||
| 988 | return res < 0 ? yes : no; | ||
| 989 | case E_UNEQUAL: | ||
| 990 | return res ? yes : no; | ||
| 991 | default: | ||
| 992 | printf("expr_calc_value: relation %d?\n", e->type); | ||
| 993 | return no; | ||
| 994 | } | ||
| 983 | } | 995 | } |
| 984 | 996 | ||
| 985 | static int expr_compare_type(enum expr_type t1, enum expr_type t2) | 997 | static int expr_compare_type(enum expr_type t1, enum expr_type t2) |
| @@ -987,6 +999,12 @@ static int expr_compare_type(enum expr_type t1, enum expr_type t2) | |||
| 987 | if (t1 == t2) | 999 | if (t1 == t2) |
| 988 | return 0; | 1000 | return 0; |
| 989 | switch (t1) { | 1001 | switch (t1) { |
| 1002 | case E_LEQ: | ||
| 1003 | case E_LTH: | ||
| 1004 | case E_GEQ: | ||
| 1005 | case E_GTH: | ||
| 1006 | if (t2 == E_EQUAL || t2 == E_UNEQUAL) | ||
| 1007 | return 1; | ||
| 990 | case E_EQUAL: | 1008 | case E_EQUAL: |
| 991 | case E_UNEQUAL: | 1009 | case E_UNEQUAL: |
| 992 | if (t2 == E_NOT) | 1010 | if (t2 == E_NOT) |
| @@ -1080,6 +1098,24 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char * | |||
| 1080 | fn(data, NULL, "="); | 1098 | fn(data, NULL, "="); |
| 1081 | fn(data, e->right.sym, e->right.sym->name); | 1099 | fn(data, e->right.sym, e->right.sym->name); |
| 1082 | break; | 1100 | break; |
| 1101 | case E_LEQ: | ||
| 1102 | case E_LTH: | ||
| 1103 | if (e->left.sym->name) | ||
| 1104 | fn(data, e->left.sym, e->left.sym->name); | ||
| 1105 | else | ||
| 1106 | fn(data, NULL, "<choice>"); | ||
| 1107 | fn(data, NULL, e->type == E_LEQ ? "<=" : "<"); | ||
| 1108 | fn(data, e->right.sym, e->right.sym->name); | ||
| 1109 | break; | ||
| 1110 | case E_GEQ: | ||
| 1111 | case E_GTH: | ||
| 1112 | if (e->left.sym->name) | ||
| 1113 | fn(data, e->left.sym, e->left.sym->name); | ||
| 1114 | else | ||
| 1115 | fn(data, NULL, "<choice>"); | ||
| 1116 | fn(data, NULL, e->type == E_LEQ ? ">=" : ">"); | ||
| 1117 | fn(data, e->right.sym, e->right.sym->name); | ||
| 1118 | break; | ||
| 1083 | case E_UNEQUAL: | 1119 | case E_UNEQUAL: |
| 1084 | if (e->left.sym->name) | 1120 | if (e->left.sym->name) |
| 1085 | fn(data, e->left.sym, e->left.sym->name); | 1121 | fn(data, e->left.sym, e->left.sym->name); |
diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h index a2fc96a2bd2c..973b6f733368 100644 --- a/scripts/kconfig/expr.h +++ b/scripts/kconfig/expr.h | |||
| @@ -29,7 +29,9 @@ typedef enum tristate { | |||
| 29 | } tristate; | 29 | } tristate; |
| 30 | 30 | ||
| 31 | enum expr_type { | 31 | enum expr_type { |
| 32 | E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_LIST, E_SYMBOL, E_RANGE | 32 | E_NONE, E_OR, E_AND, E_NOT, |
| 33 | E_EQUAL, E_UNEQUAL, E_LTH, E_LEQ, E_GTH, E_GEQ, | ||
| 34 | E_LIST, E_SYMBOL, E_RANGE | ||
| 33 | }; | 35 | }; |
| 34 | 36 | ||
| 35 | union expr_data { | 37 | union expr_data { |
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c index 6731377f9bb2..70c5ee189dce 100644 --- a/scripts/kconfig/symbol.c +++ b/scripts/kconfig/symbol.c | |||
| @@ -1166,6 +1166,10 @@ static struct symbol *sym_check_expr_deps(struct expr *e) | |||
| 1166 | case E_NOT: | 1166 | case E_NOT: |
| 1167 | return sym_check_expr_deps(e->left.expr); | 1167 | return sym_check_expr_deps(e->left.expr); |
| 1168 | case E_EQUAL: | 1168 | case E_EQUAL: |
| 1169 | case E_GEQ: | ||
| 1170 | case E_GTH: | ||
| 1171 | case E_LEQ: | ||
| 1172 | case E_LTH: | ||
| 1169 | case E_UNEQUAL: | 1173 | case E_UNEQUAL: |
| 1170 | sym = sym_check_deps(e->left.sym); | 1174 | sym = sym_check_deps(e->left.sym); |
| 1171 | if (sym) | 1175 | if (sym) |
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index 6c62d93b4ffb..200a3fe30091 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l | |||
| @@ -122,6 +122,10 @@ n [A-Za-z0-9_] | |||
| 122 | "!" return T_NOT; | 122 | "!" return T_NOT; |
| 123 | "=" return T_EQUAL; | 123 | "=" return T_EQUAL; |
| 124 | "!=" return T_UNEQUAL; | 124 | "!=" return T_UNEQUAL; |
| 125 | "<=" return T_LESS_EQUAL; | ||
| 126 | ">=" return T_GREATER_EQUAL; | ||
| 127 | "<" return T_LESS; | ||
| 128 | ">" return T_GREATER; | ||
| 125 | \"|\' { | 129 | \"|\' { |
| 126 | str = yytext[0]; | 130 | str = yytext[0]; |
| 127 | new_string(); | 131 | new_string(); |
| @@ -141,7 +145,12 @@ n [A-Za-z0-9_] | |||
| 141 | } | 145 | } |
| 142 | #.* /* comment */ | 146 | #.* /* comment */ |
| 143 | \\\n current_file->lineno++; | 147 | \\\n current_file->lineno++; |
| 144 | . | 148 | [[:blank:]]+ |
| 149 | . { | ||
| 150 | fprintf(stderr, | ||
| 151 | "%s:%d:warning: ignoring unsupported character '%c'\n", | ||
| 152 | zconf_curname(), zconf_lineno(), *yytext); | ||
| 153 | } | ||
| 145 | <<EOF>> { | 154 | <<EOF>> { |
| 146 | BEGIN(INITIAL); | 155 | BEGIN(INITIAL); |
| 147 | } | 156 | } |
diff --git a/scripts/kconfig/zconf.lex.c_shipped b/scripts/kconfig/zconf.lex.c_shipped index 349a7f24315b..dd4e86c82521 100644 --- a/scripts/kconfig/zconf.lex.c_shipped +++ b/scripts/kconfig/zconf.lex.c_shipped | |||
| @@ -365,323 +365,354 @@ int zconflineno = 1; | |||
| 365 | 365 | ||
| 366 | extern char *zconftext; | 366 | extern char *zconftext; |
| 367 | #define yytext_ptr zconftext | 367 | #define yytext_ptr zconftext |
| 368 | static yyconst flex_int16_t yy_nxt[][17] = | 368 | static yyconst flex_int16_t yy_nxt[][19] = |
| 369 | { | 369 | { |
| 370 | { | 370 | { |
| 371 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 371 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 372 | 0, 0, 0, 0, 0, 0, 0 | 372 | 0, 0, 0, 0, 0, 0, 0, 0, 0 |
| 373 | }, | 373 | }, |
| 374 | 374 | ||
| 375 | { | 375 | { |
| 376 | 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, | 376 | 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, |
| 377 | 12, 12, 12, 12, 12, 12, 12 | 377 | 12, 12, 12, 12, 12, 12, 12, 12, 12 |
| 378 | }, | 378 | }, |
| 379 | 379 | ||
| 380 | { | 380 | { |
| 381 | 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, | 381 | 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, |
| 382 | 12, 12, 12, 12, 12, 12, 12 | 382 | 12, 12, 12, 12, 12, 12, 12, 12, 12 |
| 383 | }, | 383 | }, |
| 384 | 384 | ||
| 385 | { | 385 | { |
| 386 | 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, | 386 | 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, |
| 387 | 16, 16, 16, 18, 16, 16, 16 | 387 | 16, 16, 16, 18, 16, 16, 16, 16, 16 |
| 388 | }, | 388 | }, |
| 389 | 389 | ||
| 390 | { | 390 | { |
| 391 | 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, | 391 | 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, |
| 392 | 16, 16, 16, 18, 16, 16, 16 | 392 | 16, 16, 16, 18, 16, 16, 16, 16, 16 |
| 393 | 393 | ||
| 394 | }, | 394 | }, |
| 395 | 395 | ||
| 396 | { | 396 | { |
| 397 | 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, | 397 | 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, |
| 398 | 19, 19, 19, 19, 19, 19, 19 | 398 | 19, 19, 19, 19, 19, 19, 19, 19, 19 |
| 399 | }, | 399 | }, |
| 400 | 400 | ||
| 401 | { | 401 | { |
| 402 | 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, | 402 | 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, |
| 403 | 19, 19, 19, 19, 19, 19, 19 | 403 | 19, 19, 19, 19, 19, 19, 19, 19, 19 |
| 404 | }, | 404 | }, |
| 405 | 405 | ||
| 406 | { | 406 | { |
| 407 | 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, | 407 | 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, |
| 408 | 22, 22, 22, 22, 22, 25, 22 | 408 | 22, 22, 22, 22, 22, 22, 22, 25, 22 |
| 409 | }, | 409 | }, |
| 410 | 410 | ||
| 411 | { | 411 | { |
| 412 | 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, | 412 | 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, |
| 413 | 22, 22, 22, 22, 22, 25, 22 | 413 | 22, 22, 22, 22, 22, 22, 22, 25, 22 |
| 414 | }, | 414 | }, |
| 415 | 415 | ||
| 416 | { | 416 | { |
| 417 | 11, 26, 26, 27, 28, 29, 30, 31, 29, 32, | 417 | 11, 26, 27, 28, 29, 30, 31, 32, 30, 33, |
| 418 | 33, 34, 35, 35, 36, 37, 38 | 418 | 34, 35, 36, 36, 37, 38, 39, 40, 41 |
| 419 | 419 | ||
| 420 | }, | 420 | }, |
| 421 | 421 | ||
| 422 | { | 422 | { |
| 423 | 11, 26, 26, 27, 28, 29, 30, 31, 29, 32, | 423 | 11, 26, 27, 28, 29, 30, 31, 32, 30, 33, |
| 424 | 33, 34, 35, 35, 36, 37, 38 | 424 | 34, 35, 36, 36, 37, 38, 39, 40, 41 |
| 425 | }, | 425 | }, |
| 426 | 426 | ||
| 427 | { | 427 | { |
| 428 | -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, | 428 | -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, |
| 429 | -11, -11, -11, -11, -11, -11, -11 | 429 | -11, -11, -11, -11, -11, -11, -11, -11, -11 |
| 430 | }, | 430 | }, |
| 431 | 431 | ||
| 432 | { | 432 | { |
| 433 | 11, -12, -12, -12, -12, -12, -12, -12, -12, -12, | 433 | 11, -12, -12, -12, -12, -12, -12, -12, -12, -12, |
| 434 | -12, -12, -12, -12, -12, -12, -12 | 434 | -12, -12, -12, -12, -12, -12, -12, -12, -12 |
| 435 | }, | 435 | }, |
| 436 | 436 | ||
| 437 | { | 437 | { |
| 438 | 11, -13, 39, 40, -13, -13, 41, -13, -13, -13, | 438 | 11, -13, 42, 43, -13, -13, 44, -13, -13, -13, |
| 439 | -13, -13, -13, -13, -13, -13, -13 | 439 | -13, -13, -13, -13, -13, -13, -13, -13, -13 |
| 440 | }, | 440 | }, |
| 441 | 441 | ||
| 442 | { | 442 | { |
| 443 | 11, -14, -14, -14, -14, -14, -14, -14, -14, -14, | 443 | 11, -14, -14, -14, -14, -14, -14, -14, -14, -14, |
| 444 | -14, -14, -14, -14, -14, -14, -14 | 444 | -14, -14, -14, -14, -14, -14, -14, -14, -14 |
| 445 | 445 | ||
| 446 | }, | 446 | }, |
| 447 | 447 | ||
| 448 | { | 448 | { |
| 449 | 11, 42, 42, 43, 42, 42, 42, 42, 42, 42, | 449 | 11, 45, 45, 46, 45, 45, 45, 45, 45, 45, |
| 450 | 42, 42, 42, 42, 42, 42, 42 | 450 | 45, 45, 45, 45, 45, 45, 45, 45, 45 |
| 451 | }, | 451 | }, |
| 452 | 452 | ||
| 453 | { | 453 | { |
| 454 | 11, -16, -16, -16, -16, -16, -16, -16, -16, -16, | 454 | 11, -16, -16, -16, -16, -16, -16, -16, -16, -16, |
| 455 | -16, -16, -16, -16, -16, -16, -16 | 455 | -16, -16, -16, -16, -16, -16, -16, -16, -16 |
| 456 | }, | 456 | }, |
| 457 | 457 | ||
| 458 | { | 458 | { |
| 459 | 11, -17, -17, -17, -17, -17, -17, -17, -17, -17, | 459 | 11, -17, -17, -17, -17, -17, -17, -17, -17, -17, |
| 460 | -17, -17, -17, -17, -17, -17, -17 | 460 | -17, -17, -17, -17, -17, -17, -17, -17, -17 |
| 461 | }, | 461 | }, |
| 462 | 462 | ||
| 463 | { | 463 | { |
| 464 | 11, -18, -18, -18, -18, -18, -18, -18, -18, -18, | 464 | 11, -18, -18, -18, -18, -18, -18, -18, -18, -18, |
| 465 | -18, -18, -18, 44, -18, -18, -18 | 465 | -18, -18, -18, 47, -18, -18, -18, -18, -18 |
| 466 | }, | 466 | }, |
| 467 | 467 | ||
| 468 | { | 468 | { |
| 469 | 11, 45, 45, -19, 45, 45, 45, 45, 45, 45, | 469 | 11, 48, 48, -19, 48, 48, 48, 48, 48, 48, |
| 470 | 45, 45, 45, 45, 45, 45, 45 | 470 | 48, 48, 48, 48, 48, 48, 48, 48, 48 |
| 471 | 471 | ||
| 472 | }, | 472 | }, |
| 473 | 473 | ||
| 474 | { | 474 | { |
| 475 | 11, -20, 46, 47, -20, -20, -20, -20, -20, -20, | 475 | 11, -20, 49, 50, -20, -20, -20, -20, -20, -20, |
| 476 | -20, -20, -20, -20, -20, -20, -20 | 476 | -20, -20, -20, -20, -20, -20, -20, -20, -20 |
| 477 | }, | 477 | }, |
| 478 | 478 | ||
| 479 | { | 479 | { |
| 480 | 11, 48, -21, -21, 48, 48, 48, 48, 48, 48, | 480 | 11, 51, -21, -21, 51, 51, 51, 51, 51, 51, |
| 481 | 48, 48, 48, 48, 48, 48, 48 | 481 | 51, 51, 51, 51, 51, 51, 51, 51, 51 |
| 482 | }, | 482 | }, |
| 483 | 483 | ||
| 484 | { | 484 | { |
| 485 | 11, 49, 49, 50, 49, -22, 49, 49, -22, 49, | 485 | 11, 52, 52, 53, 52, -22, 52, 52, -22, 52, |
| 486 | 49, 49, 49, 49, 49, -22, 49 | 486 | 52, 52, 52, 52, 52, 52, 52, -22, 52 |
| 487 | }, | 487 | }, |
| 488 | 488 | ||
| 489 | { | 489 | { |
| 490 | 11, -23, -23, -23, -23, -23, -23, -23, -23, -23, | 490 | 11, -23, -23, -23, -23, -23, -23, -23, -23, -23, |
| 491 | -23, -23, -23, -23, -23, -23, -23 | 491 | -23, -23, -23, -23, -23, -23, -23, -23, -23 |
| 492 | }, | 492 | }, |
| 493 | 493 | ||
| 494 | { | 494 | { |
| 495 | 11, -24, -24, -24, -24, -24, -24, -24, -24, -24, | 495 | 11, -24, -24, -24, -24, -24, -24, -24, -24, -24, |
| 496 | -24, -24, -24, -24, -24, -24, -24 | 496 | -24, -24, -24, -24, -24, -24, -24, -24, -24 |
| 497 | 497 | ||
| 498 | }, | 498 | }, |
| 499 | 499 | ||
| 500 | { | 500 | { |
| 501 | 11, 51, 51, 52, 51, 51, 51, 51, 51, 51, | 501 | 11, 54, 54, 55, 54, 54, 54, 54, 54, 54, |
| 502 | 51, 51, 51, 51, 51, 51, 51 | 502 | 54, 54, 54, 54, 54, 54, 54, 54, 54 |
| 503 | }, | 503 | }, |
| 504 | 504 | ||
| 505 | { | 505 | { |
| 506 | 11, -26, -26, -26, -26, -26, -26, -26, -26, -26, | 506 | 11, -26, -26, -26, -26, -26, -26, -26, -26, -26, |
| 507 | -26, -26, -26, -26, -26, -26, -26 | 507 | -26, -26, -26, -26, -26, -26, -26, -26, -26 |
| 508 | }, | 508 | }, |
| 509 | 509 | ||
| 510 | { | 510 | { |
| 511 | 11, -27, -27, -27, -27, -27, -27, -27, -27, -27, | 511 | 11, -27, 56, -27, -27, -27, -27, -27, -27, -27, |
| 512 | -27, -27, -27, -27, -27, -27, -27 | 512 | -27, -27, -27, -27, -27, -27, -27, -27, -27 |
| 513 | }, | 513 | }, |
| 514 | 514 | ||
| 515 | { | 515 | { |
| 516 | 11, -28, -28, -28, -28, -28, -28, -28, -28, -28, | 516 | 11, -28, -28, -28, -28, -28, -28, -28, -28, -28, |
| 517 | -28, -28, -28, -28, 53, -28, -28 | 517 | -28, -28, -28, -28, -28, -28, -28, -28, -28 |
| 518 | }, | 518 | }, |
| 519 | 519 | ||
| 520 | { | 520 | { |
| 521 | 11, -29, -29, -29, -29, -29, -29, -29, -29, -29, | 521 | 11, -29, -29, -29, -29, -29, -29, -29, -29, -29, |
| 522 | -29, -29, -29, -29, -29, -29, -29 | 522 | -29, -29, -29, -29, -29, 57, -29, -29, -29 |
| 523 | 523 | ||
| 524 | }, | 524 | }, |
| 525 | 525 | ||
| 526 | { | 526 | { |
| 527 | 11, 54, 54, -30, 54, 54, 54, 54, 54, 54, | 527 | 11, -30, -30, -30, -30, -30, -30, -30, -30, -30, |
| 528 | 54, 54, 54, 54, 54, 54, 54 | 528 | -30, -30, -30, -30, -30, -30, -30, -30, -30 |
| 529 | }, | 529 | }, |
| 530 | 530 | ||
| 531 | { | 531 | { |
| 532 | 11, -31, -31, -31, -31, -31, -31, 55, -31, -31, | 532 | 11, 58, 58, -31, 58, 58, 58, 58, 58, 58, |
| 533 | -31, -31, -31, -31, -31, -31, -31 | 533 | 58, 58, 58, 58, 58, 58, 58, 58, 58 |
| 534 | }, | 534 | }, |
| 535 | 535 | ||
| 536 | { | 536 | { |
| 537 | 11, -32, -32, -32, -32, -32, -32, -32, -32, -32, | 537 | 11, -32, -32, -32, -32, -32, -32, 59, -32, -32, |
| 538 | -32, -32, -32, -32, -32, -32, -32 | 538 | -32, -32, -32, -32, -32, -32, -32, -32, -32 |
| 539 | }, | 539 | }, |
| 540 | 540 | ||
| 541 | { | 541 | { |
| 542 | 11, -33, -33, -33, -33, -33, -33, -33, -33, -33, | 542 | 11, -33, -33, -33, -33, -33, -33, -33, -33, -33, |
| 543 | -33, -33, -33, -33, -33, -33, -33 | 543 | -33, -33, -33, -33, -33, -33, -33, -33, -33 |
| 544 | }, | 544 | }, |
| 545 | 545 | ||
| 546 | { | 546 | { |
| 547 | 11, -34, -34, -34, -34, -34, -34, -34, -34, -34, | 547 | 11, -34, -34, -34, -34, -34, -34, -34, -34, -34, |
| 548 | -34, 56, 57, 57, -34, -34, -34 | 548 | -34, -34, -34, -34, -34, -34, -34, -34, -34 |
| 549 | 549 | ||
| 550 | }, | 550 | }, |
| 551 | 551 | ||
| 552 | { | 552 | { |
| 553 | 11, -35, -35, -35, -35, -35, -35, -35, -35, -35, | 553 | 11, -35, -35, -35, -35, -35, -35, -35, -35, -35, |
| 554 | -35, 57, 57, 57, -35, -35, -35 | 554 | -35, 60, 61, 61, -35, -35, -35, -35, -35 |
| 555 | }, | 555 | }, |
| 556 | 556 | ||
| 557 | { | 557 | { |
| 558 | 11, -36, -36, -36, -36, -36, -36, -36, -36, -36, | 558 | 11, -36, -36, -36, -36, -36, -36, -36, -36, -36, |
| 559 | -36, -36, -36, -36, -36, -36, -36 | 559 | -36, 61, 61, 61, -36, -36, -36, -36, -36 |
| 560 | }, | 560 | }, |
| 561 | 561 | ||
| 562 | { | 562 | { |
| 563 | 11, -37, -37, 58, -37, -37, -37, -37, -37, -37, | 563 | 11, -37, -37, -37, -37, -37, -37, -37, -37, -37, |
| 564 | -37, -37, -37, -37, -37, -37, -37 | 564 | -37, -37, -37, -37, -37, 62, -37, -37, -37 |
| 565 | }, | 565 | }, |
| 566 | 566 | ||
| 567 | { | 567 | { |
| 568 | 11, -38, -38, -38, -38, -38, -38, -38, -38, -38, | 568 | 11, -38, -38, -38, -38, -38, -38, -38, -38, -38, |
| 569 | -38, -38, -38, -38, -38, -38, 59 | 569 | -38, -38, -38, -38, -38, -38, -38, -38, -38 |
| 570 | }, | 570 | }, |
| 571 | 571 | ||
| 572 | { | 572 | { |
| 573 | 11, -39, 39, 40, -39, -39, 41, -39, -39, -39, | 573 | 11, -39, -39, -39, -39, -39, -39, -39, -39, -39, |
| 574 | -39, -39, -39, -39, -39, -39, -39 | 574 | -39, -39, -39, -39, -39, 63, -39, -39, -39 |
| 575 | 575 | ||
| 576 | }, | 576 | }, |
| 577 | 577 | ||
| 578 | { | 578 | { |
| 579 | 11, -40, -40, -40, -40, -40, -40, -40, -40, -40, | 579 | 11, -40, -40, 64, -40, -40, -40, -40, -40, -40, |
| 580 | -40, -40, -40, -40, -40, -40, -40 | 580 | -40, -40, -40, -40, -40, -40, -40, -40, -40 |
| 581 | }, | 581 | }, |
| 582 | 582 | ||
| 583 | { | 583 | { |
| 584 | 11, 42, 42, 43, 42, 42, 42, 42, 42, 42, | 584 | 11, -41, -41, -41, -41, -41, -41, -41, -41, -41, |
| 585 | 42, 42, 42, 42, 42, 42, 42 | 585 | -41, -41, -41, -41, -41, -41, -41, -41, 65 |
| 586 | }, | 586 | }, |
| 587 | 587 | ||
| 588 | { | 588 | { |
| 589 | 11, 42, 42, 43, 42, 42, 42, 42, 42, 42, | 589 | 11, -42, 42, 43, -42, -42, 44, -42, -42, -42, |
| 590 | 42, 42, 42, 42, 42, 42, 42 | 590 | -42, -42, -42, -42, -42, -42, -42, -42, -42 |
| 591 | }, | 591 | }, |
| 592 | 592 | ||
| 593 | { | 593 | { |
| 594 | 11, -43, -43, -43, -43, -43, -43, -43, -43, -43, | 594 | 11, -43, -43, -43, -43, -43, -43, -43, -43, -43, |
| 595 | -43, -43, -43, -43, -43, -43, -43 | 595 | -43, -43, -43, -43, -43, -43, -43, -43, -43 |
| 596 | }, | 596 | }, |
| 597 | 597 | ||
| 598 | { | 598 | { |
| 599 | 11, -44, -44, -44, -44, -44, -44, -44, -44, -44, | 599 | 11, 45, 45, 46, 45, 45, 45, 45, 45, 45, |
| 600 | -44, -44, -44, 44, -44, -44, -44 | 600 | 45, 45, 45, 45, 45, 45, 45, 45, 45 |
| 601 | 601 | ||
| 602 | }, | 602 | }, |
| 603 | 603 | ||
| 604 | { | 604 | { |
| 605 | 11, 45, 45, -45, 45, 45, 45, 45, 45, 45, | 605 | 11, 45, 45, 46, 45, 45, 45, 45, 45, 45, |
| 606 | 45, 45, 45, 45, 45, 45, 45 | 606 | 45, 45, 45, 45, 45, 45, 45, 45, 45 |
| 607 | }, | 607 | }, |
| 608 | 608 | ||
| 609 | { | 609 | { |
| 610 | 11, -46, 46, 47, -46, -46, -46, -46, -46, -46, | 610 | 11, -46, -46, -46, -46, -46, -46, -46, -46, -46, |
| 611 | -46, -46, -46, -46, -46, -46, -46 | 611 | -46, -46, -46, -46, -46, -46, -46, -46, -46 |
| 612 | }, | 612 | }, |
| 613 | 613 | ||
| 614 | { | 614 | { |
| 615 | 11, 48, -47, -47, 48, 48, 48, 48, 48, 48, | 615 | 11, -47, -47, -47, -47, -47, -47, -47, -47, -47, |
| 616 | 48, 48, 48, 48, 48, 48, 48 | 616 | -47, -47, -47, 47, -47, -47, -47, -47, -47 |
| 617 | }, | 617 | }, |
| 618 | 618 | ||
| 619 | { | 619 | { |
| 620 | 11, -48, -48, -48, -48, -48, -48, -48, -48, -48, | 620 | 11, 48, 48, -48, 48, 48, 48, 48, 48, 48, |
| 621 | -48, -48, -48, -48, -48, -48, -48 | 621 | 48, 48, 48, 48, 48, 48, 48, 48, 48 |
| 622 | }, | 622 | }, |
| 623 | 623 | ||
| 624 | { | 624 | { |
| 625 | 11, 49, 49, 50, 49, -49, 49, 49, -49, 49, | 625 | 11, -49, 49, 50, -49, -49, -49, -49, -49, -49, |
| 626 | 49, 49, 49, 49, 49, -49, 49 | 626 | -49, -49, -49, -49, -49, -49, -49, -49, -49 |
| 627 | 627 | ||
| 628 | }, | 628 | }, |
| 629 | 629 | ||
| 630 | { | 630 | { |
| 631 | 11, -50, -50, -50, -50, -50, -50, -50, -50, -50, | 631 | 11, 51, -50, -50, 51, 51, 51, 51, 51, 51, |
| 632 | -50, -50, -50, -50, -50, -50, -50 | 632 | 51, 51, 51, 51, 51, 51, 51, 51, 51 |
| 633 | }, | 633 | }, |
| 634 | 634 | ||
| 635 | { | 635 | { |
| 636 | 11, -51, -51, 52, -51, -51, -51, -51, -51, -51, | 636 | 11, -51, -51, -51, -51, -51, -51, -51, -51, -51, |
| 637 | -51, -51, -51, -51, -51, -51, -51 | 637 | -51, -51, -51, -51, -51, -51, -51, -51, -51 |
| 638 | }, | 638 | }, |
| 639 | 639 | ||
| 640 | { | 640 | { |
| 641 | 11, -52, -52, -52, -52, -52, -52, -52, -52, -52, | 641 | 11, 52, 52, 53, 52, -52, 52, 52, -52, 52, |
| 642 | -52, -52, -52, -52, -52, -52, -52 | 642 | 52, 52, 52, 52, 52, 52, 52, -52, 52 |
| 643 | }, | 643 | }, |
| 644 | 644 | ||
| 645 | { | 645 | { |
| 646 | 11, -53, -53, -53, -53, -53, -53, -53, -53, -53, | 646 | 11, -53, -53, -53, -53, -53, -53, -53, -53, -53, |
| 647 | -53, -53, -53, -53, -53, -53, -53 | 647 | -53, -53, -53, -53, -53, -53, -53, -53, -53 |
| 648 | }, | 648 | }, |
| 649 | 649 | ||
| 650 | { | 650 | { |
| 651 | 11, 54, 54, -54, 54, 54, 54, 54, 54, 54, | 651 | 11, -54, -54, 55, -54, -54, -54, -54, -54, -54, |
| 652 | 54, 54, 54, 54, 54, 54, 54 | 652 | -54, -54, -54, -54, -54, -54, -54, -54, -54 |
| 653 | 653 | ||
| 654 | }, | 654 | }, |
| 655 | 655 | ||
| 656 | { | 656 | { |
| 657 | 11, -55, -55, -55, -55, -55, -55, -55, -55, -55, | 657 | 11, -55, -55, -55, -55, -55, -55, -55, -55, -55, |
| 658 | -55, -55, -55, -55, -55, -55, -55 | 658 | -55, -55, -55, -55, -55, -55, -55, -55, -55 |
| 659 | }, | 659 | }, |
| 660 | 660 | ||
| 661 | { | 661 | { |
| 662 | 11, -56, -56, -56, -56, -56, -56, -56, -56, -56, | 662 | 11, -56, 56, -56, -56, -56, -56, -56, -56, -56, |
| 663 | -56, 60, 57, 57, -56, -56, -56 | 663 | -56, -56, -56, -56, -56, -56, -56, -56, -56 |
| 664 | }, | 664 | }, |
| 665 | 665 | ||
| 666 | { | 666 | { |
| 667 | 11, -57, -57, -57, -57, -57, -57, -57, -57, -57, | 667 | 11, -57, -57, -57, -57, -57, -57, -57, -57, -57, |
| 668 | -57, 57, 57, 57, -57, -57, -57 | 668 | -57, -57, -57, -57, -57, -57, -57, -57, -57 |
| 669 | }, | 669 | }, |
| 670 | 670 | ||
| 671 | { | 671 | { |
| 672 | 11, -58, -58, -58, -58, -58, -58, -58, -58, -58, | 672 | 11, 58, 58, -58, 58, 58, 58, 58, 58, 58, |
| 673 | -58, -58, -58, -58, -58, -58, -58 | 673 | 58, 58, 58, 58, 58, 58, 58, 58, 58 |
| 674 | }, | 674 | }, |
| 675 | 675 | ||
| 676 | { | 676 | { |
| 677 | 11, -59, -59, -59, -59, -59, -59, -59, -59, -59, | 677 | 11, -59, -59, -59, -59, -59, -59, -59, -59, -59, |
| 678 | -59, -59, -59, -59, -59, -59, -59 | 678 | -59, -59, -59, -59, -59, -59, -59, -59, -59 |
| 679 | 679 | ||
| 680 | }, | 680 | }, |
| 681 | 681 | ||
| 682 | { | 682 | { |
| 683 | 11, -60, -60, -60, -60, -60, -60, -60, -60, -60, | 683 | 11, -60, -60, -60, -60, -60, -60, -60, -60, -60, |
| 684 | -60, 57, 57, 57, -60, -60, -60 | 684 | -60, 66, 61, 61, -60, -60, -60, -60, -60 |
| 685 | }, | ||
| 686 | |||
| 687 | { | ||
| 688 | 11, -61, -61, -61, -61, -61, -61, -61, -61, -61, | ||
| 689 | -61, 61, 61, 61, -61, -61, -61, -61, -61 | ||
| 690 | }, | ||
| 691 | |||
| 692 | { | ||
| 693 | 11, -62, -62, -62, -62, -62, -62, -62, -62, -62, | ||
| 694 | -62, -62, -62, -62, -62, -62, -62, -62, -62 | ||
| 695 | }, | ||
| 696 | |||
| 697 | { | ||
| 698 | 11, -63, -63, -63, -63, -63, -63, -63, -63, -63, | ||
| 699 | -63, -63, -63, -63, -63, -63, -63, -63, -63 | ||
| 700 | }, | ||
| 701 | |||
| 702 | { | ||
| 703 | 11, -64, -64, -64, -64, -64, -64, -64, -64, -64, | ||
| 704 | -64, -64, -64, -64, -64, -64, -64, -64, -64 | ||
| 705 | |||
| 706 | }, | ||
| 707 | |||
| 708 | { | ||
| 709 | 11, -65, -65, -65, -65, -65, -65, -65, -65, -65, | ||
| 710 | -65, -65, -65, -65, -65, -65, -65, -65, -65 | ||
| 711 | }, | ||
| 712 | |||
| 713 | { | ||
| 714 | 11, -66, -66, -66, -66, -66, -66, -66, -66, -66, | ||
| 715 | -66, 61, 61, 61, -66, -66, -66, -66, -66 | ||
| 685 | }, | 716 | }, |
| 686 | 717 | ||
| 687 | } ; | 718 | } ; |
| @@ -701,8 +732,8 @@ static void yy_fatal_error (yyconst char msg[] ); | |||
| 701 | *yy_cp = '\0'; \ | 732 | *yy_cp = '\0'; \ |
| 702 | (yy_c_buf_p) = yy_cp; | 733 | (yy_c_buf_p) = yy_cp; |
| 703 | 734 | ||
| 704 | #define YY_NUM_RULES 33 | 735 | #define YY_NUM_RULES 38 |
| 705 | #define YY_END_OF_BUFFER 34 | 736 | #define YY_END_OF_BUFFER 39 |
| 706 | /* This struct is not used in this scanner, | 737 | /* This struct is not used in this scanner, |
| 707 | but its presence is necessary. */ | 738 | but its presence is necessary. */ |
| 708 | struct yy_trans_info | 739 | struct yy_trans_info |
| @@ -710,14 +741,15 @@ struct yy_trans_info | |||
| 710 | flex_int32_t yy_verify; | 741 | flex_int32_t yy_verify; |
| 711 | flex_int32_t yy_nxt; | 742 | flex_int32_t yy_nxt; |
| 712 | }; | 743 | }; |
| 713 | static yyconst flex_int16_t yy_accept[61] = | 744 | static yyconst flex_int16_t yy_accept[67] = |
| 714 | { 0, | 745 | { 0, |
| 715 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 746 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 716 | 34, 5, 4, 2, 3, 7, 8, 6, 32, 29, | 747 | 39, 5, 4, 2, 3, 7, 8, 6, 37, 34, |
| 717 | 31, 24, 28, 27, 26, 22, 17, 13, 16, 20, | 748 | 36, 29, 33, 32, 31, 27, 26, 21, 13, 20, |
| 718 | 22, 11, 12, 19, 19, 14, 22, 22, 4, 2, | 749 | 24, 27, 11, 12, 23, 23, 18, 14, 19, 27, |
| 719 | 3, 3, 1, 6, 32, 29, 31, 30, 24, 23, | 750 | 27, 4, 2, 3, 3, 1, 6, 37, 34, 36, |
| 720 | 26, 25, 15, 20, 9, 19, 19, 21, 10, 18 | 751 | 35, 29, 28, 31, 30, 26, 15, 24, 9, 23, |
| 752 | 23, 16, 17, 25, 10, 22 | ||
| 721 | } ; | 753 | } ; |
| 722 | 754 | ||
| 723 | static yyconst flex_int32_t yy_ec[256] = | 755 | static yyconst flex_int32_t yy_ec[256] = |
| @@ -727,15 +759,15 @@ static yyconst flex_int32_t yy_ec[256] = | |||
| 727 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 759 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 728 | 1, 2, 4, 5, 6, 1, 1, 7, 8, 9, | 760 | 1, 2, 4, 5, 6, 1, 1, 7, 8, 9, |
| 729 | 10, 1, 1, 1, 11, 12, 12, 13, 13, 13, | 761 | 10, 1, 1, 1, 11, 12, 12, 13, 13, 13, |
| 730 | 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, | 762 | 13, 13, 13, 13, 13, 13, 13, 1, 1, 14, |
| 731 | 14, 1, 1, 1, 13, 13, 13, 13, 13, 13, | 763 | 15, 16, 1, 1, 13, 13, 13, 13, 13, 13, |
| 732 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | 764 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, |
| 733 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | 765 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, |
| 734 | 1, 15, 1, 1, 13, 1, 13, 13, 13, 13, | 766 | 1, 17, 1, 1, 13, 1, 13, 13, 13, 13, |
| 735 | 767 | ||
| 736 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | 768 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, |
| 737 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | 769 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, |
| 738 | 13, 13, 1, 16, 1, 1, 1, 1, 1, 1, | 770 | 13, 13, 1, 18, 1, 1, 1, 1, 1, 1, |
| 739 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 771 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 740 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 772 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 741 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 773 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| @@ -920,7 +952,7 @@ static int input (void ); | |||
| 920 | /* This used to be an fputs(), but since the string might contain NUL's, | 952 | /* This used to be an fputs(), but since the string might contain NUL's, |
| 921 | * we now use fwrite(). | 953 | * we now use fwrite(). |
| 922 | */ | 954 | */ |
| 923 | #define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0) | 955 | #define ECHO fwrite( zconftext, zconfleng, 1, zconfout ) |
| 924 | #endif | 956 | #endif |
| 925 | 957 | ||
| 926 | /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, | 958 | /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, |
| @@ -1142,22 +1174,38 @@ return T_UNEQUAL; | |||
| 1142 | YY_BREAK | 1174 | YY_BREAK |
| 1143 | case 16: | 1175 | case 16: |
| 1144 | YY_RULE_SETUP | 1176 | YY_RULE_SETUP |
| 1177 | return T_LESS_EQUAL; | ||
| 1178 | YY_BREAK | ||
| 1179 | case 17: | ||
| 1180 | YY_RULE_SETUP | ||
| 1181 | return T_GREATER_EQUAL; | ||
| 1182 | YY_BREAK | ||
| 1183 | case 18: | ||
| 1184 | YY_RULE_SETUP | ||
| 1185 | return T_LESS; | ||
| 1186 | YY_BREAK | ||
| 1187 | case 19: | ||
| 1188 | YY_RULE_SETUP | ||
| 1189 | return T_GREATER; | ||
| 1190 | YY_BREAK | ||
| 1191 | case 20: | ||
| 1192 | YY_RULE_SETUP | ||
| 1145 | { | 1193 | { |
| 1146 | str = zconftext[0]; | 1194 | str = zconftext[0]; |
| 1147 | new_string(); | 1195 | new_string(); |
| 1148 | BEGIN(STRING); | 1196 | BEGIN(STRING); |
| 1149 | } | 1197 | } |
| 1150 | YY_BREAK | 1198 | YY_BREAK |
| 1151 | case 17: | 1199 | case 21: |
| 1152 | /* rule 17 can match eol */ | 1200 | /* rule 21 can match eol */ |
| 1153 | YY_RULE_SETUP | 1201 | YY_RULE_SETUP |
| 1154 | BEGIN(INITIAL); current_file->lineno++; return T_EOL; | 1202 | BEGIN(INITIAL); current_file->lineno++; return T_EOL; |
| 1155 | YY_BREAK | 1203 | YY_BREAK |
| 1156 | case 18: | 1204 | case 22: |
| 1157 | YY_RULE_SETUP | 1205 | YY_RULE_SETUP |
| 1158 | /* ignore */ | 1206 | /* ignore */ |
| 1159 | YY_BREAK | 1207 | YY_BREAK |
| 1160 | case 19: | 1208 | case 23: |
| 1161 | YY_RULE_SETUP | 1209 | YY_RULE_SETUP |
| 1162 | { | 1210 | { |
| 1163 | const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); | 1211 | const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); |
| @@ -1170,27 +1218,35 @@ YY_RULE_SETUP | |||
| 1170 | return T_WORD; | 1218 | return T_WORD; |
| 1171 | } | 1219 | } |
| 1172 | YY_BREAK | 1220 | YY_BREAK |
| 1173 | case 20: | 1221 | case 24: |
| 1174 | YY_RULE_SETUP | 1222 | YY_RULE_SETUP |
| 1175 | /* comment */ | 1223 | /* comment */ |
| 1176 | YY_BREAK | 1224 | YY_BREAK |
| 1177 | case 21: | 1225 | case 25: |
| 1178 | /* rule 21 can match eol */ | 1226 | /* rule 25 can match eol */ |
| 1179 | YY_RULE_SETUP | 1227 | YY_RULE_SETUP |
| 1180 | current_file->lineno++; | 1228 | current_file->lineno++; |
| 1181 | YY_BREAK | 1229 | YY_BREAK |
| 1182 | case 22: | 1230 | case 26: |
| 1183 | YY_RULE_SETUP | 1231 | YY_RULE_SETUP |
| 1184 | 1232 | ||
| 1185 | YY_BREAK | 1233 | YY_BREAK |
| 1234 | case 27: | ||
| 1235 | YY_RULE_SETUP | ||
| 1236 | { | ||
| 1237 | fprintf(stderr, | ||
| 1238 | "%s:%d:warning: ignoring unsupported character '%c'\n", | ||
| 1239 | zconf_curname(), zconf_lineno(), *zconftext); | ||
| 1240 | } | ||
| 1241 | YY_BREAK | ||
| 1186 | case YY_STATE_EOF(PARAM): | 1242 | case YY_STATE_EOF(PARAM): |
| 1187 | { | 1243 | { |
| 1188 | BEGIN(INITIAL); | 1244 | BEGIN(INITIAL); |
| 1189 | } | 1245 | } |
| 1190 | YY_BREAK | 1246 | YY_BREAK |
| 1191 | 1247 | ||
| 1192 | case 23: | 1248 | case 28: |
| 1193 | /* rule 23 can match eol */ | 1249 | /* rule 28 can match eol */ |
| 1194 | *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ | 1250 | *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ |
| 1195 | (yy_c_buf_p) = yy_cp -= 1; | 1251 | (yy_c_buf_p) = yy_cp -= 1; |
| 1196 | YY_DO_BEFORE_ACTION; /* set up zconftext again */ | 1252 | YY_DO_BEFORE_ACTION; /* set up zconftext again */ |
| @@ -1201,14 +1257,14 @@ YY_RULE_SETUP | |||
| 1201 | return T_WORD_QUOTE; | 1257 | return T_WORD_QUOTE; |
| 1202 | } | 1258 | } |
| 1203 | YY_BREAK | 1259 | YY_BREAK |
| 1204 | case 24: | 1260 | case 29: |
| 1205 | YY_RULE_SETUP | 1261 | YY_RULE_SETUP |
| 1206 | { | 1262 | { |
| 1207 | append_string(zconftext, zconfleng); | 1263 | append_string(zconftext, zconfleng); |
| 1208 | } | 1264 | } |
| 1209 | YY_BREAK | 1265 | YY_BREAK |
| 1210 | case 25: | 1266 | case 30: |
| 1211 | /* rule 25 can match eol */ | 1267 | /* rule 30 can match eol */ |
| 1212 | *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ | 1268 | *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ |
| 1213 | (yy_c_buf_p) = yy_cp -= 1; | 1269 | (yy_c_buf_p) = yy_cp -= 1; |
| 1214 | YY_DO_BEFORE_ACTION; /* set up zconftext again */ | 1270 | YY_DO_BEFORE_ACTION; /* set up zconftext again */ |
| @@ -1219,13 +1275,13 @@ YY_RULE_SETUP | |||
| 1219 | return T_WORD_QUOTE; | 1275 | return T_WORD_QUOTE; |
| 1220 | } | 1276 | } |
| 1221 | YY_BREAK | 1277 | YY_BREAK |
| 1222 | case 26: | 1278 | case 31: |
| 1223 | YY_RULE_SETUP | 1279 | YY_RULE_SETUP |
| 1224 | { | 1280 | { |
| 1225 | append_string(zconftext + 1, zconfleng - 1); | 1281 | append_string(zconftext + 1, zconfleng - 1); |
| 1226 | } | 1282 | } |
| 1227 | YY_BREAK | 1283 | YY_BREAK |
| 1228 | case 27: | 1284 | case 32: |
| 1229 | YY_RULE_SETUP | 1285 | YY_RULE_SETUP |
| 1230 | { | 1286 | { |
| 1231 | if (str == zconftext[0]) { | 1287 | if (str == zconftext[0]) { |
| @@ -1236,8 +1292,8 @@ YY_RULE_SETUP | |||
| 1236 | append_string(zconftext, 1); | 1292 | append_string(zconftext, 1); |
| 1237 | } | 1293 | } |
| 1238 | YY_BREAK | 1294 | YY_BREAK |
| 1239 | case 28: | 1295 | case 33: |
| 1240 | /* rule 28 can match eol */ | 1296 | /* rule 33 can match eol */ |
| 1241 | YY_RULE_SETUP | 1297 | YY_RULE_SETUP |
| 1242 | { | 1298 | { |
| 1243 | printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); | 1299 | printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); |
| @@ -1252,7 +1308,7 @@ case YY_STATE_EOF(STRING): | |||
| 1252 | } | 1308 | } |
| 1253 | YY_BREAK | 1309 | YY_BREAK |
| 1254 | 1310 | ||
| 1255 | case 29: | 1311 | case 34: |
| 1256 | YY_RULE_SETUP | 1312 | YY_RULE_SETUP |
| 1257 | { | 1313 | { |
| 1258 | ts = 0; | 1314 | ts = 0; |
| @@ -1277,8 +1333,8 @@ YY_RULE_SETUP | |||
| 1277 | } | 1333 | } |
| 1278 | } | 1334 | } |
| 1279 | YY_BREAK | 1335 | YY_BREAK |
| 1280 | case 30: | 1336 | case 35: |
| 1281 | /* rule 30 can match eol */ | 1337 | /* rule 35 can match eol */ |
| 1282 | *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ | 1338 | *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ |
| 1283 | (yy_c_buf_p) = yy_cp -= 1; | 1339 | (yy_c_buf_p) = yy_cp -= 1; |
| 1284 | YY_DO_BEFORE_ACTION; /* set up zconftext again */ | 1340 | YY_DO_BEFORE_ACTION; /* set up zconftext again */ |
| @@ -1289,15 +1345,15 @@ YY_RULE_SETUP | |||
| 1289 | return T_HELPTEXT; | 1345 | return T_HELPTEXT; |
| 1290 | } | 1346 | } |
| 1291 | YY_BREAK | 1347 | YY_BREAK |
| 1292 | case 31: | 1348 | case 36: |
| 1293 | /* rule 31 can match eol */ | 1349 | /* rule 36 can match eol */ |
| 1294 | YY_RULE_SETUP | 1350 | YY_RULE_SETUP |
| 1295 | { | 1351 | { |
| 1296 | current_file->lineno++; | 1352 | current_file->lineno++; |
| 1297 | append_string("\n", 1); | 1353 | append_string("\n", 1); |
| 1298 | } | 1354 | } |
| 1299 | YY_BREAK | 1355 | YY_BREAK |
| 1300 | case 32: | 1356 | case 37: |
| 1301 | YY_RULE_SETUP | 1357 | YY_RULE_SETUP |
| 1302 | { | 1358 | { |
| 1303 | while (zconfleng) { | 1359 | while (zconfleng) { |
| @@ -1328,7 +1384,7 @@ case YY_STATE_EOF(COMMAND): | |||
| 1328 | yyterminate(); | 1384 | yyterminate(); |
| 1329 | } | 1385 | } |
| 1330 | YY_BREAK | 1386 | YY_BREAK |
| 1331 | case 33: | 1387 | case 38: |
| 1332 | YY_RULE_SETUP | 1388 | YY_RULE_SETUP |
| 1333 | YY_FATAL_ERROR( "flex scanner jammed" ); | 1389 | YY_FATAL_ERROR( "flex scanner jammed" ); |
| 1334 | YY_BREAK | 1390 | YY_BREAK |
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped index de5e84ed3f96..7a4d658c2066 100644 --- a/scripts/kconfig/zconf.tab.c_shipped +++ b/scripts/kconfig/zconf.tab.c_shipped | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | /* A Bison parser, made by GNU Bison 2.5. */ | 1 | /* A Bison parser, made by GNU Bison 2.5.1. */ |
| 2 | 2 | ||
| 3 | /* Bison implementation for Yacc-like parsers in C | 3 | /* Bison implementation for Yacc-like parsers in C |
| 4 | 4 | ||
| 5 | Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. | 5 | Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | This program is free software: you can redistribute it and/or modify | 7 | This program is free software: you can redistribute it and/or modify |
| 8 | it under the terms of the GNU General Public License as published by | 8 | it under the terms of the GNU General Public License as published by |
| @@ -44,7 +44,7 @@ | |||
| 44 | #define YYBISON 1 | 44 | #define YYBISON 1 |
| 45 | 45 | ||
| 46 | /* Bison version. */ | 46 | /* Bison version. */ |
| 47 | #define YYBISON_VERSION "2.5" | 47 | #define YYBISON_VERSION "2.5.1" |
| 48 | 48 | ||
| 49 | /* Skeleton name. */ | 49 | /* Skeleton name. */ |
| 50 | #define YYSKELETON_NAME "yacc.c" | 50 | #define YYSKELETON_NAME "yacc.c" |
| @@ -108,6 +108,14 @@ static struct menu *current_menu, *current_entry; | |||
| 108 | 108 | ||
| 109 | 109 | ||
| 110 | 110 | ||
| 111 | # ifndef YY_NULL | ||
| 112 | # if defined __cplusplus && 201103L <= __cplusplus | ||
| 113 | # define YY_NULL nullptr | ||
| 114 | # else | ||
| 115 | # define YY_NULL 0 | ||
| 116 | # endif | ||
| 117 | # endif | ||
| 118 | |||
| 111 | /* Enabling traces. */ | 119 | /* Enabling traces. */ |
| 112 | #ifndef YYDEBUG | 120 | #ifndef YYDEBUG |
| 113 | # define YYDEBUG 1 | 121 | # define YYDEBUG 1 |
| @@ -159,13 +167,17 @@ static struct menu *current_menu, *current_entry; | |||
| 159 | T_WORD = 281, | 167 | T_WORD = 281, |
| 160 | T_WORD_QUOTE = 282, | 168 | T_WORD_QUOTE = 282, |
| 161 | T_UNEQUAL = 283, | 169 | T_UNEQUAL = 283, |
| 162 | T_CLOSE_PAREN = 284, | 170 | T_LESS = 284, |
| 163 | T_OPEN_PAREN = 285, | 171 | T_LESS_EQUAL = 285, |
| 164 | T_EOL = 286, | 172 | T_GREATER = 286, |
| 165 | T_OR = 287, | 173 | T_GREATER_EQUAL = 287, |
| 166 | T_AND = 288, | 174 | T_CLOSE_PAREN = 288, |
| 167 | T_EQUAL = 289, | 175 | T_OPEN_PAREN = 289, |
| 168 | T_NOT = 290 | 176 | T_EOL = 290, |
| 177 | T_OR = 291, | ||
| 178 | T_AND = 292, | ||
| 179 | T_EQUAL = 293, | ||
| 180 | T_NOT = 294 | ||
| 169 | }; | 181 | }; |
| 170 | #endif | 182 | #endif |
| 171 | 183 | ||
| @@ -304,6 +316,7 @@ YYID (yyi) | |||
| 304 | # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ | 316 | # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ |
| 305 | || defined __cplusplus || defined _MSC_VER) | 317 | || defined __cplusplus || defined _MSC_VER) |
| 306 | # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | 318 | # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ |
| 319 | /* Use EXIT_SUCCESS as a witness for stdlib.h. */ | ||
| 307 | # ifndef EXIT_SUCCESS | 320 | # ifndef EXIT_SUCCESS |
| 308 | # define EXIT_SUCCESS 0 | 321 | # define EXIT_SUCCESS 0 |
| 309 | # endif | 322 | # endif |
| @@ -395,20 +408,20 @@ union yyalloc | |||
| 395 | #endif | 408 | #endif |
| 396 | 409 | ||
| 397 | #if defined YYCOPY_NEEDED && YYCOPY_NEEDED | 410 | #if defined YYCOPY_NEEDED && YYCOPY_NEEDED |
| 398 | /* Copy COUNT objects from FROM to TO. The source and destination do | 411 | /* Copy COUNT objects from SRC to DST. The source and destination do |
| 399 | not overlap. */ | 412 | not overlap. */ |
| 400 | # ifndef YYCOPY | 413 | # ifndef YYCOPY |
| 401 | # if defined __GNUC__ && 1 < __GNUC__ | 414 | # if defined __GNUC__ && 1 < __GNUC__ |
| 402 | # define YYCOPY(To, From, Count) \ | 415 | # define YYCOPY(Dst, Src, Count) \ |
| 403 | __builtin_memcpy (To, From, (Count) * sizeof (*(From))) | 416 | __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) |
| 404 | # else | 417 | # else |
| 405 | # define YYCOPY(To, From, Count) \ | 418 | # define YYCOPY(Dst, Src, Count) \ |
| 406 | do \ | 419 | do \ |
| 407 | { \ | 420 | { \ |
| 408 | YYSIZE_T yyi; \ | 421 | YYSIZE_T yyi; \ |
| 409 | for (yyi = 0; yyi < (Count); yyi++) \ | 422 | for (yyi = 0; yyi < (Count); yyi++) \ |
| 410 | (To)[yyi] = (From)[yyi]; \ | 423 | (Dst)[yyi] = (Src)[yyi]; \ |
| 411 | } \ | 424 | } \ |
| 412 | while (YYID (0)) | 425 | while (YYID (0)) |
| 413 | # endif | 426 | # endif |
| 414 | # endif | 427 | # endif |
| @@ -417,20 +430,20 @@ union yyalloc | |||
| 417 | /* YYFINAL -- State number of the termination state. */ | 430 | /* YYFINAL -- State number of the termination state. */ |
| 418 | #define YYFINAL 11 | 431 | #define YYFINAL 11 |
| 419 | /* YYLAST -- Last index in YYTABLE. */ | 432 | /* YYLAST -- Last index in YYTABLE. */ |
| 420 | #define YYLAST 290 | 433 | #define YYLAST 298 |
| 421 | 434 | ||
| 422 | /* YYNTOKENS -- Number of terminals. */ | 435 | /* YYNTOKENS -- Number of terminals. */ |
| 423 | #define YYNTOKENS 36 | 436 | #define YYNTOKENS 40 |
| 424 | /* YYNNTS -- Number of nonterminals. */ | 437 | /* YYNNTS -- Number of nonterminals. */ |
| 425 | #define YYNNTS 50 | 438 | #define YYNNTS 50 |
| 426 | /* YYNRULES -- Number of rules. */ | 439 | /* YYNRULES -- Number of rules. */ |
| 427 | #define YYNRULES 118 | 440 | #define YYNRULES 122 |
| 428 | /* YYNRULES -- Number of states. */ | 441 | /* YYNRULES -- Number of states. */ |
| 429 | #define YYNSTATES 191 | 442 | #define YYNSTATES 199 |
| 430 | 443 | ||
| 431 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ | 444 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ |
| 432 | #define YYUNDEFTOK 2 | 445 | #define YYUNDEFTOK 2 |
| 433 | #define YYMAXUTOK 290 | 446 | #define YYMAXUTOK 294 |
| 434 | 447 | ||
| 435 | #define YYTRANSLATE(YYX) \ | 448 | #define YYTRANSLATE(YYX) \ |
| 436 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | 449 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
| @@ -467,7 +480,7 @@ static const yytype_uint8 yytranslate[] = | |||
| 467 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 480 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
| 468 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 481 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 469 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | 482 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, |
| 470 | 35 | 483 | 35, 36, 37, 38, 39 |
| 471 | }; | 484 | }; |
| 472 | 485 | ||
| 473 | #if YYDEBUG | 486 | #if YYDEBUG |
| @@ -486,64 +499,67 @@ static const yytype_uint16 yyprhs[] = | |||
| 486 | 235, 238, 241, 244, 248, 252, 255, 258, 261, 262, | 499 | 235, 238, 241, 244, 248, 252, 255, 258, 261, 262, |
| 487 | 265, 268, 271, 276, 277, 280, 283, 286, 287, 290, | 500 | 265, 268, 271, 276, 277, 280, 283, 286, 287, 290, |
| 488 | 292, 294, 297, 300, 303, 305, 308, 309, 312, 314, | 501 | 292, 294, 297, 300, 303, 305, 308, 309, 312, 314, |
| 489 | 318, 322, 326, 329, 333, 337, 339, 341, 342 | 502 | 318, 322, 326, 330, 334, 338, 342, 345, 349, 353, |
| 503 | 355, 357, 358 | ||
| 490 | }; | 504 | }; |
| 491 | 505 | ||
| 492 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ | 506 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ |
| 493 | static const yytype_int8 yyrhs[] = | 507 | static const yytype_int8 yyrhs[] = |
| 494 | { | 508 | { |
| 495 | 37, 0, -1, 81, 38, -1, 38, -1, 63, 39, | 509 | 41, 0, -1, 85, 42, -1, 42, -1, 67, 43, |
| 496 | -1, 39, -1, -1, 39, 41, -1, 39, 55, -1, | 510 | -1, 43, -1, -1, 43, 45, -1, 43, 59, -1, |
| 497 | 39, 67, -1, 39, 80, -1, 39, 26, 1, 31, | 511 | 43, 71, -1, 43, 84, -1, 43, 26, 1, 35, |
| 498 | -1, 39, 40, 1, 31, -1, 39, 1, 31, -1, | 512 | -1, 43, 44, 1, 35, -1, 43, 1, 35, -1, |
| 499 | 16, -1, 18, -1, 19, -1, 21, -1, 17, -1, | 513 | 16, -1, 18, -1, 19, -1, 21, -1, 17, -1, |
| 500 | 22, -1, 20, -1, 23, -1, 31, -1, 61, -1, | 514 | 22, -1, 20, -1, 23, -1, 35, -1, 65, -1, |
| 501 | 71, -1, 44, -1, 46, -1, 69, -1, 26, 1, | 515 | 75, -1, 48, -1, 50, -1, 73, -1, 26, 1, |
| 502 | 31, -1, 1, 31, -1, 10, 26, 31, -1, 43, | 516 | 35, -1, 1, 35, -1, 10, 26, 35, -1, 47, |
| 503 | 47, -1, 11, 26, 31, -1, 45, 47, -1, -1, | 517 | 51, -1, 11, 26, 35, -1, 49, 51, -1, -1, |
| 504 | 47, 48, -1, 47, 49, -1, 47, 75, -1, 47, | 518 | 51, 52, -1, 51, 53, -1, 51, 79, -1, 51, |
| 505 | 73, -1, 47, 42, -1, 47, 31, -1, 19, 78, | 519 | 77, -1, 51, 46, -1, 51, 35, -1, 19, 82, |
| 506 | 31, -1, 18, 79, 82, 31, -1, 20, 83, 82, | 520 | 35, -1, 18, 83, 86, 35, -1, 20, 87, 86, |
| 507 | 31, -1, 21, 26, 82, 31, -1, 22, 84, 84, | 521 | 35, -1, 21, 26, 86, 35, -1, 22, 88, 88, |
| 508 | 82, 31, -1, 24, 50, 31, -1, -1, 50, 26, | 522 | 86, 35, -1, 24, 54, 35, -1, -1, 54, 26, |
| 509 | 51, -1, -1, 34, 79, -1, 7, 85, 31, -1, | 523 | 55, -1, -1, 38, 83, -1, 7, 89, 35, -1, |
| 510 | 52, 56, -1, 80, -1, 53, 58, 54, -1, -1, | 524 | 56, 60, -1, 84, -1, 57, 62, 58, -1, -1, |
| 511 | 56, 57, -1, 56, 75, -1, 56, 73, -1, 56, | 525 | 60, 61, -1, 60, 79, -1, 60, 77, -1, 60, |
| 512 | 31, -1, 56, 42, -1, 18, 79, 82, 31, -1, | 526 | 35, -1, 60, 46, -1, 18, 83, 86, 35, -1, |
| 513 | 19, 78, 31, -1, 17, 31, -1, 20, 26, 82, | 527 | 19, 82, 35, -1, 17, 35, -1, 20, 26, 86, |
| 514 | 31, -1, -1, 58, 41, -1, 14, 83, 81, -1, | 528 | 35, -1, -1, 62, 45, -1, 14, 87, 85, -1, |
| 515 | 80, -1, 59, 62, 60, -1, -1, 62, 41, -1, | 529 | 84, -1, 63, 66, 64, -1, -1, 66, 45, -1, |
| 516 | 62, 67, -1, 62, 55, -1, 3, 79, 81, -1, | 530 | 66, 71, -1, 66, 59, -1, 3, 83, 85, -1, |
| 517 | 4, 79, 31, -1, 64, 76, 74, -1, 80, -1, | 531 | 4, 83, 35, -1, 68, 80, 78, -1, 84, -1, |
| 518 | 65, 68, 66, -1, -1, 68, 41, -1, 68, 67, | 532 | 69, 72, 70, -1, -1, 72, 45, -1, 72, 71, |
| 519 | -1, 68, 55, -1, 6, 79, 31, -1, 9, 79, | 533 | -1, 72, 59, -1, 6, 83, 35, -1, 9, 83, |
| 520 | 31, -1, 70, 74, -1, 12, 31, -1, 72, 13, | 534 | 35, -1, 74, 78, -1, 12, 35, -1, 76, 13, |
| 521 | -1, -1, 74, 75, -1, 74, 31, -1, 74, 42, | 535 | -1, -1, 78, 79, -1, 78, 35, -1, 78, 46, |
| 522 | -1, 16, 25, 83, 31, -1, -1, 76, 77, -1, | 536 | -1, 16, 25, 87, 35, -1, -1, 80, 81, -1, |
| 523 | 76, 31, -1, 23, 82, -1, -1, 79, 82, -1, | 537 | 80, 35, -1, 23, 86, -1, -1, 83, 86, -1, |
| 524 | 26, -1, 27, -1, 5, 31, -1, 8, 31, -1, | 538 | 26, -1, 27, -1, 5, 35, -1, 8, 35, -1, |
| 525 | 15, 31, -1, 31, -1, 81, 31, -1, -1, 14, | 539 | 15, 35, -1, 35, -1, 85, 35, -1, -1, 14, |
| 526 | 83, -1, 84, -1, 84, 34, 84, -1, 84, 28, | 540 | 87, -1, 88, -1, 88, 29, 88, -1, 88, 30, |
| 527 | 84, -1, 30, 83, 29, -1, 35, 83, -1, 83, | 541 | 88, -1, 88, 31, 88, -1, 88, 32, 88, -1, |
| 528 | 32, 83, -1, 83, 33, 83, -1, 26, -1, 27, | 542 | 88, 38, 88, -1, 88, 28, 88, -1, 34, 87, |
| 529 | -1, -1, 26, -1 | 543 | 33, -1, 39, 87, -1, 87, 36, 87, -1, 87, |
| 544 | 37, 87, -1, 26, -1, 27, -1, -1, 26, -1 | ||
| 530 | }; | 545 | }; |
| 531 | 546 | ||
| 532 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ | 547 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
| 533 | static const yytype_uint16 yyrline[] = | 548 | static const yytype_uint16 yyrline[] = |
| 534 | { | 549 | { |
| 535 | 0, 103, 103, 103, 105, 105, 107, 109, 110, 111, | 550 | 0, 108, 108, 108, 110, 110, 112, 114, 115, 116, |
| 536 | 112, 113, 114, 118, 122, 122, 122, 122, 122, 122, | 551 | 117, 118, 119, 123, 127, 127, 127, 127, 127, 127, |
| 537 | 122, 122, 126, 127, 128, 129, 130, 131, 135, 136, | 552 | 127, 127, 131, 132, 133, 134, 135, 136, 140, 141, |
| 538 | 142, 150, 156, 164, 174, 176, 177, 178, 179, 180, | 553 | 147, 155, 161, 169, 179, 181, 182, 183, 184, 185, |
| 539 | 181, 184, 192, 198, 208, 214, 220, 223, 225, 236, | 554 | 186, 189, 197, 203, 213, 219, 225, 228, 230, 241, |
| 540 | 237, 242, 251, 256, 264, 267, 269, 270, 271, 272, | 555 | 242, 247, 256, 261, 269, 272, 274, 275, 276, 277, |
| 541 | 273, 276, 282, 293, 299, 309, 311, 316, 324, 332, | 556 | 278, 281, 287, 298, 304, 314, 316, 321, 329, 337, |
| 542 | 335, 337, 338, 339, 344, 351, 358, 363, 371, 374, | 557 | 340, 342, 343, 344, 349, 356, 363, 368, 376, 379, |
| 543 | 376, 377, 378, 381, 389, 396, 403, 409, 416, 418, | 558 | 381, 382, 383, 386, 394, 401, 408, 414, 421, 423, |
| 544 | 419, 420, 423, 431, 433, 434, 437, 444, 446, 451, | 559 | 424, 425, 428, 436, 438, 439, 442, 449, 451, 456, |
| 545 | 452, 455, 456, 457, 461, 462, 465, 466, 469, 470, | 560 | 457, 460, 461, 462, 466, 467, 470, 471, 474, 475, |
| 546 | 471, 472, 473, 474, 475, 478, 479, 482, 483 | 561 | 476, 477, 478, 479, 480, 481, 482, 483, 484, 487, |
| 562 | 488, 491, 492 | ||
| 547 | }; | 563 | }; |
| 548 | #endif | 564 | #endif |
| 549 | 565 | ||
| @@ -557,6 +573,7 @@ static const char *const yytname[] = | |||
| 557 | "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", | 573 | "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", |
| 558 | "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE", | 574 | "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE", |
| 559 | "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", | 575 | "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", |
| 576 | "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL", | ||
| 560 | "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL", | 577 | "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL", |
| 561 | "T_NOT", "$accept", "input", "start", "stmt_list", "option_name", | 578 | "T_NOT", "$accept", "input", "start", "stmt_list", "option_name", |
| 562 | "common_stmt", "option_error", "config_entry_start", "config_stmt", | 579 | "common_stmt", "option_error", "config_entry_start", "config_stmt", |
| @@ -568,7 +585,7 @@ static const char *const yytname[] = | |||
| 568 | "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt", | 585 | "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt", |
| 569 | "comment", "comment_stmt", "help_start", "help", "depends_list", | 586 | "comment", "comment_stmt", "help_start", "help", "depends_list", |
| 570 | "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt", | 587 | "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt", |
| 571 | "end", "nl", "if_expr", "expr", "symbol", "word_opt", 0 | 588 | "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULL |
| 572 | }; | 589 | }; |
| 573 | #endif | 590 | #endif |
| 574 | 591 | ||
| @@ -580,25 +597,26 @@ static const yytype_uint16 yytoknum[] = | |||
| 580 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 597 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, |
| 581 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | 598 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, |
| 582 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | 599 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, |
| 583 | 285, 286, 287, 288, 289, 290 | 600 | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294 |
| 584 | }; | 601 | }; |
| 585 | # endif | 602 | # endif |
| 586 | 603 | ||
| 587 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | 604 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ |
| 588 | static const yytype_uint8 yyr1[] = | 605 | static const yytype_uint8 yyr1[] = |
| 589 | { | 606 | { |
| 590 | 0, 36, 37, 37, 38, 38, 39, 39, 39, 39, | 607 | 0, 40, 41, 41, 42, 42, 43, 43, 43, 43, |
| 591 | 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, | 608 | 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, |
| 592 | 40, 40, 41, 41, 41, 41, 41, 41, 42, 42, | 609 | 44, 44, 45, 45, 45, 45, 45, 45, 46, 46, |
| 593 | 43, 44, 45, 46, 47, 47, 47, 47, 47, 47, | 610 | 47, 48, 49, 50, 51, 51, 51, 51, 51, 51, |
| 594 | 47, 48, 48, 48, 48, 48, 49, 50, 50, 51, | 611 | 51, 52, 52, 52, 52, 52, 53, 54, 54, 55, |
| 595 | 51, 52, 53, 54, 55, 56, 56, 56, 56, 56, | 612 | 55, 56, 57, 58, 59, 60, 60, 60, 60, 60, |
| 596 | 56, 57, 57, 57, 57, 58, 58, 59, 60, 61, | 613 | 60, 61, 61, 61, 61, 62, 62, 63, 64, 65, |
| 597 | 62, 62, 62, 62, 63, 64, 65, 66, 67, 68, | 614 | 66, 66, 66, 66, 67, 68, 69, 70, 71, 72, |
| 598 | 68, 68, 68, 69, 70, 71, 72, 73, 74, 74, | 615 | 72, 72, 72, 73, 74, 75, 76, 77, 78, 78, |
| 599 | 74, 74, 75, 76, 76, 76, 77, 78, 78, 79, | 616 | 78, 78, 79, 80, 80, 80, 81, 82, 82, 83, |
| 600 | 79, 80, 80, 80, 81, 81, 82, 82, 83, 83, | 617 | 83, 84, 84, 84, 85, 85, 86, 86, 87, 87, |
| 601 | 83, 83, 83, 83, 83, 84, 84, 85, 85 | 618 | 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, |
| 619 | 88, 89, 89 | ||
| 602 | }; | 620 | }; |
| 603 | 621 | ||
| 604 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ | 622 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
| @@ -615,7 +633,8 @@ static const yytype_uint8 yyr2[] = | |||
| 615 | 2, 2, 2, 3, 3, 2, 2, 2, 0, 2, | 633 | 2, 2, 2, 3, 3, 2, 2, 2, 0, 2, |
| 616 | 2, 2, 4, 0, 2, 2, 2, 0, 2, 1, | 634 | 2, 2, 4, 0, 2, 2, 2, 0, 2, 1, |
| 617 | 1, 2, 2, 2, 1, 2, 0, 2, 1, 3, | 635 | 1, 2, 2, 2, 1, 2, 0, 2, 1, 3, |
| 618 | 3, 3, 2, 3, 3, 1, 1, 0, 1 | 636 | 3, 3, 3, 3, 3, 3, 2, 3, 3, 1, |
| 637 | 1, 0, 1 | ||
| 619 | }; | 638 | }; |
| 620 | 639 | ||
| 621 | /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. | 640 | /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. |
| @@ -624,72 +643,72 @@ static const yytype_uint8 yyr2[] = | |||
| 624 | static const yytype_uint8 yydefact[] = | 643 | static const yytype_uint8 yydefact[] = |
| 625 | { | 644 | { |
| 626 | 6, 0, 104, 0, 3, 0, 6, 6, 99, 100, | 645 | 6, 0, 104, 0, 3, 0, 6, 6, 99, 100, |
| 627 | 0, 1, 0, 0, 0, 0, 117, 0, 0, 0, | 646 | 0, 1, 0, 0, 0, 0, 121, 0, 0, 0, |
| 628 | 0, 0, 0, 14, 18, 15, 16, 20, 17, 19, | 647 | 0, 0, 0, 14, 18, 15, 16, 20, 17, 19, |
| 629 | 21, 0, 22, 0, 7, 34, 25, 34, 26, 55, | 648 | 21, 0, 22, 0, 7, 34, 25, 34, 26, 55, |
| 630 | 65, 8, 70, 23, 93, 79, 9, 27, 88, 24, | 649 | 65, 8, 70, 23, 93, 79, 9, 27, 88, 24, |
| 631 | 10, 0, 105, 2, 74, 13, 0, 101, 0, 118, | 650 | 10, 0, 105, 2, 74, 13, 0, 101, 0, 122, |
| 632 | 0, 102, 0, 0, 0, 115, 116, 0, 0, 0, | 651 | 0, 102, 0, 0, 0, 119, 120, 0, 0, 0, |
| 633 | 108, 103, 0, 0, 0, 0, 0, 0, 0, 88, | 652 | 108, 103, 0, 0, 0, 0, 0, 0, 0, 88, |
| 634 | 0, 0, 75, 83, 51, 84, 30, 32, 0, 112, | 653 | 0, 0, 75, 83, 51, 84, 30, 32, 0, 116, |
| 635 | 0, 0, 67, 0, 0, 11, 12, 0, 0, 0, | 654 | 0, 0, 67, 0, 0, 0, 0, 0, 0, 11, |
| 636 | 0, 97, 0, 0, 0, 47, 0, 40, 39, 35, | 655 | 12, 0, 0, 0, 0, 97, 0, 0, 0, 47, |
| 637 | 36, 0, 38, 37, 0, 0, 97, 0, 59, 60, | 656 | 0, 40, 39, 35, 36, 0, 38, 37, 0, 0, |
| 638 | 56, 58, 57, 66, 54, 53, 71, 73, 69, 72, | 657 | 97, 0, 59, 60, 56, 58, 57, 66, 54, 53, |
| 639 | 68, 106, 95, 0, 94, 80, 82, 78, 81, 77, | 658 | 71, 73, 69, 72, 68, 106, 95, 0, 94, 80, |
| 640 | 90, 91, 89, 111, 113, 114, 110, 109, 29, 86, | 659 | 82, 78, 81, 77, 90, 91, 89, 115, 117, 118, |
| 641 | 0, 106, 0, 106, 106, 106, 0, 0, 0, 87, | 660 | 114, 109, 110, 111, 112, 113, 29, 86, 0, 106, |
| 642 | 63, 106, 0, 106, 0, 96, 0, 0, 41, 98, | 661 | 0, 106, 106, 106, 0, 0, 0, 87, 63, 106, |
| 643 | 0, 0, 106, 49, 46, 28, 0, 62, 0, 107, | 662 | 0, 106, 0, 96, 0, 0, 41, 98, 0, 0, |
| 644 | 92, 42, 43, 44, 0, 0, 48, 61, 64, 45, | 663 | 106, 49, 46, 28, 0, 62, 0, 107, 92, 42, |
| 645 | 50 | 664 | 43, 44, 0, 0, 48, 61, 64, 45, 50 |
| 646 | }; | 665 | }; |
| 647 | 666 | ||
| 648 | /* YYDEFGOTO[NTERM-NUM]. */ | 667 | /* YYDEFGOTO[NTERM-NUM]. */ |
| 649 | static const yytype_int16 yydefgoto[] = | 668 | static const yytype_int16 yydefgoto[] = |
| 650 | { | 669 | { |
| 651 | -1, 3, 4, 5, 33, 34, 108, 35, 36, 37, | 670 | -1, 3, 4, 5, 33, 34, 112, 35, 36, 37, |
| 652 | 38, 74, 109, 110, 157, 186, 39, 40, 124, 41, | 671 | 38, 74, 113, 114, 165, 194, 39, 40, 128, 41, |
| 653 | 76, 120, 77, 42, 128, 43, 78, 6, 44, 45, | 672 | 76, 124, 77, 42, 132, 43, 78, 6, 44, 45, |
| 654 | 137, 46, 80, 47, 48, 49, 111, 112, 81, 113, | 673 | 141, 46, 80, 47, 48, 49, 115, 116, 81, 117, |
| 655 | 79, 134, 152, 153, 50, 7, 165, 69, 70, 60 | 674 | 79, 138, 160, 161, 50, 7, 173, 69, 70, 60 |
| 656 | }; | 675 | }; |
| 657 | 676 | ||
| 658 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | 677 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing |
| 659 | STATE-NUM. */ | 678 | STATE-NUM. */ |
| 660 | #define YYPACT_NINF -90 | 679 | #define YYPACT_NINF -91 |
| 661 | static const yytype_int16 yypact[] = | 680 | static const yytype_int16 yypact[] = |
| 662 | { | 681 | { |
| 663 | 4, 42, -90, 96, -90, 111, -90, 15, -90, -90, | 682 | 19, 37, -91, 13, -91, 79, -91, 20, -91, -91, |
| 664 | 75, -90, 82, 42, 104, 42, 110, 107, 42, 115, | 683 | -16, -91, 21, 37, 25, 37, 41, 36, 37, 78, |
| 665 | 125, -4, 121, -90, -90, -90, -90, -90, -90, -90, | 684 | 83, 31, 56, -91, -91, -91, -91, -91, -91, -91, |
| 666 | -90, 162, -90, 163, -90, -90, -90, -90, -90, -90, | 685 | -91, 116, -91, 127, -91, -91, -91, -91, -91, -91, |
| 667 | -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, | 686 | -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, |
| 668 | -90, 139, -90, -90, 138, -90, 142, -90, 143, -90, | 687 | -91, 147, -91, -91, 105, -91, 109, -91, 111, -91, |
| 669 | 152, -90, 164, 167, 168, -90, -90, -4, -4, 77, | 688 | 114, -91, 136, 137, 142, -91, -91, 31, 31, 76, |
| 670 | -18, -90, 177, 185, 33, 71, 195, 247, 236, -2, | 689 | 254, -91, 143, 146, 27, 115, 207, 258, 243, -14, |
| 671 | 236, 171, -90, -90, -90, -90, -90, -90, 41, -90, | 690 | 243, 179, -91, -91, -91, -91, -91, -91, -7, -91, |
| 672 | -4, -4, 138, 97, 97, -90, -90, 186, 187, 194, | 691 | 31, 31, 105, 51, 51, 51, 51, 51, 51, -91, |
| 673 | 42, 42, -4, 196, 97, -90, 219, -90, -90, -90, | 692 | -91, 156, 168, 181, 37, 37, 31, 178, 51, -91, |
| 674 | -90, 210, -90, -90, 204, 42, 42, 199, -90, -90, | 693 | 206, -91, -91, -91, -91, 196, -91, -91, 175, 37, |
| 675 | -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, | 694 | 37, 185, -91, -91, -91, -91, -91, -91, -91, -91, |
| 676 | -90, 222, -90, 223, -90, -90, -90, -90, -90, -90, | 695 | -91, -91, -91, -91, -91, 214, -91, 230, -91, -91, |
| 677 | -90, -90, -90, -90, 215, -90, -90, -90, -90, -90, | 696 | -91, -91, -91, -91, -91, -91, -91, -91, 183, -91, |
| 678 | -4, 222, 228, 222, -5, 222, 97, 35, 229, -90, | 697 | -91, -91, -91, -91, -91, -91, -91, -91, 31, 214, |
| 679 | -90, 222, 232, 222, -4, -90, 135, 233, -90, -90, | 698 | 194, 214, 45, 214, 51, 26, 195, -91, -91, 214, |
| 680 | 234, 235, 222, 240, -90, -90, 237, -90, 239, -13, | 699 | 197, 214, 31, -91, 139, 208, -91, -91, 220, 224, |
| 681 | -90, -90, -90, -90, 244, 42, -90, -90, -90, -90, | 700 | 214, 222, -91, -91, 226, -91, 227, 123, -91, -91, |
| 682 | -90 | 701 | -91, -91, 235, 37, -91, -91, -91, -91, -91 |
| 683 | }; | 702 | }; |
| 684 | 703 | ||
| 685 | /* YYPGOTO[NTERM-NUM]. */ | 704 | /* YYPGOTO[NTERM-NUM]. */ |
| 686 | static const yytype_int16 yypgoto[] = | 705 | static const yytype_int16 yypgoto[] = |
| 687 | { | 706 | { |
| 688 | -90, -90, 269, 271, -90, 23, -70, -90, -90, -90, | 707 | -91, -91, 264, 268, -91, 30, -65, -91, -91, -91, |
| 689 | -90, 243, -90, -90, -90, -90, -90, -90, -90, -48, | 708 | -91, 238, -91, -91, -91, -91, -91, -91, -91, -12, |
| 690 | -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, | 709 | -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, |
| 691 | -90, -20, -90, -90, -90, -90, -90, 206, 205, -68, | 710 | -91, -5, -91, -91, -91, -91, -91, 200, 209, -61, |
| 692 | -90, -90, 169, -1, 27, -7, 118, -66, -89, -90 | 711 | -91, -91, 170, -1, 65, 0, 118, -66, -90, -91 |
| 693 | }; | 712 | }; |
| 694 | 713 | ||
| 695 | /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If | 714 | /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If |
| @@ -698,102 +717,102 @@ static const yytype_int16 yypgoto[] = | |||
| 698 | #define YYTABLE_NINF -86 | 717 | #define YYTABLE_NINF -86 |
| 699 | static const yytype_int16 yytable[] = | 718 | static const yytype_int16 yytable[] = |
| 700 | { | 719 | { |
| 701 | 10, 88, 89, 54, 146, 147, 119, 1, 122, 164, | 720 | 10, 88, 89, 150, 151, 152, 153, 154, 155, 135, |
| 702 | 93, 141, 56, 142, 58, 156, 94, 62, 1, 90, | 721 | 54, 123, 56, 11, 58, 126, 145, 62, 164, 2, |
| 703 | 91, 131, 65, 66, 144, 145, 67, 90, 91, 132, | 722 | 146, 136, 1, 1, 148, 149, 147, -31, 101, 90, |
| 704 | 127, 68, 136, -31, 97, 2, 154, -31, -31, -31, | 723 | 91, -31, -31, -31, -31, -31, -31, -31, -31, 102, |
| 705 | -31, -31, -31, -31, -31, 98, 52, -31, -31, 99, | 724 | 162, -31, -31, 103, -31, 104, 105, 106, 107, 108, |
| 706 | -31, 100, 101, 102, 103, 104, -31, 105, 129, 106, | 725 | -31, 109, 181, 110, 2, 52, 55, 65, 66, 172, |
| 707 | 138, 173, 92, 141, 107, 142, 174, 172, 8, 9, | 726 | 57, 182, 111, 8, 9, 67, 131, 59, 140, 92, |
| 708 | 143, -33, 97, 90, 91, -33, -33, -33, -33, -33, | 727 | 68, 61, 145, 133, 180, 142, 146, 65, 66, -5, |
| 709 | -33, -33, -33, 98, 166, -33, -33, 99, -33, 100, | 728 | 12, 90, 91, 13, 14, 15, 16, 17, 18, 19, |
| 710 | 101, 102, 103, 104, -33, 105, 11, 106, 179, 151, | 729 | 20, 71, 174, 21, 22, 23, 24, 25, 26, 27, |
| 711 | 123, 126, 107, 135, 125, 130, 2, 139, 2, 90, | 730 | 28, 29, 30, 159, 63, 31, 187, 127, 130, 64, |
| 712 | 91, -5, 12, 55, 161, 13, 14, 15, 16, 17, | 731 | 139, 2, 90, 91, 32, -33, 101, 72, 169, -33, |
| 713 | 18, 19, 20, 65, 66, 21, 22, 23, 24, 25, | 732 | -33, -33, -33, -33, -33, -33, -33, 102, 73, -33, |
| 714 | 26, 27, 28, 29, 30, 57, 59, 31, 61, -4, | 733 | -33, 103, -33, 104, 105, 106, 107, 108, -33, 109, |
| 715 | 12, 63, 32, 13, 14, 15, 16, 17, 18, 19, | 734 | 52, 110, 129, 134, 82, 143, 83, -4, 12, 84, |
| 716 | 20, 64, 71, 21, 22, 23, 24, 25, 26, 27, | 735 | 111, 13, 14, 15, 16, 17, 18, 19, 20, 90, |
| 717 | 28, 29, 30, 72, 73, 31, 180, 90, 91, 52, | 736 | 91, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
| 718 | 32, -85, 97, 82, 83, -85, -85, -85, -85, -85, | 737 | 30, 85, 86, 31, 188, 90, 91, 87, 99, -85, |
| 719 | -85, -85, -85, 84, 190, -85, -85, 99, -85, -85, | 738 | 101, 100, 32, -85, -85, -85, -85, -85, -85, -85, |
| 720 | -85, -85, -85, -85, -85, 85, 97, 106, 86, 87, | 739 | -85, 156, 198, -85, -85, 103, -85, -85, -85, -85, |
| 721 | -52, -52, 140, -52, -52, -52, -52, 98, 95, -52, | 740 | -85, -85, -85, 157, 163, 110, 158, 166, 101, 167, |
| 722 | -52, 99, 114, 115, 116, 117, 96, 148, 149, 150, | 741 | 168, 171, -52, -52, 144, -52, -52, -52, -52, 102, |
| 723 | 158, 106, 155, 159, 97, 163, 118, -76, -76, -76, | 742 | 91, -52, -52, 103, 118, 119, 120, 121, 172, 176, |
| 724 | -76, -76, -76, -76, -76, 160, 164, -76, -76, 99, | 743 | 183, 101, 185, 110, -76, -76, -76, -76, -76, -76, |
| 725 | 13, 14, 15, 16, 17, 18, 19, 20, 91, 106, | 744 | -76, -76, 122, 189, -76, -76, 103, 13, 14, 15, |
| 726 | 21, 22, 14, 15, 140, 17, 18, 19, 20, 168, | 745 | 16, 17, 18, 19, 20, 190, 110, 21, 22, 191, |
| 727 | 175, 21, 22, 177, 181, 182, 183, 32, 187, 167, | 746 | 193, 195, 196, 14, 15, 144, 17, 18, 19, 20, |
| 728 | 188, 169, 170, 171, 185, 189, 53, 51, 32, 176, | 747 | 197, 53, 21, 22, 51, 75, 125, 175, 32, 177, |
| 729 | 75, 178, 121, 0, 133, 162, 0, 0, 0, 0, | 748 | 178, 179, 93, 94, 95, 96, 97, 184, 137, 186, |
| 730 | 184 | 749 | 170, 0, 98, 32, 0, 0, 0, 0, 192 |
| 731 | }; | 750 | }; |
| 732 | 751 | ||
| 733 | #define yypact_value_is_default(yystate) \ | 752 | #define yypact_value_is_default(yystate) \ |
| 734 | ((yystate) == (-90)) | 753 | ((yystate) == (-91)) |
| 735 | 754 | ||
| 736 | #define yytable_value_is_error(yytable_value) \ | 755 | #define yytable_value_is_error(yytable_value) \ |
| 737 | YYID (0) | 756 | YYID (0) |
| 738 | 757 | ||
| 739 | static const yytype_int16 yycheck[] = | 758 | static const yytype_int16 yycheck[] = |
| 740 | { | 759 | { |
| 741 | 1, 67, 68, 10, 93, 94, 76, 3, 76, 14, | 760 | 1, 67, 68, 93, 94, 95, 96, 97, 98, 23, |
| 742 | 28, 81, 13, 81, 15, 104, 34, 18, 3, 32, | 761 | 10, 76, 13, 0, 15, 76, 81, 18, 108, 35, |
| 743 | 33, 23, 26, 27, 90, 91, 30, 32, 33, 31, | 762 | 81, 35, 3, 3, 90, 91, 33, 0, 1, 36, |
| 744 | 78, 35, 80, 0, 1, 31, 102, 4, 5, 6, | 763 | 37, 4, 5, 6, 7, 8, 9, 10, 11, 12, |
| 745 | 7, 8, 9, 10, 11, 12, 31, 14, 15, 16, | 764 | 106, 14, 15, 16, 17, 18, 19, 20, 21, 22, |
| 746 | 17, 18, 19, 20, 21, 22, 23, 24, 78, 26, | 765 | 23, 24, 26, 26, 35, 35, 35, 26, 27, 14, |
| 747 | 80, 26, 69, 133, 31, 133, 31, 156, 26, 27, | 766 | 35, 35, 35, 26, 27, 34, 78, 26, 80, 69, |
| 748 | 29, 0, 1, 32, 33, 4, 5, 6, 7, 8, | 767 | 39, 35, 137, 78, 164, 80, 137, 26, 27, 0, |
| 749 | 9, 10, 11, 12, 150, 14, 15, 16, 17, 18, | 768 | 1, 36, 37, 4, 5, 6, 7, 8, 9, 10, |
| 750 | 19, 20, 21, 22, 23, 24, 0, 26, 164, 100, | 769 | 11, 35, 158, 14, 15, 16, 17, 18, 19, 20, |
| 751 | 77, 78, 31, 80, 77, 78, 31, 80, 31, 32, | 770 | 21, 22, 23, 104, 26, 26, 172, 77, 78, 26, |
| 752 | 33, 0, 1, 31, 115, 4, 5, 6, 7, 8, | 771 | 80, 35, 36, 37, 35, 0, 1, 1, 119, 4, |
| 753 | 9, 10, 11, 26, 27, 14, 15, 16, 17, 18, | 772 | 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, |
| 754 | 19, 20, 21, 22, 23, 31, 26, 26, 31, 0, | 773 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 755 | 1, 26, 31, 4, 5, 6, 7, 8, 9, 10, | 774 | 35, 26, 77, 78, 35, 80, 35, 0, 1, 35, |
| 756 | 11, 26, 31, 14, 15, 16, 17, 18, 19, 20, | 775 | 35, 4, 5, 6, 7, 8, 9, 10, 11, 36, |
| 757 | 21, 22, 23, 1, 1, 26, 31, 32, 33, 31, | 776 | 37, 14, 15, 16, 17, 18, 19, 20, 21, 22, |
| 758 | 31, 0, 1, 31, 31, 4, 5, 6, 7, 8, | 777 | 23, 35, 35, 26, 35, 36, 37, 35, 35, 0, |
| 759 | 9, 10, 11, 31, 185, 14, 15, 16, 17, 18, | 778 | 1, 35, 35, 4, 5, 6, 7, 8, 9, 10, |
| 760 | 19, 20, 21, 22, 23, 31, 1, 26, 31, 31, | 779 | 11, 35, 193, 14, 15, 16, 17, 18, 19, 20, |
| 761 | 5, 6, 31, 8, 9, 10, 11, 12, 31, 14, | 780 | 21, 22, 23, 35, 26, 26, 25, 1, 1, 13, |
| 762 | 15, 16, 17, 18, 19, 20, 31, 31, 31, 25, | 781 | 35, 26, 5, 6, 35, 8, 9, 10, 11, 12, |
| 763 | 1, 26, 26, 13, 1, 26, 31, 4, 5, 6, | 782 | 37, 14, 15, 16, 17, 18, 19, 20, 14, 35, |
| 764 | 7, 8, 9, 10, 11, 31, 14, 14, 15, 16, | 783 | 35, 1, 35, 26, 4, 5, 6, 7, 8, 9, |
| 765 | 4, 5, 6, 7, 8, 9, 10, 11, 33, 26, | 784 | 10, 11, 35, 35, 14, 15, 16, 4, 5, 6, |
| 766 | 14, 15, 5, 6, 31, 8, 9, 10, 11, 31, | 785 | 7, 8, 9, 10, 11, 35, 26, 14, 15, 35, |
| 767 | 31, 14, 15, 31, 31, 31, 31, 31, 31, 151, | 786 | 38, 35, 35, 5, 6, 35, 8, 9, 10, 11, |
| 768 | 31, 153, 154, 155, 34, 31, 7, 6, 31, 161, | 787 | 35, 7, 14, 15, 6, 37, 76, 159, 35, 161, |
| 769 | 37, 163, 76, -1, 79, 116, -1, -1, -1, -1, | 788 | 162, 163, 28, 29, 30, 31, 32, 169, 79, 171, |
| 770 | 172 | 789 | 120, -1, 38, 35, -1, -1, -1, -1, 180 |
| 771 | }; | 790 | }; |
| 772 | 791 | ||
| 773 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | 792 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing |
| 774 | symbol of state STATE-NUM. */ | 793 | symbol of state STATE-NUM. */ |
| 775 | static const yytype_uint8 yystos[] = | 794 | static const yytype_uint8 yystos[] = |
| 776 | { | 795 | { |
| 777 | 0, 3, 31, 37, 38, 39, 63, 81, 26, 27, | 796 | 0, 3, 35, 41, 42, 43, 67, 85, 26, 27, |
| 778 | 79, 0, 1, 4, 5, 6, 7, 8, 9, 10, | 797 | 83, 0, 1, 4, 5, 6, 7, 8, 9, 10, |
| 779 | 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, | 798 | 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, |
| 780 | 23, 26, 31, 40, 41, 43, 44, 45, 46, 52, | 799 | 23, 26, 35, 44, 45, 47, 48, 49, 50, 56, |
| 781 | 53, 55, 59, 61, 64, 65, 67, 69, 70, 71, | 800 | 57, 59, 63, 65, 68, 69, 71, 73, 74, 75, |
| 782 | 80, 39, 31, 38, 81, 31, 79, 31, 79, 26, | 801 | 84, 43, 35, 42, 85, 35, 83, 35, 83, 26, |
| 783 | 85, 31, 79, 26, 26, 26, 27, 30, 35, 83, | 802 | 89, 35, 83, 26, 26, 26, 27, 34, 39, 87, |
| 784 | 84, 31, 1, 1, 47, 47, 56, 58, 62, 76, | 803 | 88, 35, 1, 1, 51, 51, 60, 62, 66, 80, |
| 785 | 68, 74, 31, 31, 31, 31, 31, 31, 83, 83, | 804 | 72, 78, 35, 35, 35, 35, 35, 35, 87, 87, |
| 786 | 32, 33, 81, 28, 34, 31, 31, 1, 12, 16, | 805 | 36, 37, 85, 28, 29, 30, 31, 32, 38, 35, |
| 787 | 18, 19, 20, 21, 22, 24, 26, 31, 42, 48, | 806 | 35, 1, 12, 16, 18, 19, 20, 21, 22, 24, |
| 788 | 49, 72, 73, 75, 17, 18, 19, 20, 31, 42, | 807 | 26, 35, 46, 52, 53, 76, 77, 79, 17, 18, |
| 789 | 57, 73, 75, 41, 54, 80, 41, 55, 60, 67, | 808 | 19, 20, 35, 46, 61, 77, 79, 45, 58, 84, |
| 790 | 80, 23, 31, 74, 77, 41, 55, 66, 67, 80, | 809 | 45, 59, 64, 71, 84, 23, 35, 78, 81, 45, |
| 791 | 31, 42, 75, 29, 83, 83, 84, 84, 31, 31, | 810 | 59, 70, 71, 84, 35, 46, 79, 33, 87, 87, |
| 792 | 25, 79, 78, 79, 83, 26, 84, 50, 1, 13, | 811 | 88, 88, 88, 88, 88, 88, 35, 35, 25, 83, |
| 793 | 31, 79, 78, 26, 14, 82, 83, 82, 31, 82, | 812 | 82, 83, 87, 26, 88, 54, 1, 13, 35, 83, |
| 794 | 82, 82, 84, 26, 31, 31, 82, 31, 82, 83, | 813 | 82, 26, 14, 86, 87, 86, 35, 86, 86, 86, |
| 795 | 31, 31, 31, 31, 82, 34, 51, 31, 31, 31, | 814 | 88, 26, 35, 35, 86, 35, 86, 87, 35, 35, |
| 796 | 79 | 815 | 35, 35, 86, 38, 55, 35, 35, 35, 83 |
| 797 | }; | 816 | }; |
| 798 | 817 | ||
| 799 | #define yyerrok (yyerrstatus = 0) | 818 | #define yyerrok (yyerrstatus = 0) |
| @@ -823,17 +842,18 @@ static const yytype_uint8 yystos[] = | |||
| 823 | 842 | ||
| 824 | #define YYRECOVERING() (!!yyerrstatus) | 843 | #define YYRECOVERING() (!!yyerrstatus) |
| 825 | 844 | ||
| 826 | #define YYBACKUP(Token, Value) \ | 845 | #define YYBACKUP(Token, Value) \ |
| 827 | do \ | 846 | do \ |
| 828 | if (yychar == YYEMPTY && yylen == 1) \ | 847 | if (yychar == YYEMPTY) \ |
| 829 | { \ | 848 | { \ |
| 830 | yychar = (Token); \ | 849 | yychar = (Token); \ |
| 831 | yylval = (Value); \ | 850 | yylval = (Value); \ |
| 832 | YYPOPSTACK (1); \ | 851 | YYPOPSTACK (yylen); \ |
| 833 | goto yybackup; \ | 852 | yystate = *yyssp; \ |
| 834 | } \ | 853 | goto yybackup; \ |
| 835 | else \ | 854 | } \ |
| 836 | { \ | 855 | else \ |
| 856 | { \ | ||
| 837 | yyerror (YY_("syntax error: cannot back up")); \ | 857 | yyerror (YY_("syntax error: cannot back up")); \ |
| 838 | YYERROR; \ | 858 | YYERROR; \ |
| 839 | } \ | 859 | } \ |
| @@ -928,6 +948,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) | |||
| 928 | YYSTYPE const * const yyvaluep; | 948 | YYSTYPE const * const yyvaluep; |
| 929 | #endif | 949 | #endif |
| 930 | { | 950 | { |
| 951 | FILE *yyo = yyoutput; | ||
| 952 | YYUSE (yyo); | ||
| 931 | if (!yyvaluep) | 953 | if (!yyvaluep) |
| 932 | return; | 954 | return; |
| 933 | # ifdef YYPRINT | 955 | # ifdef YYPRINT |
| @@ -1179,12 +1201,12 @@ static int | |||
| 1179 | yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | 1201 | yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, |
| 1180 | yytype_int16 *yyssp, int yytoken) | 1202 | yytype_int16 *yyssp, int yytoken) |
| 1181 | { | 1203 | { |
| 1182 | YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); | 1204 | YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); |
| 1183 | YYSIZE_T yysize = yysize0; | 1205 | YYSIZE_T yysize = yysize0; |
| 1184 | YYSIZE_T yysize1; | 1206 | YYSIZE_T yysize1; |
| 1185 | enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; | 1207 | enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; |
| 1186 | /* Internationalized format string. */ | 1208 | /* Internationalized format string. */ |
| 1187 | const char *yyformat = 0; | 1209 | const char *yyformat = YY_NULL; |
| 1188 | /* Arguments of yyformat. */ | 1210 | /* Arguments of yyformat. */ |
| 1189 | char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; | 1211 | char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; |
| 1190 | /* Number of reported tokens (one for the "unexpected", one per | 1212 | /* Number of reported tokens (one for the "unexpected", one per |
| @@ -1244,7 +1266,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | |||
| 1244 | break; | 1266 | break; |
| 1245 | } | 1267 | } |
| 1246 | yyarg[yycount++] = yytname[yyx]; | 1268 | yyarg[yycount++] = yytname[yyx]; |
| 1247 | yysize1 = yysize + yytnamerr (0, yytname[yyx]); | 1269 | yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); |
| 1248 | if (! (yysize <= yysize1 | 1270 | if (! (yysize <= yysize1 |
| 1249 | && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | 1271 | && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
| 1250 | return 2; | 1272 | return 2; |
| @@ -1329,7 +1351,7 @@ yydestruct (yymsg, yytype, yyvaluep) | |||
| 1329 | 1351 | ||
| 1330 | switch (yytype) | 1352 | switch (yytype) |
| 1331 | { | 1353 | { |
| 1332 | case 53: /* "choice_entry" */ | 1354 | case 57: /* "choice_entry" */ |
| 1333 | 1355 | ||
| 1334 | { | 1356 | { |
| 1335 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", | 1357 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", |
| @@ -1339,7 +1361,7 @@ yydestruct (yymsg, yytype, yyvaluep) | |||
| 1339 | }; | 1361 | }; |
| 1340 | 1362 | ||
| 1341 | break; | 1363 | break; |
| 1342 | case 59: /* "if_entry" */ | 1364 | case 63: /* "if_entry" */ |
| 1343 | 1365 | ||
| 1344 | { | 1366 | { |
| 1345 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", | 1367 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", |
| @@ -1349,7 +1371,7 @@ yydestruct (yymsg, yytype, yyvaluep) | |||
| 1349 | }; | 1371 | }; |
| 1350 | 1372 | ||
| 1351 | break; | 1373 | break; |
| 1352 | case 65: /* "menu_entry" */ | 1374 | case 69: /* "menu_entry" */ |
| 1353 | 1375 | ||
| 1354 | { | 1376 | { |
| 1355 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", | 1377 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", |
| @@ -1426,7 +1448,7 @@ yyparse () | |||
| 1426 | `yyss': related to states. | 1448 | `yyss': related to states. |
| 1427 | `yyvs': related to semantic values. | 1449 | `yyvs': related to semantic values. |
| 1428 | 1450 | ||
| 1429 | Refer to the stacks thru separate pointers, to allow yyoverflow | 1451 | Refer to the stacks through separate pointers, to allow yyoverflow |
| 1430 | to reallocate them elsewhere. */ | 1452 | to reallocate them elsewhere. */ |
| 1431 | 1453 | ||
| 1432 | /* The state stack. */ | 1454 | /* The state stack. */ |
| @@ -2012,46 +2034,66 @@ yyreduce: | |||
| 2012 | 2034 | ||
| 2013 | case 109: | 2035 | case 109: |
| 2014 | 2036 | ||
| 2015 | { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } | 2037 | { (yyval.expr) = expr_alloc_comp(E_LTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } |
| 2016 | break; | 2038 | break; |
| 2017 | 2039 | ||
| 2018 | case 110: | 2040 | case 110: |
| 2019 | 2041 | ||
| 2020 | { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } | 2042 | { (yyval.expr) = expr_alloc_comp(E_LEQ, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } |
| 2021 | break; | 2043 | break; |
| 2022 | 2044 | ||
| 2023 | case 111: | 2045 | case 111: |
| 2024 | 2046 | ||
| 2025 | { (yyval.expr) = (yyvsp[(2) - (3)].expr); } | 2047 | { (yyval.expr) = expr_alloc_comp(E_GTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } |
| 2026 | break; | 2048 | break; |
| 2027 | 2049 | ||
| 2028 | case 112: | 2050 | case 112: |
| 2029 | 2051 | ||
| 2030 | { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); } | 2052 | { (yyval.expr) = expr_alloc_comp(E_GEQ, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } |
| 2031 | break; | 2053 | break; |
| 2032 | 2054 | ||
| 2033 | case 113: | 2055 | case 113: |
| 2034 | 2056 | ||
| 2035 | { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } | 2057 | { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } |
| 2036 | break; | 2058 | break; |
| 2037 | 2059 | ||
| 2038 | case 114: | 2060 | case 114: |
| 2039 | 2061 | ||
| 2040 | { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } | 2062 | { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); } |
| 2041 | break; | 2063 | break; |
| 2042 | 2064 | ||
| 2043 | case 115: | 2065 | case 115: |
| 2044 | 2066 | ||
| 2045 | { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); } | 2067 | { (yyval.expr) = (yyvsp[(2) - (3)].expr); } |
| 2046 | break; | 2068 | break; |
| 2047 | 2069 | ||
| 2048 | case 116: | 2070 | case 116: |
| 2049 | 2071 | ||
| 2050 | { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); } | 2072 | { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); } |
| 2051 | break; | 2073 | break; |
| 2052 | 2074 | ||
| 2053 | case 117: | 2075 | case 117: |
| 2054 | 2076 | ||
| 2077 | { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } | ||
| 2078 | break; | ||
| 2079 | |||
| 2080 | case 118: | ||
| 2081 | |||
| 2082 | { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } | ||
| 2083 | break; | ||
| 2084 | |||
| 2085 | case 119: | ||
| 2086 | |||
| 2087 | { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); } | ||
| 2088 | break; | ||
| 2089 | |||
| 2090 | case 120: | ||
| 2091 | |||
| 2092 | { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); } | ||
| 2093 | break; | ||
| 2094 | |||
| 2095 | case 121: | ||
| 2096 | |||
| 2055 | { (yyval.string) = NULL; } | 2097 | { (yyval.string) = NULL; } |
| 2056 | break; | 2098 | break; |
| 2057 | 2099 | ||
| @@ -2243,7 +2285,7 @@ yyabortlab: | |||
| 2243 | yyresult = 1; | 2285 | yyresult = 1; |
| 2244 | goto yyreturn; | 2286 | goto yyreturn; |
| 2245 | 2287 | ||
| 2246 | #if !defined(yyoverflow) || YYERROR_VERBOSE | 2288 | #if !defined yyoverflow || YYERROR_VERBOSE |
| 2247 | /*-------------------------------------------------. | 2289 | /*-------------------------------------------------. |
| 2248 | | yyexhaustedlab -- memory exhaustion comes here. | | 2290 | | yyexhaustedlab -- memory exhaustion comes here. | |
| 2249 | `-------------------------------------------------*/ | 2291 | `-------------------------------------------------*/ |
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 0f683cfa53e9..71bf8bff696a 100644 --- a/scripts/kconfig/zconf.y +++ b/scripts/kconfig/zconf.y | |||
| @@ -69,6 +69,10 @@ static struct menu *current_menu, *current_entry; | |||
| 69 | %token <string> T_WORD | 69 | %token <string> T_WORD |
| 70 | %token <string> T_WORD_QUOTE | 70 | %token <string> T_WORD_QUOTE |
| 71 | %token T_UNEQUAL | 71 | %token T_UNEQUAL |
| 72 | %token T_LESS | ||
| 73 | %token T_LESS_EQUAL | ||
| 74 | %token T_GREATER | ||
| 75 | %token T_GREATER_EQUAL | ||
| 72 | %token T_CLOSE_PAREN | 76 | %token T_CLOSE_PAREN |
| 73 | %token T_OPEN_PAREN | 77 | %token T_OPEN_PAREN |
| 74 | %token T_EOL | 78 | %token T_EOL |
| @@ -76,6 +80,7 @@ static struct menu *current_menu, *current_entry; | |||
| 76 | %left T_OR | 80 | %left T_OR |
| 77 | %left T_AND | 81 | %left T_AND |
| 78 | %left T_EQUAL T_UNEQUAL | 82 | %left T_EQUAL T_UNEQUAL |
| 83 | %left T_LESS T_LESS_EQUAL T_GREATER T_GREATER_EQUAL | ||
| 79 | %nonassoc T_NOT | 84 | %nonassoc T_NOT |
| 80 | 85 | ||
| 81 | %type <string> prompt | 86 | %type <string> prompt |
| @@ -467,6 +472,10 @@ if_expr: /* empty */ { $$ = NULL; } | |||
| 467 | ; | 472 | ; |
| 468 | 473 | ||
| 469 | expr: symbol { $$ = expr_alloc_symbol($1); } | 474 | expr: symbol { $$ = expr_alloc_symbol($1); } |
| 475 | | symbol T_LESS symbol { $$ = expr_alloc_comp(E_LTH, $1, $3); } | ||
| 476 | | symbol T_LESS_EQUAL symbol { $$ = expr_alloc_comp(E_LEQ, $1, $3); } | ||
| 477 | | symbol T_GREATER symbol { $$ = expr_alloc_comp(E_GTH, $1, $3); } | ||
| 478 | | symbol T_GREATER_EQUAL symbol { $$ = expr_alloc_comp(E_GEQ, $1, $3); } | ||
| 470 | | symbol T_EQUAL symbol { $$ = expr_alloc_comp(E_EQUAL, $1, $3); } | 479 | | symbol T_EQUAL symbol { $$ = expr_alloc_comp(E_EQUAL, $1, $3); } |
| 471 | | symbol T_UNEQUAL symbol { $$ = expr_alloc_comp(E_UNEQUAL, $1, $3); } | 480 | | symbol T_UNEQUAL symbol { $$ = expr_alloc_comp(E_UNEQUAL, $1, $3); } |
| 472 | | T_OPEN_PAREN expr T_CLOSE_PAREN { $$ = $2; } | 481 | | T_OPEN_PAREN expr T_CLOSE_PAREN { $$ = $2; } |
