From 26ac91d0df2f346d32bb732bc2d41a71006fc7d8 Mon Sep 17 00:00:00 2001 From: AceVest Date: Mon, 25 Jun 2018 15:30:04 +0800 Subject: [PATCH] add menuconfig --- rtos/Kconfig | 16 + rtos/components/debug/Kconfig | 0 rtos/components/debug/Kconfig.projbuild | 0 rtos/components/kernel/Kconfig | 0 rtos/components/kernel/Kconfig.projbuild | 7 + rtos/components/kernel/component.mk | 1 + rtos/components/test/Kconfig | 0 rtos/components/test/Kconfig.projbuild | 0 rtos/main/..config.tmp | 8 + rtos/{make/sdkconfig => main/.config} | 5 + rtos/main/.config.old | 9 + rtos/main/makefile | 19 + rtos/make/Kconfig.projbuild | 10 + rtos/make/makefile | 24 - rtos/make/project.mk | 29 + rtos/tools/kconfig/.config | 9 + rtos/tools/kconfig/conf | Bin 137456 -> 0 bytes rtos/tools/kconfig/conf.d | 130 -- rtos/tools/kconfig/lxdialog/checklist.d | 137 -- rtos/tools/kconfig/lxdialog/inputbox.d | 137 -- rtos/tools/kconfig/lxdialog/menubox.d | 137 -- rtos/tools/kconfig/lxdialog/textbox.d | 137 -- rtos/tools/kconfig/lxdialog/util.d | 138 -- rtos/tools/kconfig/lxdialog/yesno.d | 137 -- rtos/tools/kconfig/mconf | Bin 183944 -> 0 bytes rtos/tools/kconfig/mconf.d | 152 -- rtos/tools/kconfig/zconf.hash.c | 249 --- rtos/tools/kconfig/zconf.lex.c | 2556 --------------------- rtos/tools/kconfig/zconf.tab.c | 2564 ---------------------- rtos/tools/kconfig/zconf.tab.d | 137 -- 30 files changed, 113 insertions(+), 6635 deletions(-) create mode 100644 rtos/Kconfig create mode 100644 rtos/components/debug/Kconfig create mode 100644 rtos/components/debug/Kconfig.projbuild create mode 100644 rtos/components/kernel/Kconfig create mode 100644 rtos/components/kernel/Kconfig.projbuild create mode 100644 rtos/components/kernel/component.mk create mode 100644 rtos/components/test/Kconfig create mode 100644 rtos/components/test/Kconfig.projbuild create mode 100644 rtos/main/..config.tmp rename rtos/{make/sdkconfig => main/.config} (62%) create mode 100644 rtos/main/.config.old create mode 100644 rtos/main/makefile create mode 100644 rtos/make/Kconfig.projbuild delete mode 100644 rtos/make/makefile create mode 100644 rtos/tools/kconfig/.config delete mode 100755 rtos/tools/kconfig/conf delete mode 100644 rtos/tools/kconfig/conf.d delete mode 100644 rtos/tools/kconfig/lxdialog/checklist.d delete mode 100644 rtos/tools/kconfig/lxdialog/inputbox.d delete mode 100644 rtos/tools/kconfig/lxdialog/menubox.d delete mode 100644 rtos/tools/kconfig/lxdialog/textbox.d delete mode 100644 rtos/tools/kconfig/lxdialog/util.d delete mode 100644 rtos/tools/kconfig/lxdialog/yesno.d delete mode 100755 rtos/tools/kconfig/mconf delete mode 100644 rtos/tools/kconfig/mconf.d delete mode 100644 rtos/tools/kconfig/zconf.hash.c delete mode 100644 rtos/tools/kconfig/zconf.lex.c delete mode 100644 rtos/tools/kconfig/zconf.tab.c delete mode 100644 rtos/tools/kconfig/zconf.tab.d diff --git a/rtos/Kconfig b/rtos/Kconfig new file mode 100644 index 0000000..88457ff --- /dev/null +++ b/rtos/Kconfig @@ -0,0 +1,16 @@ +menu "RTOS Configuration" + +config BLINK_GPIO + int "Blink GPIO number" + range 0 34 + default 2 + help + GPIO number (IOxx) to blink on and off. + + Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink. + + GPIOs 35-39 are input-only so cannot be used as outputs. + +endmenu + +source "$COMPONENT_KCONFIGS_PROJBUILD" diff --git a/rtos/components/debug/Kconfig b/rtos/components/debug/Kconfig new file mode 100644 index 0000000..e69de29 diff --git a/rtos/components/debug/Kconfig.projbuild b/rtos/components/debug/Kconfig.projbuild new file mode 100644 index 0000000..e69de29 diff --git a/rtos/components/kernel/Kconfig b/rtos/components/kernel/Kconfig new file mode 100644 index 0000000..e69de29 diff --git a/rtos/components/kernel/Kconfig.projbuild b/rtos/components/kernel/Kconfig.projbuild new file mode 100644 index 0000000..83eedc8 --- /dev/null +++ b/rtos/components/kernel/Kconfig.projbuild @@ -0,0 +1,7 @@ +menu "Kernel config" +config KERNEL_NAME + string "Kernel name" + default "rtos" + help + what's the kenel name +endmenu diff --git a/rtos/components/kernel/component.mk b/rtos/components/kernel/component.mk new file mode 100644 index 0000000..51b0f91 --- /dev/null +++ b/rtos/components/kernel/component.mk @@ -0,0 +1 @@ +COMPONENT_CONFIG_ONLY := 1 diff --git a/rtos/components/test/Kconfig b/rtos/components/test/Kconfig new file mode 100644 index 0000000..e69de29 diff --git a/rtos/components/test/Kconfig.projbuild b/rtos/components/test/Kconfig.projbuild new file mode 100644 index 0000000..e69de29 diff --git a/rtos/main/..config.tmp b/rtos/main/..config.tmp new file mode 100644 index 0000000..af8a18c --- /dev/null +++ b/rtos/main/..config.tmp @@ -0,0 +1,8 @@ +deps_config := \ + /Users/ace/workspace/acecode/rtos/Kconfig + +include/config/auto.conf: \ + $(deps_config) + + +$(deps_config): ; diff --git a/rtos/make/sdkconfig b/rtos/main/.config similarity index 62% rename from rtos/make/sdkconfig rename to rtos/main/.config index 818afe4..8dfc153 100644 --- a/rtos/make/sdkconfig +++ b/rtos/main/.config @@ -2,3 +2,8 @@ # Automatically generated file; DO NOT EDIT. # Linux Kernel Configuration # + +# +# RTOS Configuration +# +CONFIG_BLINK_GPIO=2 diff --git a/rtos/main/.config.old b/rtos/main/.config.old new file mode 100644 index 0000000..8dfc153 --- /dev/null +++ b/rtos/main/.config.old @@ -0,0 +1,9 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux Kernel Configuration +# + +# +# RTOS Configuration +# +CONFIG_BLINK_GPIO=2 diff --git a/rtos/main/makefile b/rtos/main/makefile new file mode 100644 index 0000000..d5c60d6 --- /dev/null +++ b/rtos/main/makefile @@ -0,0 +1,19 @@ +include $(RTOS_PATH)/make/project.mk + +.PHONY: test +test: + @echo $(COMPONENT_KCONFIGS_PROJBUILD) + +define RunConf + mkdir -p $(BUILD_DIR_BASE)/include/config + cd $(BUILD_DIR_BASE); KCONFIG_AUTOHEADER=$(abspath $(BUILD_DIR_BASE)/include/sdkconfig.h) \ + COMPONENT_KCONFIGS="$(COMPONENT_KCONFIGS)" KCONFIG_CONFIG=$(SDKCONFIG) \ + COMPONENT_KCONFIGS_PROJBUILD="$(COMPONENT_KCONFIGS_PROJBUILD)" \ + $(KCONFIG_TOOL_DIR)/$1 $(RTOS_PATH)/Kconfig +endef + +.PHONY: menuconfig +menuconfig: $(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf + $(call RunConf,mconf) + $(call RunConf,conf --silentoldconfig) + diff --git a/rtos/make/Kconfig.projbuild b/rtos/make/Kconfig.projbuild new file mode 100644 index 0000000..56fdf19 --- /dev/null +++ b/rtos/make/Kconfig.projbuild @@ -0,0 +1,10 @@ +menu "Example Configuration" + +config EXAMPLE_CONF_VAL + int "example configuration value" + range 0 34 + default 3 + help + example configuration value + +endmenu diff --git a/rtos/make/makefile b/rtos/make/makefile deleted file mode 100644 index 350cb35..0000000 --- a/rtos/make/makefile +++ /dev/null @@ -1,24 +0,0 @@ -include project.mk - - -.PHONY: test -COMPONENT_PATHS := $(foreach comp,$(COMPONENTS),$(firstword $(foreach cd,$(COMPONENT_DIRS),$(wildcard $(dir $(cd))$(comp) $(cd)/$(comp))))) -test: - @echo $(fuck) - @echo $(COMPONENT_PATHS) - @echo $(wildcard $(RTOS_PATH)) - @echo $(realpath $(wildcard $(RTOS_PATH))) - @echo $(COMPONENTS) - @echo $(COMPONENT_DIRS) - @echo $(foreach cd,$(COMPONENT_DIRS), $(wildcard $(cd)/*/component.mk)) - -define RunConf - mkdir -p $(BUILD_DIR_BASE)/include/config - cd $(BUILD_DIR_BASE); KCONFIG_AUTOHEADER=$(abspath $(BUILD_DIR_BASE)/include/sdkconfig.h) \ - COMPONENT_KCONFIGS="$(COMPONENT_KCONFIGS)" KCONFIG_CONFIG=$(SDKCONFIG) \ - COMPONENT_KCONFIGS_PROJBUILD="$(COMPONENT_KCONFIGS_PROJBUILD)" \ - $(KCONFIG_TOOL_DIR)/$1 $(RTOS_PATH)/Kconfig -endef - -menuconfig: $(KCONFIG_TOOL_DIR)/mconf - $(call RunConf,mconf) diff --git a/rtos/make/project.mk b/rtos/make/project.mk index 350c0d9..9a443da 100644 --- a/rtos/make/project.mk +++ b/rtos/make/project.mk @@ -1,3 +1,21 @@ +CC ?= gcc +LD ?= ld +AR ?= ar +OBJCOPY ?= objcopy +SIZE ?= size +HOSTCC := $(CC) +HOSTLD := $(LD) +HOSTAR := $(AR) +HOSTOBJCOPY := $(OBJCOPY) +HOSTSIZE := $(SIZE) +CC := $(call dequote,$(CONFIG_TOOLPREFIX))gcc +CXX := $(call dequote,$(CONFIG_TOOLPREFIX))c++ +LD := $(call dequote,$(CONFIG_TOOLPREFIX))ld +AR := $(call dequote,$(CONFIG_TOOLPREFIX))ar +OBJCOPY := $(call dequote,$(CONFIG_TOOLPREFIX))objcopy +SIZE := $(call dequote,$(CONFIG_TOOLPREFIX))size +export CC CXX LD AR OBJCOPY SIZE + # ?= 的意思是如果没有赋值过则赋值?=后面的值 OS ?= @@ -39,13 +57,24 @@ endif COMPONENTS := $(dir $(foreach cd,$(COMPONENT_DIRS), \ $(wildcard $(cd)/*/component.mk) $(wildcard $(cd)/component.mk))) +COMPONENTS := $(sort $(foreach comp,$(COMPONENTS),$(lastword $(subst /, ,$(comp))))) export COMPONENTS #endif COMPONENT_PATHS := $(foreach comp,$(COMPONENTS),$(firstword $(foreach cd,$(COMPONENT_DIRS),$(wildcard $(dir $(cd))$(comp) $(cd)/$(comp))))) COMPONENT_KCONFIGS := $(foreach component,$(COMPONENT_PATHS),$(wildcard $(component)/Kconfig)) + # COMPONENT_KCONFIGS_PROJBUILD 会在$(RTOS_PATH)/Kconfig里用到 COMPONENT_KCONFIGS_PROJBUILD := $(foreach component,$(COMPONENT_PATHS),$(wildcard $(component)/Kconfig.projbuild)) SDKCONFIG ?= $(PROJECT_PATH)/sdkconfig KCONFIG_TOOL_DIR=$(RTOS_PATH)/tools/kconfig + + +# Workaround to run make parallel (-j). mconf and conf cannot be made simultaneously +$(KCONFIG_TOOL_DIR)/mconf: $(KCONFIG_TOOL_DIR)/conf + +# reset MAKEFLAGS as the menuconfig makefile uses implicit compile rules +$(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf: $(wildcard $(KCONFIG_TOOL_DIR)/*.c) + MAKEFLAGS="" CC=$(HOSTCC) LD=$(HOSTLD) \ + $(MAKE) -C $(KCONFIG_TOOL_DIR) diff --git a/rtos/tools/kconfig/.config b/rtos/tools/kconfig/.config new file mode 100644 index 0000000..8b6da9a --- /dev/null +++ b/rtos/tools/kconfig/.config @@ -0,0 +1,9 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux Kernel Configuration +# + +# +# RTOS Configuration +# +CONFIG_BLINK_GPIO=23 diff --git a/rtos/tools/kconfig/conf b/rtos/tools/kconfig/conf deleted file mode 100755 index 71aa412945be61f2ee6e558b7fefd37085f71e65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137456 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

Vq%Du+zVTTPemEwb24{FayR^7 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%0AfUN_OZhcoXjYU|#Ra~o9iArX`D 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 GQT!jr3Y(n( diff --git a/rtos/tools/kconfig/mconf.d b/rtos/tools/kconfig/mconf.d deleted file mode 100644 index 25ae5bb..0000000 --- a/rtos/tools/kconfig/mconf.d +++ /dev/null @@ -1,152 +0,0 @@ -mconf.o: mconf.c \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/ctype.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_ctype.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/cdefs.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_symbol_aliasing.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_posix_availability.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/runetype.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_size_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ct_rune_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_rune_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_wchar_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_wint_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/errno.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/errno.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_errno_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/fcntl.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/fcntl.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/Availability.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/AvailabilityInternal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_mode_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_off_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_pid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_o_sync.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_o_dsync.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_seek_set.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_s_ifmt.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_timespec.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int8_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int16_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int32_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int8_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int16_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int32_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_intptr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_uintptr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_filesec_t.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/_limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syslimits.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/stdarg.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdlib.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/wait.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_id_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/appleapiopts.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/_mcontext.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/_mcontext.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/mach/machine/_structs.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/mach/i386/_structs.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_sigaltstack.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ucontext.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_sigset_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_uid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/resource.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/stdint.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdint.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint8_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint16_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint32_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_intmax_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uintmax_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_timeval.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/endian.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/endian.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_endian.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libkern/_OSByteOrder.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libkern/i386/_OSByteOrder.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/alloca.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_null.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_dev_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/string.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_rsize_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ssize_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/strings.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_strings.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_common.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_string.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/unistd.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/unistd.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_posix_vdisable.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_gid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_useconds_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/select.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_def.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_time_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_suseconds_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_setsize.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_set.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_clr.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_isset.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_zero.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_copy.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_select.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_uuid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/gethostuuid.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/locale.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_locale.h \ - lkc.h expr.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/assert.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_va_list.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_stdio.h \ - list.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/stdbool.h \ - lkc_proto.h lxdialog/dialog.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_char.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_short.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_caddr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_blkcnt_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_blksize_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_in_addr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_in_port_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ino_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ino64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_key_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_nlink_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_clock_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_once_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_key_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fsblkcnt_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fsfilcnt_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/curses.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/ncurses_dll.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/unctrl.h diff --git a/rtos/tools/kconfig/zconf.hash.c b/rtos/tools/kconfig/zconf.hash.c deleted file mode 100644 index 8a489e5..0000000 --- a/rtos/tools/kconfig/zconf.hash.c +++ /dev/null @@ -1,249 +0,0 @@ -/* ANSI-C code produced by gperf version 3.0.3 */ -/* Command-line: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/gperf -t --output-file zconf.hash.c -a -C -E -g -k '1,3,$' -p -t */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -struct kconf_id; -/* maximum key range = 71, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -kconf_id_hash (register const char *str, register unsigned int len) -{ - static const unsigned char asso_values[] = - { - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 0, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 5, 25, 25, - 0, 0, 0, 5, 0, 0, 73, 73, 5, 0, - 10, 5, 45, 73, 20, 20, 0, 15, 15, 73, - 20, 5, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73 - }; - register unsigned int hval = len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[2]]; - /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct kconf_id_strings_t - { - char kconf_id_strings_str2[sizeof("if")]; - char kconf_id_strings_str3[sizeof("int")]; - char kconf_id_strings_str5[sizeof("endif")]; - char kconf_id_strings_str7[sizeof("default")]; - char kconf_id_strings_str8[sizeof("tristate")]; - char kconf_id_strings_str9[sizeof("endchoice")]; - char kconf_id_strings_str10[sizeof("---help---")]; - char kconf_id_strings_str12[sizeof("def_tristate")]; - char kconf_id_strings_str13[sizeof("def_bool")]; - char kconf_id_strings_str14[sizeof("defconfig_list")]; - char kconf_id_strings_str17[sizeof("on")]; - char kconf_id_strings_str18[sizeof("optional")]; - char kconf_id_strings_str21[sizeof("option")]; - char kconf_id_strings_str22[sizeof("endmenu")]; - char kconf_id_strings_str23[sizeof("mainmenu")]; - char kconf_id_strings_str25[sizeof("menuconfig")]; - char kconf_id_strings_str27[sizeof("modules")]; - char kconf_id_strings_str28[sizeof("allnoconfig_y")]; - char kconf_id_strings_str29[sizeof("menu")]; - char kconf_id_strings_str31[sizeof("select")]; - char kconf_id_strings_str32[sizeof("comment")]; - char kconf_id_strings_str33[sizeof("env")]; - char kconf_id_strings_str35[sizeof("range")]; - char kconf_id_strings_str36[sizeof("choice")]; - char kconf_id_strings_str39[sizeof("bool")]; - char kconf_id_strings_str41[sizeof("source")]; - char kconf_id_strings_str42[sizeof("visible")]; - char kconf_id_strings_str43[sizeof("hex")]; - char kconf_id_strings_str46[sizeof("config")]; - char kconf_id_strings_str47[sizeof("boolean")]; - char kconf_id_strings_str51[sizeof("string")]; - char kconf_id_strings_str54[sizeof("help")]; - char kconf_id_strings_str56[sizeof("prompt")]; - char kconf_id_strings_str72[sizeof("depends")]; - }; -static const struct kconf_id_strings_t kconf_id_strings_contents = - { - "if", - "int", - "endif", - "default", - "tristate", - "endchoice", - "---help---", - "def_tristate", - "def_bool", - "defconfig_list", - "on", - "optional", - "option", - "endmenu", - "mainmenu", - "menuconfig", - "modules", - "allnoconfig_y", - "menu", - "select", - "comment", - "env", - "range", - "choice", - "bool", - "source", - "visible", - "hex", - "config", - "boolean", - "string", - "help", - "prompt", - "depends" - }; -#define kconf_id_strings ((const char *) &kconf_id_strings_contents) -const struct kconf_id * -kconf_id_lookup (register const char *str, register unsigned int len) -{ - enum - { - TOTAL_KEYWORDS = 34, - MIN_WORD_LENGTH = 2, - MAX_WORD_LENGTH = 14, - MIN_HASH_VALUE = 2, - MAX_HASH_VALUE = 72 - }; - - static const struct kconf_id wordlist[] = - { - {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str2), T_IF, TF_COMMAND|TF_PARAM}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str3), T_TYPE, TF_COMMAND, S_INT}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str5), T_ENDIF, TF_COMMAND}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str7), T_DEFAULT, TF_COMMAND, S_UNKNOWN}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str8), T_TYPE, TF_COMMAND, S_TRISTATE}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str9), T_ENDCHOICE, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str10), T_HELP, TF_COMMAND}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str12), T_DEFAULT, TF_COMMAND, S_TRISTATE}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str13), T_DEFAULT, TF_COMMAND, S_BOOLEAN}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str14), T_OPT_DEFCONFIG_LIST,TF_OPTION}, - {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str17), T_ON, TF_PARAM}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str18), T_OPTIONAL, TF_COMMAND}, - {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str21), T_OPTION, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str22), T_ENDMENU, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str23), T_MAINMENU, TF_COMMAND}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str25), T_MENUCONFIG, TF_COMMAND}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str27), T_OPT_MODULES, TF_OPTION}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str28), T_OPT_ALLNOCONFIG_Y,TF_OPTION}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str29), T_MENU, TF_COMMAND}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str31), T_SELECT, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str32), T_COMMENT, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str33), T_OPT_ENV, TF_OPTION}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str35), T_RANGE, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str36), T_CHOICE, TF_COMMAND}, - {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str39), T_TYPE, TF_COMMAND, S_BOOLEAN}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str41), T_SOURCE, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str42), T_VISIBLE, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str43), T_TYPE, TF_COMMAND, S_HEX}, - {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str46), T_CONFIG, TF_COMMAND}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str47), T_TYPE, TF_COMMAND, S_BOOLEAN}, - {-1}, {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str51), T_TYPE, TF_COMMAND, S_STRING}, - {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str54), T_HELP, TF_COMMAND}, - {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str56), T_PROMPT, TF_COMMAND}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {offsetof(struct kconf_id_strings_t, kconf_id_strings_str72), T_DEPENDS, TF_COMMAND} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - unsigned int key = kconf_id_hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = wordlist[key].name; - if (o >= 0) - { - register const char *s = o + kconf_id_strings; - - if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') - return &wordlist[key]; - } - } - } - return 0; -} - diff --git a/rtos/tools/kconfig/zconf.lex.c b/rtos/tools/kconfig/zconf.lex.c deleted file mode 100644 index 1014112..0000000 --- a/rtos/tools/kconfig/zconf.lex.c +++ /dev/null @@ -1,2556 +0,0 @@ - -#line 3 "zconf.lex.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define yy_create_buffer zconf_create_buffer -#define yy_delete_buffer zconf_delete_buffer -#define yy_flex_debug zconf_flex_debug -#define yy_init_buffer zconf_init_buffer -#define yy_flush_buffer zconf_flush_buffer -#define yy_load_buffer_state zconf_load_buffer_state -#define yy_switch_to_buffer zconf_switch_to_buffer -#define yyin zconfin -#define yyleng zconfleng -#define yylex zconflex -#define yylineno zconflineno -#define yyout zconfout -#define yyrestart zconfrestart -#define yytext zconftext -#define yywrap zconfwrap -#define yyalloc zconfalloc -#define yyrealloc zconfrealloc -#define yyfree zconffree - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include -#include -#include -#include - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -typedef uint64_t flex_uint64_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE zconfrestart(zconfin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern yy_size_t zconfleng; - -extern FILE *zconfin, *zconfout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up zconftext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up zconftext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - yy_size_t yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via zconfrestart()), so that the user can continue scanning by - * just pointing zconfin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when zconftext is formed. */ -static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t zconfleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow zconfwrap()'s to do buffer switches - * instead of setting up a fresh zconfin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void zconfrestart (FILE *input_file ); -void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size ); -void zconf_delete_buffer (YY_BUFFER_STATE b ); -void zconf_flush_buffer (YY_BUFFER_STATE b ); -void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer ); -void zconfpop_buffer_state (void ); - -static void zconfensure_buffer_stack (void ); -static void zconf_load_buffer_state (void ); -static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *zconfalloc (yy_size_t ); -void *zconfrealloc (void *,yy_size_t ); -void zconffree (void * ); - -#define yy_new_buffer zconf_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - zconfensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - zconfensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -#define zconfwrap(n) 1 -#define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; - -FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0; - -typedef int yy_state_type; - -extern int zconflineno; - -int zconflineno = 1; - -extern char *zconftext; -#define yytext_ptr zconftext -static yyconst flex_int16_t yy_nxt[][20] = - { - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - - { - 11, 12, 13, 14, 12, 12, 12, 15, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 - }, - - { - 11, 12, 13, 14, 12, 12, 12, 15, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 - }, - - { - 11, 16, 16, 17, 18, 16, 16, 16, 16, 16, - 16, 16, 19, 16, 16, 16, 16, 16, 16, 16 - }, - - { - 11, 16, 16, 17, 18, 16, 16, 16, 16, 16, - 16, 16, 19, 16, 16, 16, 16, 16, 16, 16 - - }, - - { - 11, 20, 21, 22, 23, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 24, 20, 20 - }, - - { - 11, 20, 21, 22, 23, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 24, 20, 20 - }, - - { - 11, 25, 25, 26, 27, 25, 28, 25, 25, 28, - 25, 25, 25, 25, 25, 25, 25, 25, 29, 25 - }, - - { - 11, 25, 25, 26, 27, 25, 28, 25, 25, 28, - 25, 25, 25, 25, 25, 25, 25, 25, 29, 25 - }, - - { - 11, 30, 31, 32, 33, 34, 35, 36, 37, 35, - 38, 39, 40, 40, 41, 42, 43, 30, 44, 45 - - }, - - { - 11, 30, 31, 32, 33, 34, 35, 36, 37, 35, - 38, 39, 40, 40, 41, 42, 43, 30, 44, 45 - }, - - { - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11 - }, - - { - 11, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12 - }, - - { - 11, -13, 46, 47, -13, -13, -13, 48, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13 - }, - - { - 11, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14 - - }, - - { - 11, 49, 49, 50, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49 - }, - - { - 11, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -16, -16, -16, -16 - }, - - { - 11, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17 - }, - - { - 11, -18, -18, 51, -18, -18, -18, -18, -18, -18, - -18, -18, -18, -18, -18, -18, -18, -18, -18, -18 - }, - - { - 11, -19, -19, -19, -19, -19, -19, -19, -19, -19, - -19, -19, 52, -19, -19, -19, -19, -19, -19, -19 - - }, - - { - 11, 53, 53, -20, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 - }, - - { - 11, -21, 54, 55, 56, -21, -21, -21, -21, -21, - -21, -21, -21, -21, -21, -21, -21, -21, -21, -21 - }, - - { - 11, 57, -22, -22, -22, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57 - }, - - { - 11, -23, -23, 55, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23 - }, - - { - 11, -24, -24, -24, -24, -24, -24, -24, -24, -24, - -24, -24, -24, -24, -24, -24, -24, -24, -24, -24 - - }, - - { - 11, 58, 58, 59, 58, 58, -25, 58, 58, -25, - 58, 58, 58, 58, 58, 58, 58, 58, -25, 58 - }, - - { - 11, -26, -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, -26, -26 - }, - - { - 11, 58, 58, 60, 58, 58, -27, 58, 58, -27, - 58, 58, 58, 58, 58, 58, 58, 58, -27, 58 - }, - - { - 11, -28, -28, -28, -28, -28, -28, -28, -28, -28, - -28, -28, -28, -28, -28, -28, -28, -28, -28, -28 - }, - - { - 11, 61, 61, 62, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61 - - }, - - { - 11, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30 - }, - - { - 11, -31, 63, -31, -31, -31, -31, -31, -31, -31, - -31, -31, -31, -31, -31, -31, -31, -31, -31, -31 - }, - - { - 11, -32, -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, -32, -32 - }, - - { - 11, -33, -33, 64, -33, -33, -33, -33, -33, -33, - -33, -33, -33, -33, -33, -33, -33, -33, -33, -33 - }, - - { - 11, -34, -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, 65, -34, -34, -34, -34 - - }, - - { - 11, -35, -35, -35, -35, -35, -35, -35, -35, -35, - -35, -35, -35, -35, -35, -35, -35, -35, -35, -35 - }, - - { - 11, 66, 66, -36, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66 - }, - - { - 11, -37, -37, -37, -37, -37, -37, -37, 67, -37, - -37, -37, -37, -37, -37, -37, -37, -37, -37, -37 - }, - - { - 11, -38, -38, -38, -38, -38, -38, -38, -38, -38, - -38, -38, -38, -38, -38, -38, -38, -38, -38, -38 - }, - - { - 11, -39, -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, -39, -39, -39, -39, -39, -39, -39, -39 - - }, - - { - 11, -40, -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, 68, 68, -40, -40, -40, -40, -40, -40 - }, - - { - 11, -41, -41, -41, -41, -41, -41, -41, -41, -41, - -41, -41, -41, -41, -41, 69, -41, -41, -41, -41 - }, - - { - 11, -42, -42, -42, -42, -42, -42, -42, -42, -42, - -42, -42, -42, -42, -42, -42, -42, -42, -42, -42 - }, - - { - 11, -43, -43, -43, -43, -43, -43, -43, -43, -43, - -43, -43, -43, -43, -43, 70, -43, -43, -43, -43 - }, - - { - 11, -44, -44, 71, -44, -44, -44, -44, -44, -44, - -44, -44, -44, -44, -44, -44, -44, -44, -44, -44 - - }, - - { - 11, -45, -45, -45, -45, -45, -45, -45, -45, -45, - -45, -45, -45, -45, -45, -45, -45, -45, -45, 72 - }, - - { - 11, -46, 46, 47, -46, -46, -46, 48, -46, -46, - -46, -46, -46, -46, -46, -46, -46, -46, -46, -46 - }, - - { - 11, -47, -47, -47, -47, -47, -47, -47, -47, -47, - -47, -47, -47, -47, -47, -47, -47, -47, -47, -47 - }, - - { - 11, 49, 49, 50, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49 - }, - - { - 11, 49, 49, 50, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49 - - }, - - { - 11, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, -50, -50, -50, -50, -50, -50, -50, -50, -50 - }, - - { - 11, -51, -51, -51, -51, -51, -51, -51, -51, -51, - -51, -51, -51, -51, -51, -51, -51, -51, -51, -51 - }, - - { - 11, -52, -52, -52, -52, -52, -52, -52, -52, -52, - -52, -52, 52, -52, -52, -52, -52, -52, -52, -52 - }, - - { - 11, 53, 53, -53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 - }, - - { - 11, -54, 54, 55, 56, -54, -54, -54, -54, -54, - -54, -54, -54, -54, -54, -54, -54, -54, -54, -54 - - }, - - { - 11, 57, -55, -55, -55, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57 - }, - - { - 11, -56, -56, 55, -56, -56, -56, -56, -56, -56, - -56, -56, -56, -56, -56, -56, -56, -56, -56, -56 - }, - - { - 11, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -57, -57 - }, - - { - 11, 58, 58, 59, 58, 58, -58, 58, 58, -58, - 58, 58, 58, 58, 58, 58, 58, 58, -58, 58 - }, - - { - 11, -59, -59, -59, -59, -59, -59, -59, -59, -59, - -59, -59, -59, -59, -59, -59, -59, -59, -59, -59 - - }, - - { - 11, -60, -60, -60, -60, -60, -60, -60, -60, -60, - -60, -60, -60, -60, -60, -60, -60, -60, -60, -60 - }, - - { - 11, -61, -61, 62, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61 - }, - - { - 11, -62, -62, -62, -62, -62, -62, -62, -62, -62, - -62, -62, -62, -62, -62, -62, -62, -62, -62, -62 - }, - - { - 11, -63, 63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63 - }, - - { - 11, -64, -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, -64, -64 - - }, - - { - 11, -65, -65, -65, -65, -65, -65, -65, -65, -65, - -65, -65, -65, -65, -65, -65, -65, -65, -65, -65 - }, - - { - 11, 66, 66, -66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66 - }, - - { - 11, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, -67, -67, -67, -67, -67 - }, - - { - 11, -68, -68, -68, -68, -68, -68, -68, -68, -68, - -68, -68, 68, 68, -68, -68, -68, -68, -68, -68 - }, - - { - 11, -69, -69, -69, -69, -69, -69, -69, -69, -69, - -69, -69, -69, -69, -69, -69, -69, -69, -69, -69 - - }, - - { - 11, -70, -70, -70, -70, -70, -70, -70, -70, -70, - -70, -70, -70, -70, -70, -70, -70, -70, -70, -70 - }, - - { - 11, -71, -71, -71, -71, -71, -71, -71, -71, -71, - -71, -71, -71, -71, -71, -71, -71, -71, -71, -71 - }, - - { - 11, -72, -72, -72, -72, -72, -72, -72, -72, -72, - -72, -72, -72, -72, -72, -72, -72, -72, -72, -72 - }, - - } ; - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up zconftext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - zconfleng = (yy_size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 37 -#define YY_END_OF_BUFFER 38 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[73] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 38, 5, 4, 2, 3, 7, 8, 37, 6, 36, - 33, 35, 37, 37, 28, 32, 28, 31, 30, 26, - 25, 21, 26, 13, 20, 23, 26, 11, 12, 22, - 18, 14, 19, 26, 26, 4, 2, 3, 3, 1, - 8, 6, 36, 33, 35, 0, 34, 28, 27, 27, - 30, 29, 25, 21, 15, 23, 9, 22, 16, 17, - 24, 10 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 5, 6, 7, 1, 1, 8, 9, 10, - 11, 1, 1, 1, 12, 13, 13, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 1, 1, 14, - 15, 16, 17, 1, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 1, 18, 1, 1, 12, 1, 12, 12, 12, 12, - - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 1, 19, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int zconf_flex_debug; -int zconf_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *zconftext; -#define YY_NO_INPUT 1 - -/* - * Copyright (C) 2002 Roman Zippel - * Released under the terms of the GNU GPL v2.0. - */ - -#include -#include -#include -#include -#include -#include - -#include "lkc.h" - -#define START_STRSIZE 16 - -static struct { - struct file *file; - int lineno; -} current_pos; - -static char *text; -static int text_size, text_asize; - -struct buffer { - struct buffer *parent; - YY_BUFFER_STATE state; -}; - -struct buffer *current_buf; - -static int last_ts, first_ts; - -static void zconf_endhelp(void); -static void zconf_endfile(void); - -static void new_string(void) -{ - text = xmalloc(START_STRSIZE); - text_asize = START_STRSIZE; - text_size = 0; - *text = 0; -} - -static void append_string(const char *str, int size) -{ - int new_size = text_size + size + 1; - if (new_size > text_asize) { - new_size += START_STRSIZE - 1; - new_size &= -START_STRSIZE; - text = realloc(text, new_size); - text_asize = new_size; - } - memcpy(text + text_size, str, size); - text_size += size; - text[text_size] = 0; -} - -static void alloc_string(const char *str, int size) -{ - text = xmalloc(size + 1); - memcpy(text, str, size); - text[size] = 0; -} - -static void warn_ignored_character(char chr) -{ - fprintf(stderr, - "%s:%d:warning: ignoring unsupported character '%c'\n", - zconf_curname(), zconf_lineno(), chr); -} - -#define INITIAL 0 -#define COMMAND 1 -#define HELP 2 -#define STRING 3 -#define PARAM 4 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int zconflex_destroy (void ); - -int zconfget_debug (void ); - -void zconfset_debug (int debug_flag ); - -YY_EXTRA_TYPE zconfget_extra (void ); - -void zconfset_extra (YY_EXTRA_TYPE user_defined ); - -FILE *zconfget_in (void ); - -void zconfset_in (FILE * in_str ); - -FILE *zconfget_out (void ); - -void zconfset_out (FILE * out_str ); - -yy_size_t zconfget_leng (void ); - -char *zconfget_text (void ); - -int zconfget_lineno (void ); - -void zconfset_lineno (int line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int zconfwrap (void ); -#else -extern int zconfwrap (void ); -#endif -#endif - - static void yyunput (int c,char *buf_ptr ); - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO fwrite( zconftext, zconfleng, 1, zconfout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - errno=0; \ - while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(zconfin); \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int zconflex (void); - -#define YY_DECL int zconflex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after zconftext and zconfleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - - int str = 0; - int ts, i; - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! zconfin ) - zconfin = stdin; - - if ( ! zconfout ) - zconfout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - zconfensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - zconf_create_buffer(zconfin,YY_BUF_SIZE ); - } - - zconf_load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of zconftext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); -yy_match: - while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 ) - { - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - - ++yy_cp; - } - - yy_current_state = -yy_current_state; - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos) + 1; - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -/* rule 1 can match eol */ -case 2: -/* rule 2 can match eol */ -YY_RULE_SETUP -{ - current_file->lineno++; - return T_EOL; -} - YY_BREAK -case 3: -YY_RULE_SETUP - - YY_BREAK -case 4: -YY_RULE_SETUP -{ - BEGIN(COMMAND); -} - YY_BREAK -case 5: -YY_RULE_SETUP -{ - unput(zconftext[0]); - BEGIN(COMMAND); -} - YY_BREAK - -case 6: -YY_RULE_SETUP -{ - const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); - BEGIN(PARAM); - current_pos.file = current_file; - current_pos.lineno = current_file->lineno; - if (id && id->flags & TF_COMMAND) { - zconflval.id = id; - return id->token; - } - alloc_string(zconftext, zconfleng); - zconflval.string = text; - return T_WORD; - } - YY_BREAK -case 7: -YY_RULE_SETUP -warn_ignored_character(*zconftext); - YY_BREAK -case 8: -/* rule 8 can match eol */ -YY_RULE_SETUP -{ - BEGIN(INITIAL); - current_file->lineno++; - return T_EOL; - } - YY_BREAK - -case 9: -YY_RULE_SETUP -return T_AND; - YY_BREAK -case 10: -YY_RULE_SETUP -return T_OR; - YY_BREAK -case 11: -YY_RULE_SETUP -return T_OPEN_PAREN; - YY_BREAK -case 12: -YY_RULE_SETUP -return T_CLOSE_PAREN; - YY_BREAK -case 13: -YY_RULE_SETUP -return T_NOT; - YY_BREAK -case 14: -YY_RULE_SETUP -return T_EQUAL; - YY_BREAK -case 15: -YY_RULE_SETUP -return T_UNEQUAL; - YY_BREAK -case 16: -YY_RULE_SETUP -return T_LESS_EQUAL; - YY_BREAK -case 17: -YY_RULE_SETUP -return T_GREATER_EQUAL; - YY_BREAK -case 18: -YY_RULE_SETUP -return T_LESS; - YY_BREAK -case 19: -YY_RULE_SETUP -return T_GREATER; - YY_BREAK -case 20: -YY_RULE_SETUP -{ - str = zconftext[0]; - new_string(); - BEGIN(STRING); - } - YY_BREAK -case 21: -/* rule 21 can match eol */ -YY_RULE_SETUP -BEGIN(INITIAL); current_file->lineno++; return T_EOL; - YY_BREAK -case 22: -YY_RULE_SETUP -{ - const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); - if (id && id->flags & TF_PARAM) { - zconflval.id = id; - return id->token; - } - alloc_string(zconftext, zconfleng); - zconflval.string = text; - return T_WORD; - } - YY_BREAK -case 23: -YY_RULE_SETUP -/* comment */ - YY_BREAK -case 24: -/* rule 24 can match eol */ -YY_RULE_SETUP -current_file->lineno++; - YY_BREAK -case 25: -YY_RULE_SETUP - - YY_BREAK -case 26: -YY_RULE_SETUP -warn_ignored_character(*zconftext); - YY_BREAK -case YY_STATE_EOF(PARAM): -{ - BEGIN(INITIAL); - } - YY_BREAK - -case 27: -/* rule 27 can match eol */ -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up zconftext again */ -YY_RULE_SETUP -{ - append_string(zconftext, zconfleng); - zconflval.string = text; - return T_WORD_QUOTE; - } - YY_BREAK -case 28: -YY_RULE_SETUP -{ - append_string(zconftext, zconfleng); - } - YY_BREAK -case 29: -/* rule 29 can match eol */ -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up zconftext again */ -YY_RULE_SETUP -{ - append_string(zconftext + 1, zconfleng - 1); - zconflval.string = text; - return T_WORD_QUOTE; - } - YY_BREAK -case 30: -YY_RULE_SETUP -{ - append_string(zconftext + 1, zconfleng - 1); - } - YY_BREAK -case 31: -YY_RULE_SETUP -{ - if (str == zconftext[0]) { - BEGIN(PARAM); - zconflval.string = text; - return T_WORD_QUOTE; - } else - append_string(zconftext, 1); - } - YY_BREAK -case 32: -/* rule 32 can match eol */ -YY_RULE_SETUP -{ - printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); - current_file->lineno++; - BEGIN(INITIAL); - return T_EOL; - } - YY_BREAK -case YY_STATE_EOF(STRING): -{ - BEGIN(INITIAL); - } - YY_BREAK - -case 33: -YY_RULE_SETUP -{ - ts = 0; - for (i = 0; i < zconfleng; i++) { - if (zconftext[i] == '\t') - ts = (ts & ~7) + 8; - else - ts++; - } - last_ts = ts; - if (first_ts) { - if (ts < first_ts) { - zconf_endhelp(); - return T_HELPTEXT; - } - ts -= first_ts; - while (ts > 8) { - append_string(" ", 8); - ts -= 8; - } - append_string(" ", ts); - } - } - YY_BREAK -case 34: -/* rule 34 can match eol */ -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up zconftext again */ -YY_RULE_SETUP -{ - current_file->lineno++; - zconf_endhelp(); - return T_HELPTEXT; - } - YY_BREAK -case 35: -/* rule 35 can match eol */ -YY_RULE_SETUP -{ - current_file->lineno++; - append_string("\n", 1); - } - YY_BREAK -case 36: -YY_RULE_SETUP -{ - while (zconfleng) { - if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t')) - break; - zconfleng--; - } - append_string(zconftext, zconfleng); - if (!first_ts) - first_ts = last_ts; - } - YY_BREAK -case YY_STATE_EOF(HELP): -{ - zconf_endhelp(); - return T_HELPTEXT; - } - YY_BREAK - -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(COMMAND): -{ - if (current_file) { - zconf_endfile(); - return T_EOL; - } - fclose(zconfin); - yyterminate(); -} - YY_BREAK -case 37: -YY_RULE_SETUP -ECHO; - YY_BREAK - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed zconfin at a new source and called - * zconflex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( zconfwrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * zconftext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of zconflex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - yy_size_t num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - yy_size_t new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - zconfrestart(zconfin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = (yy_start); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); - - yy_current_state = yy_nxt[yy_current_state][1]; - yy_is_jam = (yy_current_state <= 0); - - if ( ! yy_is_jam ) - { - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - } - - return yy_is_jam ? 0 : yy_current_state; -} - - static void yyunput (int c, register char * yy_bp ) -{ - register char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up zconftext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - zconfrestart(zconfin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( zconfwrap( ) ) - return 0; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve zconftext */ - (yy_hold_char) = *++(yy_c_buf_p); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void zconfrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - zconfensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - zconf_create_buffer(zconfin,YY_BUF_SIZE ); - } - - zconf_init_buffer(YY_CURRENT_BUFFER,input_file ); - zconf_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * zconfpop_buffer_state(); - * zconfpush_buffer_state(new_buffer); - */ - zconfensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - zconf_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (zconfwrap()) processing, but the only time this flag - * is looked at is after zconfwrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void zconf_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - zconf_init_buffer(b,file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with zconf_create_buffer() - * - */ - void zconf_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - zconffree((void *) b->yy_ch_buf ); - - zconffree((void *) b ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a zconfrestart() or at EOF. - */ - static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - zconf_flush_buffer(b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then zconf_init_buffer was _probably_ - * called from zconfrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void zconf_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - zconf_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - zconfensure_buffer_stack(); - - /* This block is copied from zconf_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from zconf_switch_to_buffer. */ - zconf_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void zconfpop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - zconf_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - zconf_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void zconfensure_buffer_stack (void) -{ - yy_size_t num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - zconf_switch_to_buffer(b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to zconflex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * zconf_scan_bytes() instead. - */ -YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr ) -{ - - return zconf_scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will - * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n, i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) zconfalloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = zconf_scan_buffer(buf,n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up zconftext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - zconftext[zconfleng] = (yy_hold_char); \ - (yy_c_buf_p) = zconftext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - zconfleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int zconfget_lineno (void) -{ - - return zconflineno; -} - -/** Get the input stream. - * - */ -FILE *zconfget_in (void) -{ - return zconfin; -} - -/** Get the output stream. - * - */ -FILE *zconfget_out (void) -{ - return zconfout; -} - -/** Get the length of the current token. - * - */ -yy_size_t zconfget_leng (void) -{ - return zconfleng; -} - -/** Get the current token. - * - */ - -char *zconfget_text (void) -{ - return zconftext; -} - -/** Set the current line number. - * @param line_number - * - */ -void zconfset_lineno (int line_number ) -{ - - zconflineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - * - * @see zconf_switch_to_buffer - */ -void zconfset_in (FILE * in_str ) -{ - zconfin = in_str ; -} - -void zconfset_out (FILE * out_str ) -{ - zconfout = out_str ; -} - -int zconfget_debug (void) -{ - return zconf_flex_debug; -} - -void zconfset_debug (int bdebug ) -{ - zconf_flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from zconflex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - zconfin = stdin; - zconfout = stdout; -#else - zconfin = (FILE *) 0; - zconfout = (FILE *) 0; -#endif - - /* For future reference: Set errno on error, since we are called by - * zconflex_init() - */ - return 0; -} - -/* zconflex_destroy is for both reentrant and non-reentrant scanners. */ -int zconflex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - zconf_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - zconfpop_buffer_state(); - } - - /* Destroy the stack itself. */ - zconffree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * zconflex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *zconfalloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *zconfrealloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void zconffree (void * ptr ) -{ - free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -void zconf_starthelp(void) -{ - new_string(); - last_ts = first_ts = 0; - BEGIN(HELP); -} - -static void zconf_endhelp(void) -{ - zconflval.string = text; - BEGIN(INITIAL); -} - -/* - * Try to open specified file with following names: - * ./name - * $(srctree)/name - * The latter is used when srctree is separate from objtree - * when compiling the kernel. - * Return NULL if file is not found. - */ -FILE *zconf_fopen(const char *name) -{ - char *env, fullname[PATH_MAX+1]; - FILE *f; - - f = fopen(name, "r"); - if (!f && name != NULL && name[0] != '/') { - env = getenv(SRCTREE); - if (env) { - sprintf(fullname, "%s/%s", env, name); - f = fopen(fullname, "r"); - } - } - return f; -} - -void zconf_initscan(const char *name) -{ - zconfin = zconf_fopen(name); - if (!zconfin) { - printf("can't find file %s\n", name); - exit(1); - } - - current_buf = xmalloc(sizeof(*current_buf)); - memset(current_buf, 0, sizeof(*current_buf)); - - current_file = file_lookup(name); - current_file->lineno = 1; -} - -void zconf_nextfile(const char *name) -{ - struct file *iter; - struct file *file = file_lookup(name); - struct buffer *buf = xmalloc(sizeof(*buf)); - memset(buf, 0, sizeof(*buf)); - - current_buf->state = YY_CURRENT_BUFFER; - zconfin = zconf_fopen(file->name); - if (!zconfin) { - printf("%s:%d: can't open file \"%s\"\n", - zconf_curname(), zconf_lineno(), file->name); - exit(1); - } - zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE)); - buf->parent = current_buf; - current_buf = buf; - - for (iter = current_file->parent; iter; iter = iter->parent ) { - if (!strcmp(current_file->name,iter->name) ) { - printf("%s:%d: recursive inclusion detected. " - "Inclusion path:\n current file : '%s'\n", - zconf_curname(), zconf_lineno(), - zconf_curname()); - iter = current_file->parent; - while (iter && \ - strcmp(iter->name,current_file->name)) { - printf(" included from: '%s:%d'\n", - iter->name, iter->lineno-1); - iter = iter->parent; - } - if (iter) - printf(" included from: '%s:%d'\n", - iter->name, iter->lineno+1); - exit(1); - } - } - file->lineno = 1; - file->parent = current_file; - current_file = file; -} - -void zconf_nextfiles(const char *wildcard) -{ - wordexp_t p; - char **w; - int i; - - wordexp(wildcard, &p, 0); - w = p.we_wordv; - - for (i = p.we_wordc - 1; i >= 0; i--) - zconf_nextfile(w[i]); - - wordfree(&p); -} - -static void zconf_endfile(void) -{ - struct buffer *parent; - - current_file = current_file->parent; - - parent = current_buf->parent; - if (parent) { - fclose(zconfin); - zconf_delete_buffer(YY_CURRENT_BUFFER); - zconf_switch_to_buffer(parent->state); - } - free(current_buf); - current_buf = parent; -} - -int zconf_lineno(void) -{ - return current_pos.lineno; -} - -const char *zconf_curname(void) -{ - return current_pos.file ? current_pos.file->name : ""; -} - diff --git a/rtos/tools/kconfig/zconf.tab.c b/rtos/tools/kconfig/zconf.tab.c deleted file mode 100644 index b3b9902..0000000 --- a/rtos/tools/kconfig/zconf.tab.c +++ /dev/null @@ -1,2564 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "2.3" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Using locations. */ -#define YYLSP_NEEDED 0 - -/* Substitute the variable and function names. */ -#define yyparse zconfparse -#define yylex zconflex -#define yyerror zconferror -#define yylval zconflval -#define yychar zconfchar -#define yydebug zconfdebug -#define yynerrs zconfnerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - T_MAINMENU = 258, - T_MENU = 259, - T_ENDMENU = 260, - T_SOURCE = 261, - T_CHOICE = 262, - T_ENDCHOICE = 263, - T_COMMENT = 264, - T_CONFIG = 265, - T_MENUCONFIG = 266, - T_HELP = 267, - T_HELPTEXT = 268, - T_IF = 269, - T_ENDIF = 270, - T_DEPENDS = 271, - T_OPTIONAL = 272, - T_PROMPT = 273, - T_TYPE = 274, - T_DEFAULT = 275, - T_SELECT = 276, - T_RANGE = 277, - T_VISIBLE = 278, - T_OPTION = 279, - T_ON = 280, - T_WORD = 281, - T_WORD_QUOTE = 282, - T_UNEQUAL = 283, - T_LESS = 284, - T_LESS_EQUAL = 285, - T_GREATER = 286, - T_GREATER_EQUAL = 287, - T_CLOSE_PAREN = 288, - T_OPEN_PAREN = 289, - T_EOL = 290, - T_OR = 291, - T_AND = 292, - T_EQUAL = 293, - T_NOT = 294 - }; -#endif -/* Tokens. */ -#define T_MAINMENU 258 -#define T_MENU 259 -#define T_ENDMENU 260 -#define T_SOURCE 261 -#define T_CHOICE 262 -#define T_ENDCHOICE 263 -#define T_COMMENT 264 -#define T_CONFIG 265 -#define T_MENUCONFIG 266 -#define T_HELP 267 -#define T_HELPTEXT 268 -#define T_IF 269 -#define T_ENDIF 270 -#define T_DEPENDS 271 -#define T_OPTIONAL 272 -#define T_PROMPT 273 -#define T_TYPE 274 -#define T_DEFAULT 275 -#define T_SELECT 276 -#define T_RANGE 277 -#define T_VISIBLE 278 -#define T_OPTION 279 -#define T_ON 280 -#define T_WORD 281 -#define T_WORD_QUOTE 282 -#define T_UNEQUAL 283 -#define T_LESS 284 -#define T_LESS_EQUAL 285 -#define T_GREATER 286 -#define T_GREATER_EQUAL 287 -#define T_CLOSE_PAREN 288 -#define T_OPEN_PAREN 289 -#define T_EOL 290 -#define T_OR 291 -#define T_AND 292 -#define T_EQUAL 293 -#define T_NOT 294 - - - - -/* Copy the first part of user declarations. */ - - -/* - * Copyright (C) 2002 Roman Zippel - * Released under the terms of the GNU GPL v2.0. - */ - -#include -#include -#include -#include -#include -#include - -#include "lkc.h" - -#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) - -#define PRINTD 0x0001 -#define DEBUG_PARSE 0x0002 - -int cdebug = PRINTD; - -extern int zconflex(void); -static void zconfprint(const char *err, ...); -static void zconf_error(const char *err, ...); -static void zconferror(const char *err); -static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken); - -struct symbol *symbol_hash[SYMBOL_HASHSIZE]; - -static struct menu *current_menu, *current_entry; - - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE - -{ - char *string; - struct file *file; - struct symbol *symbol; - struct expr *expr; - struct menu *menu; - const struct kconf_id *id; -} -/* Line 193 of yacc.c. */ - - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - - - -/* Copy the second part of user declarations. */ - - -/* Include zconf.hash.c here so it can see the token constants. */ -#include "zconf.hash.c" - - -/* Line 216 of yacc.c. */ - - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; -#else -typedef short int yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) -#else -# define YYUSE(e) /* empty */ -#endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; -#endif -{ - return i; -} -#endif - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined _STDLIB_H \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yytype_int16 yyss; - YYSTYPE yyvs; - }; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 11 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 298 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 40 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 50 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 122 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 199 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 294 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 6, 8, 11, 13, 14, 17, 20, - 23, 26, 31, 36, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, 62, 64, 66, 68, 72, - 75, 79, 82, 86, 89, 90, 93, 96, 99, 102, - 105, 108, 112, 117, 122, 127, 133, 137, 138, 142, - 143, 146, 150, 153, 155, 159, 160, 163, 166, 169, - 172, 175, 180, 184, 187, 192, 193, 196, 200, 202, - 206, 207, 210, 213, 216, 220, 224, 228, 230, 234, - 235, 238, 241, 244, 248, 252, 255, 258, 261, 262, - 265, 268, 271, 276, 277, 280, 283, 286, 287, 290, - 292, 294, 297, 300, 303, 305, 308, 309, 312, 314, - 318, 322, 326, 330, 334, 338, 342, 345, 349, 353, - 355, 357, 358 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 41, 0, -1, 85, 42, -1, 42, -1, 67, 43, - -1, 43, -1, -1, 43, 45, -1, 43, 59, -1, - 43, 71, -1, 43, 84, -1, 43, 26, 1, 35, - -1, 43, 44, 1, 35, -1, 43, 1, 35, -1, - 16, -1, 18, -1, 19, -1, 21, -1, 17, -1, - 22, -1, 20, -1, 23, -1, 35, -1, 65, -1, - 75, -1, 48, -1, 50, -1, 73, -1, 26, 1, - 35, -1, 1, 35, -1, 10, 26, 35, -1, 47, - 51, -1, 11, 26, 35, -1, 49, 51, -1, -1, - 51, 52, -1, 51, 53, -1, 51, 79, -1, 51, - 77, -1, 51, 46, -1, 51, 35, -1, 19, 82, - 35, -1, 18, 83, 86, 35, -1, 20, 87, 86, - 35, -1, 21, 26, 86, 35, -1, 22, 88, 88, - 86, 35, -1, 24, 54, 35, -1, -1, 54, 26, - 55, -1, -1, 38, 83, -1, 7, 89, 35, -1, - 56, 60, -1, 84, -1, 57, 62, 58, -1, -1, - 60, 61, -1, 60, 79, -1, 60, 77, -1, 60, - 35, -1, 60, 46, -1, 18, 83, 86, 35, -1, - 19, 82, 35, -1, 17, 35, -1, 20, 26, 86, - 35, -1, -1, 62, 45, -1, 14, 87, 85, -1, - 84, -1, 63, 66, 64, -1, -1, 66, 45, -1, - 66, 71, -1, 66, 59, -1, 3, 83, 85, -1, - 4, 83, 35, -1, 68, 80, 78, -1, 84, -1, - 69, 72, 70, -1, -1, 72, 45, -1, 72, 71, - -1, 72, 59, -1, 6, 83, 35, -1, 9, 83, - 35, -1, 74, 78, -1, 12, 35, -1, 76, 13, - -1, -1, 78, 79, -1, 78, 35, -1, 78, 46, - -1, 16, 25, 87, 35, -1, -1, 80, 81, -1, - 80, 35, -1, 23, 86, -1, -1, 83, 86, -1, - 26, -1, 27, -1, 5, 35, -1, 8, 35, -1, - 15, 35, -1, 35, -1, 85, 35, -1, -1, 14, - 87, -1, 88, -1, 88, 29, 88, -1, 88, 30, - 88, -1, 88, 31, 88, -1, 88, 32, 88, -1, - 88, 38, 88, -1, 88, 28, 88, -1, 34, 87, - 33, -1, 39, 87, -1, 87, 36, 87, -1, 87, - 37, 87, -1, 26, -1, 27, -1, -1, 26, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 108, 108, 108, 110, 110, 112, 114, 115, 116, - 117, 118, 119, 123, 127, 127, 127, 127, 127, 127, - 127, 127, 131, 132, 133, 134, 135, 136, 140, 141, - 147, 155, 161, 169, 179, 181, 182, 183, 184, 185, - 186, 189, 197, 203, 213, 219, 225, 228, 230, 241, - 242, 247, 256, 261, 269, 272, 274, 275, 276, 277, - 278, 281, 287, 298, 304, 314, 316, 321, 329, 337, - 340, 342, 343, 344, 349, 356, 363, 368, 376, 379, - 381, 382, 383, 386, 394, 401, 408, 414, 421, 423, - 424, 425, 428, 436, 438, 439, 442, 449, 451, 456, - 457, 460, 461, 462, 466, 467, 470, 471, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 487, - 488, 491, 492 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", - "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", - "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", - "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE", - "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", - "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL", - "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL", - "T_NOT", "$accept", "input", "start", "stmt_list", "option_name", - "common_stmt", "option_error", "config_entry_start", "config_stmt", - "menuconfig_entry_start", "menuconfig_stmt", "config_option_list", - "config_option", "symbol_option", "symbol_option_list", - "symbol_option_arg", "choice", "choice_entry", "choice_end", - "choice_stmt", "choice_option_list", "choice_option", "choice_block", - "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu", - "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt", - "comment", "comment_stmt", "help_start", "help", "depends_list", - "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt", - "end", "nl", "if_expr", "expr", "symbol", "word_opt", 0 -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294 -}; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 40, 41, 41, 42, 42, 43, 43, 43, 43, - 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, - 44, 44, 45, 45, 45, 45, 45, 45, 46, 46, - 47, 48, 49, 50, 51, 51, 51, 51, 51, 51, - 51, 52, 52, 52, 52, 52, 53, 54, 54, 55, - 55, 56, 57, 58, 59, 60, 60, 60, 60, 60, - 60, 61, 61, 61, 61, 62, 62, 63, 64, 65, - 66, 66, 66, 66, 67, 68, 69, 70, 71, 72, - 72, 72, 72, 73, 74, 75, 76, 77, 78, 78, - 78, 78, 79, 80, 80, 80, 81, 82, 82, 83, - 83, 84, 84, 84, 85, 85, 86, 86, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, - 88, 89, 89 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 2, 1, 2, 1, 0, 2, 2, 2, - 2, 4, 4, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, - 3, 2, 3, 2, 0, 2, 2, 2, 2, 2, - 2, 3, 4, 4, 4, 5, 3, 0, 3, 0, - 2, 3, 2, 1, 3, 0, 2, 2, 2, 2, - 2, 4, 3, 2, 4, 0, 2, 3, 1, 3, - 0, 2, 2, 2, 3, 3, 3, 1, 3, 0, - 2, 2, 2, 3, 3, 2, 2, 2, 0, 2, - 2, 2, 4, 0, 2, 2, 2, 0, 2, 1, - 1, 2, 2, 2, 1, 2, 0, 2, 1, 3, - 3, 3, 3, 3, 3, 3, 2, 3, 3, 1, - 1, 0, 1 -}; - -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint8 yydefact[] = -{ - 6, 0, 104, 0, 3, 0, 6, 6, 99, 100, - 0, 1, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 0, 0, 14, 18, 15, 16, 20, 17, 19, - 21, 0, 22, 0, 7, 34, 25, 34, 26, 55, - 65, 8, 70, 23, 93, 79, 9, 27, 88, 24, - 10, 0, 105, 2, 74, 13, 0, 101, 0, 122, - 0, 102, 0, 0, 0, 119, 120, 0, 0, 0, - 108, 103, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 75, 83, 51, 84, 30, 32, 0, 116, - 0, 0, 67, 0, 0, 0, 0, 0, 0, 11, - 12, 0, 0, 0, 0, 97, 0, 0, 0, 47, - 0, 40, 39, 35, 36, 0, 38, 37, 0, 0, - 97, 0, 59, 60, 56, 58, 57, 66, 54, 53, - 71, 73, 69, 72, 68, 106, 95, 0, 94, 80, - 82, 78, 81, 77, 90, 91, 89, 115, 117, 118, - 114, 109, 110, 111, 112, 113, 29, 86, 0, 106, - 0, 106, 106, 106, 0, 0, 0, 87, 63, 106, - 0, 106, 0, 96, 0, 0, 41, 98, 0, 0, - 106, 49, 46, 28, 0, 62, 0, 107, 92, 42, - 43, 44, 0, 0, 48, 61, 64, 45, 50 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 3, 4, 5, 33, 34, 112, 35, 36, 37, - 38, 74, 113, 114, 165, 194, 39, 40, 128, 41, - 76, 124, 77, 42, 132, 43, 78, 6, 44, 45, - 141, 46, 80, 47, 48, 49, 115, 116, 81, 117, - 79, 138, 160, 161, 50, 7, 173, 69, 70, 60 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -91 -static const yytype_int16 yypact[] = -{ - 19, 37, -91, 13, -91, 79, -91, 20, -91, -91, - -16, -91, 21, 37, 25, 37, 41, 36, 37, 78, - 83, 31, 56, -91, -91, -91, -91, -91, -91, -91, - -91, 116, -91, 127, -91, -91, -91, -91, -91, -91, - -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, - -91, 147, -91, -91, 105, -91, 109, -91, 111, -91, - 114, -91, 136, 137, 142, -91, -91, 31, 31, 76, - 254, -91, 143, 146, 27, 115, 207, 258, 243, -14, - 243, 179, -91, -91, -91, -91, -91, -91, -7, -91, - 31, 31, 105, 51, 51, 51, 51, 51, 51, -91, - -91, 156, 168, 181, 37, 37, 31, 178, 51, -91, - 206, -91, -91, -91, -91, 196, -91, -91, 175, 37, - 37, 185, -91, -91, -91, -91, -91, -91, -91, -91, - -91, -91, -91, -91, -91, 214, -91, 230, -91, -91, - -91, -91, -91, -91, -91, -91, -91, -91, 183, -91, - -91, -91, -91, -91, -91, -91, -91, -91, 31, 214, - 194, 214, 45, 214, 51, 26, 195, -91, -91, 214, - 197, 214, 31, -91, 139, 208, -91, -91, 220, 224, - 214, 222, -91, -91, 226, -91, 227, 123, -91, -91, - -91, -91, 235, 37, -91, -91, -91, -91, -91 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -91, -91, 264, 268, -91, 30, -65, -91, -91, -91, - -91, 238, -91, -91, -91, -91, -91, -91, -91, -12, - -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, - -91, -5, -91, -91, -91, -91, -91, 200, 209, -61, - -91, -91, 170, -1, 65, 0, 118, -66, -90, -91 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -86 -static const yytype_int16 yytable[] = -{ - 10, 88, 89, 150, 151, 152, 153, 154, 155, 135, - 54, 123, 56, 11, 58, 126, 145, 62, 164, 2, - 146, 136, 1, 1, 148, 149, 147, -31, 101, 90, - 91, -31, -31, -31, -31, -31, -31, -31, -31, 102, - 162, -31, -31, 103, -31, 104, 105, 106, 107, 108, - -31, 109, 181, 110, 2, 52, 55, 65, 66, 172, - 57, 182, 111, 8, 9, 67, 131, 59, 140, 92, - 68, 61, 145, 133, 180, 142, 146, 65, 66, -5, - 12, 90, 91, 13, 14, 15, 16, 17, 18, 19, - 20, 71, 174, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 159, 63, 31, 187, 127, 130, 64, - 139, 2, 90, 91, 32, -33, 101, 72, 169, -33, - -33, -33, -33, -33, -33, -33, -33, 102, 73, -33, - -33, 103, -33, 104, 105, 106, 107, 108, -33, 109, - 52, 110, 129, 134, 82, 143, 83, -4, 12, 84, - 111, 13, 14, 15, 16, 17, 18, 19, 20, 90, - 91, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 85, 86, 31, 188, 90, 91, 87, 99, -85, - 101, 100, 32, -85, -85, -85, -85, -85, -85, -85, - -85, 156, 198, -85, -85, 103, -85, -85, -85, -85, - -85, -85, -85, 157, 163, 110, 158, 166, 101, 167, - 168, 171, -52, -52, 144, -52, -52, -52, -52, 102, - 91, -52, -52, 103, 118, 119, 120, 121, 172, 176, - 183, 101, 185, 110, -76, -76, -76, -76, -76, -76, - -76, -76, 122, 189, -76, -76, 103, 13, 14, 15, - 16, 17, 18, 19, 20, 190, 110, 21, 22, 191, - 193, 195, 196, 14, 15, 144, 17, 18, 19, 20, - 197, 53, 21, 22, 51, 75, 125, 175, 32, 177, - 178, 179, 93, 94, 95, 96, 97, 184, 137, 186, - 170, 0, 98, 32, 0, 0, 0, 0, 192 -}; - -static const yytype_int16 yycheck[] = -{ - 1, 67, 68, 93, 94, 95, 96, 97, 98, 23, - 10, 76, 13, 0, 15, 76, 81, 18, 108, 35, - 81, 35, 3, 3, 90, 91, 33, 0, 1, 36, - 37, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 106, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 26, 26, 35, 35, 35, 26, 27, 14, - 35, 35, 35, 26, 27, 34, 78, 26, 80, 69, - 39, 35, 137, 78, 164, 80, 137, 26, 27, 0, - 1, 36, 37, 4, 5, 6, 7, 8, 9, 10, - 11, 35, 158, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 104, 26, 26, 172, 77, 78, 26, - 80, 35, 36, 37, 35, 0, 1, 1, 119, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 35, 26, 77, 78, 35, 80, 35, 0, 1, 35, - 35, 4, 5, 6, 7, 8, 9, 10, 11, 36, - 37, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 35, 35, 26, 35, 36, 37, 35, 35, 0, - 1, 35, 35, 4, 5, 6, 7, 8, 9, 10, - 11, 35, 193, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 35, 26, 26, 25, 1, 1, 13, - 35, 26, 5, 6, 35, 8, 9, 10, 11, 12, - 37, 14, 15, 16, 17, 18, 19, 20, 14, 35, - 35, 1, 35, 26, 4, 5, 6, 7, 8, 9, - 10, 11, 35, 35, 14, 15, 16, 4, 5, 6, - 7, 8, 9, 10, 11, 35, 26, 14, 15, 35, - 38, 35, 35, 5, 6, 35, 8, 9, 10, 11, - 35, 7, 14, 15, 6, 37, 76, 159, 35, 161, - 162, 163, 28, 29, 30, 31, 32, 169, 79, 171, - 120, -1, 38, 35, -1, -1, -1, -1, 180 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = -{ - 0, 3, 35, 41, 42, 43, 67, 85, 26, 27, - 83, 0, 1, 4, 5, 6, 7, 8, 9, 10, - 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 26, 35, 44, 45, 47, 48, 49, 50, 56, - 57, 59, 63, 65, 68, 69, 71, 73, 74, 75, - 84, 43, 35, 42, 85, 35, 83, 35, 83, 26, - 89, 35, 83, 26, 26, 26, 27, 34, 39, 87, - 88, 35, 1, 1, 51, 51, 60, 62, 66, 80, - 72, 78, 35, 35, 35, 35, 35, 35, 87, 87, - 36, 37, 85, 28, 29, 30, 31, 32, 38, 35, - 35, 1, 12, 16, 18, 19, 20, 21, 22, 24, - 26, 35, 46, 52, 53, 76, 77, 79, 17, 18, - 19, 20, 35, 46, 61, 77, 79, 45, 58, 84, - 45, 59, 64, 71, 84, 23, 35, 78, 81, 45, - 59, 70, 71, 84, 35, 46, 79, 33, 87, 87, - 88, 88, 88, 88, 88, 88, 35, 35, 25, 83, - 82, 83, 87, 26, 88, 54, 1, 13, 35, 83, - 82, 26, 14, 86, 87, 86, 35, 86, 86, 86, - 88, 26, 35, 35, 86, 35, 86, 87, 35, 35, - 35, 35, 86, 38, 55, 35, 35, 35, 83 -}; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ - -#define YYFAIL goto yyerrlab - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - - -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif -{ - YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif -{ - int yynrhs = yyr2[yyrule]; - int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif -{ - YYUSE (yyvaluep); - - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - case 57: /* "choice_entry" */ - - { - fprintf(stderr, "%s:%d: missing end statement for this entry\n", - (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno); - if (current_menu == (yyvaluep->menu)) - menu_end_menu(); -}; - - break; - case 63: /* "if_entry" */ - - { - fprintf(stderr, "%s:%d: missing end statement for this entry\n", - (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno); - if (current_menu == (yyvaluep->menu)) - menu_end_menu(); -}; - - break; - case 69: /* "menu_entry" */ - - { - fprintf(stderr, "%s:%d: missing end statement for this entry\n", - (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno); - if (current_menu == (yyvaluep->menu)) - menu_end_menu(); -}; - - break; - - default: - break; - } -} - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - - - -/* The look-ahead symbol. */ -int yychar; - -/* The semantic value of the look-ahead symbol. */ -YYSTYPE yylval; - -/* Number of syntax errors so far. */ -int yynerrs; - - - -/*----------. -| yyparse. | -`----------*/ - -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void) -#else -int -yyparse () - -#endif -#endif -{ - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; - - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyss + yystacksize - 1 <= yyssp) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to look-ahead token. */ - yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) - goto yydefault; - - /* Not known => get a look-ahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - if (yyn == YYFINAL) - YYACCEPT; - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - yystate = yyn; - *++yyvsp = yylval; - - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 10: - - { zconf_error("unexpected end statement"); ;} - break; - - case 11: - - { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); ;} - break; - - case 12: - - { - zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[(2) - (4)].id)->name); -;} - break; - - case 13: - - { zconf_error("invalid statement"); ;} - break; - - case 28: - - { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;} - break; - - case 29: - - { zconf_error("invalid option"); ;} - break; - - case 30: - - { - struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0); - sym->flags |= SYMBOL_OPTIONAL; - menu_add_entry(sym); - printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string)); -;} - break; - - case 31: - - { - menu_end_entry(); - printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 32: - - { - struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0); - sym->flags |= SYMBOL_OPTIONAL; - menu_add_entry(sym); - printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string)); -;} - break; - - case 33: - - { - if (current_entry->prompt) - current_entry->prompt->type = P_MENU; - else - zconfprint("warning: menuconfig statement without prompt"); - menu_end_entry(); - printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 41: - - { - menu_set_type((yyvsp[(1) - (3)].id)->stype); - printd(DEBUG_PARSE, "%s:%d:type(%u)\n", - zconf_curname(), zconf_lineno(), - (yyvsp[(1) - (3)].id)->stype); -;} - break; - - case 42: - - { - menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr)); - printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 43: - - { - menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr)); - if ((yyvsp[(1) - (4)].id)->stype != S_UNKNOWN) - menu_set_type((yyvsp[(1) - (4)].id)->stype); - printd(DEBUG_PARSE, "%s:%d:default(%u)\n", - zconf_curname(), zconf_lineno(), - (yyvsp[(1) - (4)].id)->stype); -;} - break; - - case 44: - - { - menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr)); - printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 45: - - { - menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr)); - printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 48: - - { - const struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string))); - if (id && id->flags & TF_OPTION) - menu_add_option(id->token, (yyvsp[(3) - (3)].string)); - else - zconfprint("warning: ignoring unknown option %s", (yyvsp[(2) - (3)].string)); - free((yyvsp[(2) - (3)].string)); -;} - break; - - case 49: - - { (yyval.string) = NULL; ;} - break; - - case 50: - - { (yyval.string) = (yyvsp[(2) - (2)].string); ;} - break; - - case 51: - - { - struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE); - sym->flags |= SYMBOL_AUTO; - menu_add_entry(sym); - menu_add_expr(P_CHOICE, NULL, NULL); - printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 52: - - { - (yyval.menu) = menu_add_menu(); -;} - break; - - case 53: - - { - if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) { - menu_end_menu(); - printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); - } -;} - break; - - case 61: - - { - menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr)); - printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 62: - - { - if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) { - menu_set_type((yyvsp[(1) - (3)].id)->stype); - printd(DEBUG_PARSE, "%s:%d:type(%u)\n", - zconf_curname(), zconf_lineno(), - (yyvsp[(1) - (3)].id)->stype); - } else - YYERROR; -;} - break; - - case 63: - - { - current_entry->sym->flags |= SYMBOL_OPTIONAL; - printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 64: - - { - if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) { - menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr)); - printd(DEBUG_PARSE, "%s:%d:default\n", - zconf_curname(), zconf_lineno()); - } else - YYERROR; -;} - break; - - case 67: - - { - printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); - menu_add_entry(NULL); - menu_add_dep((yyvsp[(2) - (3)].expr)); - (yyval.menu) = menu_add_menu(); -;} - break; - - case 68: - - { - if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) { - menu_end_menu(); - printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); - } -;} - break; - - case 74: - - { - menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL); -;} - break; - - case 75: - - { - menu_add_entry(NULL); - menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL); - printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 76: - - { - (yyval.menu) = menu_add_menu(); -;} - break; - - case 77: - - { - if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) { - menu_end_menu(); - printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); - } -;} - break; - - case 83: - - { - printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string)); - zconf_nextfiles((yyvsp[(2) - (3)].string)); -;} - break; - - case 84: - - { - menu_add_entry(NULL); - menu_add_prompt(P_COMMENT, (yyvsp[(2) - (3)].string), NULL); - printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 85: - - { - menu_end_entry(); -;} - break; - - case 86: - - { - printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); - zconf_starthelp(); -;} - break; - - case 87: - - { - current_entry->help = (yyvsp[(2) - (2)].string); -;} - break; - - case 92: - - { - menu_add_dep((yyvsp[(3) - (4)].expr)); - printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); -;} - break; - - case 96: - - { - menu_add_visibility((yyvsp[(2) - (2)].expr)); -;} - break; - - case 98: - - { - menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr)); -;} - break; - - case 101: - - { (yyval.id) = (yyvsp[(1) - (2)].id); ;} - break; - - case 102: - - { (yyval.id) = (yyvsp[(1) - (2)].id); ;} - break; - - case 103: - - { (yyval.id) = (yyvsp[(1) - (2)].id); ;} - break; - - case 106: - - { (yyval.expr) = NULL; ;} - break; - - case 107: - - { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;} - break; - - case 108: - - { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;} - break; - - case 109: - - { (yyval.expr) = expr_alloc_comp(E_LTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;} - break; - - case 110: - - { (yyval.expr) = expr_alloc_comp(E_LEQ, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;} - break; - - case 111: - - { (yyval.expr) = expr_alloc_comp(E_GTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;} - break; - - case 112: - - { (yyval.expr) = expr_alloc_comp(E_GEQ, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;} - break; - - case 113: - - { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;} - break; - - case 114: - - { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;} - break; - - case 115: - - { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;} - break; - - case 116: - - { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;} - break; - - case 117: - - { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} - break; - - case 118: - - { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} - break; - - case 119: - - { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;} - break; - - case 120: - - { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;} - break; - - case 121: - - { (yyval.string) = NULL; ;} - break; - - -/* Line 1267 of yacc.c. */ - - default: break; - } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse look-ahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - if (yyn == YYFINAL) - YYACCEPT; - - *++yyvsp = yylval; - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} - - - - - -void conf_parse(const char *name) -{ - struct symbol *sym; - int i; - - zconf_initscan(name); - - sym_init(); - _menu_init(); - rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); - - if (getenv("ZCONF_DEBUG")) - zconfdebug = 1; - zconfparse(); - if (zconfnerrs) - exit(1); - if (!modules_sym) - modules_sym = sym_find( "n" ); - - rootmenu.prompt->text = _(rootmenu.prompt->text); - rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text); - - menu_finalize(&rootmenu); - for_all_symbols(i, sym) { - if (sym_check_deps(sym)) - zconfnerrs++; - } - if (zconfnerrs) - exit(1); - sym_set_change_count(1); -} - -static const char *zconf_tokenname(int token) -{ - switch (token) { - case T_MENU: return "menu"; - case T_ENDMENU: return "endmenu"; - case T_CHOICE: return "choice"; - case T_ENDCHOICE: return "endchoice"; - case T_IF: return "if"; - case T_ENDIF: return "endif"; - case T_DEPENDS: return "depends"; - case T_VISIBLE: return "visible"; - } - return ""; -} - -static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken) -{ - if (id->token != endtoken) { - zconf_error("unexpected '%s' within %s block", - kconf_id_strings + id->name, zconf_tokenname(starttoken)); - zconfnerrs++; - return false; - } -#if 0 -//Wildcard breaks this somehow, so disabled for now. -JD - if (current_menu->file != current_file) { - zconf_error("'%s' in different file than '%s'", - kconf_id_strings + id->name, zconf_tokenname(starttoken)); - fprintf(stderr, "%s:%d: location of the '%s'\n", - current_menu->file->name, current_menu->lineno, - zconf_tokenname(starttoken)); - zconfnerrs++; - return false; - } -#endif - return true; -} - -static void zconfprint(const char *err, ...) -{ - va_list ap; - - fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); - va_start(ap, err); - vfprintf(stderr, err, ap); - va_end(ap); - fprintf(stderr, "\n"); -} - -static void zconf_error(const char *err, ...) -{ - va_list ap; - - zconfnerrs++; - fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); - va_start(ap, err); - vfprintf(stderr, err, ap); - va_end(ap); - fprintf(stderr, "\n"); -} - -static void zconferror(const char *err) -{ - fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); -} - -static void print_quoted_string(FILE *out, const char *str) -{ - const char *p; - int len; - - putc('"', out); - while ((p = strchr(str, '"'))) { - len = p - str; - if (len) - fprintf(out, "%.*s", len, str); - fputs("\\\"", out); - str = p + 1; - } - fputs(str, out); - putc('"', out); -} - -static void print_symbol(FILE *out, struct menu *menu) -{ - struct symbol *sym = menu->sym; - struct property *prop; - - if (sym_is_choice(sym)) - fprintf(out, "\nchoice\n"); - else - fprintf(out, "\nconfig %s\n", sym->name); - switch (sym->type) { - case S_BOOLEAN: - fputs(" boolean\n", out); - break; - case S_TRISTATE: - fputs(" tristate\n", out); - break; - case S_STRING: - fputs(" string\n", out); - break; - case S_INT: - fputs(" integer\n", out); - break; - case S_HEX: - fputs(" hex\n", out); - break; - default: - fputs(" ???\n", out); - break; - } - for (prop = sym->prop; prop; prop = prop->next) { - if (prop->menu != menu) - continue; - switch (prop->type) { - case P_PROMPT: - fputs(" prompt ", out); - print_quoted_string(out, prop->text); - if (!expr_is_yes(prop->visible.expr)) { - fputs(" if ", out); - expr_fprint(prop->visible.expr, out); - } - fputc('\n', out); - break; - case P_DEFAULT: - fputs( " default ", out); - expr_fprint(prop->expr, out); - if (!expr_is_yes(prop->visible.expr)) { - fputs(" if ", out); - expr_fprint(prop->visible.expr, out); - } - fputc('\n', out); - break; - case P_CHOICE: - fputs(" #choice value\n", out); - break; - case P_SELECT: - fputs( " select ", out); - expr_fprint(prop->expr, out); - fputc('\n', out); - break; - case P_RANGE: - fputs( " range ", out); - expr_fprint(prop->expr, out); - fputc('\n', out); - break; - case P_MENU: - fputs( " menu ", out); - print_quoted_string(out, prop->text); - fputc('\n', out); - break; - default: - fprintf(out, " unknown prop %d!\n", prop->type); - break; - } - } - if (menu->help) { - int len = strlen(menu->help); - while (menu->help[--len] == '\n') - menu->help[len] = 0; - fprintf(out, " help\n%s\n", menu->help); - } -} - -void zconfdump(FILE *out) -{ - struct property *prop; - struct symbol *sym; - struct menu *menu; - - menu = rootmenu.list; - while (menu) { - if ((sym = menu->sym)) - print_symbol(out, menu); - else if ((prop = menu->prompt)) { - switch (prop->type) { - case P_COMMENT: - fputs("\ncomment ", out); - print_quoted_string(out, prop->text); - fputs("\n", out); - break; - case P_MENU: - fputs("\nmenu ", out); - print_quoted_string(out, prop->text); - fputs("\n", out); - break; - default: - ; - } - if (!expr_is_yes(prop->visible.expr)) { - fputs(" depends ", out); - expr_fprint(prop->visible.expr, out); - fputc('\n', out); - } - } - - if (menu->list) - menu = menu->list; - else if (menu->next) - menu = menu->next; - else while ((menu = menu->parent)) { - if (menu->prompt && menu->prompt->type == P_MENU) - fputs("\nendmenu\n", out); - if (menu->next) { - menu = menu->next; - break; - } - } - } -} - -#include "zconf.lex.c" -#include "util.c" -#include "confdata.c" -#include "expr.c" -#include "symbol.c" -#include "menu.c" - diff --git a/rtos/tools/kconfig/zconf.tab.d b/rtos/tools/kconfig/zconf.tab.d deleted file mode 100644 index 2be6c14..0000000 --- a/rtos/tools/kconfig/zconf.tab.d +++ /dev/null @@ -1,137 +0,0 @@ -zconf.tab.o: zconf.tab.c \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/ctype.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_ctype.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/cdefs.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_symbol_aliasing.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_posix_availability.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/runetype.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_size_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ct_rune_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_rune_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_wchar_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_wint_t.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/stdarg.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/Availability.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/AvailabilityInternal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_va_list.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/types.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int8_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int16_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int32_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_int64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int8_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int16_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int32_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_u_int64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_intptr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_uintptr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_null.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_off_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ssize_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_stdio.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_common.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdlib.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/wait.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_pid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_id_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/appleapiopts.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/signal.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/_mcontext.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/_mcontext.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/mach/machine/_structs.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/mach/i386/_structs.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_sigaltstack.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ucontext.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_sigset_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_uid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/resource.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/stdint.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdint.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint8_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint16_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint32_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uint64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_intmax_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_types/_uintmax_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_timeval.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/endian.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/endian.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_endian.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libkern/_OSByteOrder.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libkern/i386/_OSByteOrder.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/alloca.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_dev_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_mode_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/string.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_rsize_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_errno_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/strings.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_strings.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/secure/_string.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/stdbool.h \ - lkc.h expr.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/assert.h \ - list.h lkc_proto.h zconf.hash.c zconf.lex.c \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/errno.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/errno.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/inttypes.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/inttypes.h \ - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/include/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/machine/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/i386/_limits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syslimits.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/unistd.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/unistd.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_posix_vdisable.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_seek_set.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_gid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_useconds_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/select.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_def.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_timespec.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_time_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_suseconds_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_setsize.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_set.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_clr.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_isset.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_zero.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_fd_copy.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_select.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_uuid_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/gethostuuid.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/wordexp.h \ - util.c confdata.c \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/stat.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_blkcnt_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_blksize_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ino_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_ino64_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_nlink_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_s_ifmt.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_filesec_t.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/fcntl.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/fcntl.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_o_sync.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_o_dsync.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/time.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/_types/_clock_t.h \ - expr.c symbol.c \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/regex.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/_regex.h \ - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/utsname.h \ - menu.c -- 2.55.0