diff --git a/meta/classes/chrpath.bbclass b/meta/classes/chrpath.bbclass index 0c7ab77..61a24b3 100644 --- a/meta/classes/chrpath.bbclass +++ b/meta/classes/chrpath.bbclass @@ -1,18 +1,103 @@ CHRPATH_BIN ?= "chrpath" PREPROCESS_RELOCATE_DIRS ?= "" -def process_dir (directory, d): +def process_file_linux(cmd, fpath, basedir, tmpdir, d): import subprocess as sub + + p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE) + err, out = p.communicate() + # If returned succesfully, process stderr for results + if p.returncode != 0: + return + + # Throw away everything other than the rpath list + curr_rpath = err.partition("RPATH=")[2] + #bb.note("Current rpath for %s is %s" % (fpath, curr_rpath.strip())) + rpaths = curr_rpath.split(":") + new_rpaths = [] + for rpath in rpaths: + # If rpath is already dynamic copy it to new_rpath and continue + if rpath.find("$ORIGIN") != -1: + new_rpaths.append(rpath.strip()) + continue + rpath = os.path.normpath(rpath) + # If the rpath shares a root with base_prefix determine a new dynamic rpath from the + # base_prefix shared root + if rpath.find(basedir) != -1: + depth = fpath.partition(basedir)[2].count('/') + libpath = rpath.partition(basedir)[2].strip() + # otherwise (i.e. cross packages) determine a shared root based on the TMPDIR + # NOTE: This will not work reliably for cross packages, particularly in the case + # where your TMPDIR is a short path (i.e. /usr/poky) as chrpath cannot insert an + # rpath longer than that which is already set. + elif rpath.find(tmpdir) != -1: + depth = fpath.rpartition(tmpdir)[2].count('/') + libpath = rpath.partition(tmpdir)[2].strip() + else: + new_rpaths.append(rpath.strip()) + return + base = "$ORIGIN" + while depth > 1: + base += "/.." + depth-=1 + new_rpaths.append("%s%s" % (base, libpath)) + + # if we have modified some rpaths call chrpath to update the binary + if len(new_rpaths): + args = ":".join(new_rpaths) + #bb.note("Setting rpath for %s to %s" %(fpath, args)) + p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE) + out, err = p.communicate() + if p.returncode != 0: + bb.error("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN', True), p.returncode, out, err)) + raise bb.build.FuncFailed + +def process_file_darwin(cmd, fpath, basedir, tmpdir, d): + import subprocess as sub + + p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE) + err, out = p.communicate() + # If returned succesfully, process stderr for results + if p.returncode != 0: + return + for l in err.split("\n"): + if "(compatibility" not in l: + continue + rpath = l.partition("(compatibility")[0].strip() + if rpath.find(basedir) != -1: + depth = fpath.partition(basedir)[2].count('/') + libpath = rpath.partition(basedir)[2].strip() + else: + continue + + base = "@loader_path" + while depth > 1: + base += "/.." + depth-=1 + base = base + libpath + p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, base, fpath],stdout=sub.PIPE,stderr=sub.PIPE) + err, out = p.communicate() + +def process_dir (directory, d): import stat cmd = d.expand('${CHRPATH_BIN}') tmpdir = os.path.normpath(d.getVar('TMPDIR')) basedir = os.path.normpath(d.expand('${base_prefix}')) + hostos = d.getVar("HOST_OS", True) #bb.debug("Checking %s for binaries to process" % directory) if not os.path.exists(directory): return + if "linux" in hostos: + process_file = process_file_linux + elif "darwin" in hostos: + process_file = process_file_darwin + else: + # Relocations not supported + return + dirs = os.listdir(directory) for file in dirs: fpath = directory + "/" + file @@ -35,55 +120,8 @@ def process_dir (directory, d): else: # Temporarily make the file writeable so we can chrpath it os.chmod(fpath, perms|stat.S_IRWXU) - - p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE) - err, out = p.communicate() - # If returned succesfully, process stderr for results - if p.returncode != 0: - continue - - # Throw away everything other than the rpath list - curr_rpath = err.partition("RPATH=")[2] - #bb.note("Current rpath for %s is %s" % (fpath, curr_rpath.strip())) - rpaths = curr_rpath.split(":") - new_rpaths = [] - for rpath in rpaths: - # If rpath is already dynamic copy it to new_rpath and continue - if rpath.find("$ORIGIN") != -1: - new_rpaths.append(rpath.strip()) - continue - rpath = os.path.normpath(rpath) - # If the rpath shares a root with base_prefix determine a new dynamic rpath from the - # base_prefix shared root - if rpath.find(basedir) != -1: - depth = fpath.partition(basedir)[2].count('/') - libpath = rpath.partition(basedir)[2].strip() - # otherwise (i.e. cross packages) determine a shared root based on the TMPDIR - # NOTE: This will not work reliably for cross packages, particularly in the case - # where your TMPDIR is a short path (i.e. /usr/poky) as chrpath cannot insert an - # rpath longer than that which is already set. - elif rpath.find(tmpdir) != -1: - depth = fpath.rpartition(tmpdir)[2].count('/') - libpath = rpath.partition(tmpdir)[2].strip() - else: - new_rpaths.append(rpath.strip()) - continue - base = "$ORIGIN" - while depth > 1: - base += "/.." - depth-=1 - new_rpaths.append("%s%s" % (base, libpath)) - - # if we have modified some rpaths call chrpath to update the binary - if len(new_rpaths): - args = ":".join(new_rpaths) - #bb.note("Setting rpath for %s to %s" %(fpath, args)) - p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE) - out, err = p.communicate() - if p.returncode != 0: - bb.error("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN', True), p.returncode, out, err)) - raise bb.build.FuncFailed - + process_file(cmd, fpath, basedir, tmpdir, d) + if perms: os.chmod(fpath, perms) diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass index 7ab36ac..a6eb3e5 100644 --- a/meta/classes/cross-canadian.bbclass +++ b/meta/classes/cross-canadian.bbclass @@ -14,25 +14,25 @@ STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S # # Update BASE_PACKAGE_ARCH and PACKAGE_ARCHS # -PACKAGE_ARCH = "${SDK_ARCH}-nativesdk" +PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}" python () { archs = d.getVar('PACKAGE_ARCHS', True).split() sdkarchs = [] for arch in archs: - sdkarchs.append(arch + '-nativesdk') + sdkarchs.append(arch + '-${SDKPKGSUFFIX}') d.setVar('PACKAGE_ARCHS', " ".join(sdkarchs)) } MULTIMACH_TARGET_SYS = "${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" INHIBIT_DEFAULT_DEPS = "1" -STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" +STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}" -TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" +TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}" PATH_append = ":${TMPDIR}/sysroots/${HOST_ARCH}/${bindir_cross}" -PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" -PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/" +PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}" +PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/" HOST_ARCH = "${SDK_ARCH}" HOST_VENDOR = "${SDK_VENDOR}" @@ -90,7 +90,7 @@ export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig" export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" # Cross-canadian packages need to pull in nativesdk dynamic libs -SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/" -SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/" +SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/" +SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/" do_populate_sysroot[stamp-extra-info] = "" diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass index 32b14d3..5dd910f 100644 --- a/meta/classes/crosssdk.bbclass +++ b/meta/classes/crosssdk.bbclass @@ -7,7 +7,7 @@ python () { d.setVar('TUNE_PKGARCH', d.getVar('SDK_ARCH', True)) } -STAGING_DIR_TARGET = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}" +STAGING_DIR_TARGET = "${STAGING_DIR}/${SDK_ARCH}-${SDKPKGSUFFIX}${SDK_VENDOR}-${SDK_OS}" STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}" TARGET_ARCH = "${SDK_ARCH}" @@ -23,7 +23,7 @@ target_libdir = "${SDKPATHNATIVE}${libdir_nativesdk}" target_includedir = "${SDKPATHNATIVE}${includedir_nativesdk}" target_base_libdir = "${SDKPATHNATIVE}${base_libdir_nativesdk}" target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" -target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}" +target_exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" baselib = "lib" do_populate_sysroot[stamp-extra-info] = "" diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass index 17c894f..4db6923 100644 --- a/meta/classes/gettext.bbclass +++ b/meta/classes/gettext.bbclass @@ -1,5 +1,5 @@ def gettext_dependencies(d): - if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'native', 'nativesdk', 'cross'): + if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'native', 'cross'): return "" if d.getVar('INHIBIT_DEFAULT_DEPS', True) and not oe.utils.inherits(d, 'cross-canadian'): return "" @@ -11,7 +11,7 @@ def gettext_oeconf(d): if oe.utils.inherits(d, 'native', 'cross'): return '--disable-nls' # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set - if (d.getVar('USE_NLS', True) == 'no' or d.getVar('INHIBIT_DEFAULT_DEPS', True)) and not oe.utils.inherits(d, 'nativesdk', 'cross-canadian'): + if (d.getVar('USE_NLS', True) == 'no' or d.getVar('INHIBIT_DEFAULT_DEPS', True)) and not oe.utils.inherits(d, 'cross-canadian'): return '--disable-nls' return "--enable-nls" diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass index 8b689e7..28d755b 100644 --- a/meta/classes/nativesdk.bbclass +++ b/meta/classes/nativesdk.bbclass @@ -13,7 +13,7 @@ CLASSOVERRIDE = "class-nativesdk" # # Update PACKAGE_ARCH and PACKAGE_ARCHS # -PACKAGE_ARCH = "${SDK_ARCH}-nativesdk" +PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}" PACKAGE_ARCHS = "${SDK_PACKAGE_ARCHS}" # diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 80aaec2..5a637c6 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -313,6 +313,12 @@ def copydebugsources(debugsrcdir, d): #if retval: # bb.fatal("debug source copy failed with exit code %s (cmd was %s)" % (retval, cmd)) + # cpio seems to have a bug with -lL together and symbolic links are just copied, not dereferenced. + # Work around this by manually finding and copying any symbolic links that made it through. + cmd = "find %s%s -type l -print0 -delete | sed s#%s%s/##g | (cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s' 2>/dev/null)" % (dvar, debugsrcdir, dvar, debugsrcdir, workparentdir, dvar, debugsrcdir) + retval = subprocess.call(cmd, shell=True) + if retval: + bb.fatal("debugsrc symlink fixup failed with exit code %s (cmd was %s)" % (retval, cmd)) # The copy by cpio may have resulted in some empty directories! Remove these cmd = "find %s%s -empty -type d -delete" % (dvar, debugsrcdir) diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index 897159a..69ce859 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -108,11 +108,13 @@ fakeroot create_sdk_files() { sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py } +SDKTAROPTS = "--owner=root --group=root -j" + fakeroot tar_sdk() { # Package it up mkdir -p ${SDK_DEPLOY} cd ${SDK_OUTPUT}/${SDKPATH} - tar --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . + tar ${SDKTAROPTS} -c --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . } fakeroot create_shar() { diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index cd5d61e..0e59267 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -126,7 +126,8 @@ SDK_VENDOR = "-oesdk" SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}${@['-' + d.getVar('SDK_OS', True), ''][d.getVar('SDK_OS', True) == ('' or 'custom')]}" SDK_PREFIX = "${SDK_SYS}-" SDK_CC_ARCH = "${BUILD_CC_ARCH}" -SDK_PACKAGE_ARCHS = "all any noarch ${SDK_ARCH}-nativesdk" +SDKPKGSUFFIX = "nativesdk" +SDK_PACKAGE_ARCHS = "all any noarch ${SDK_ARCH}-${SDKPKGSUFFIX}" SDK_LD_ARCH = "${BUILD_LD_ARCH}" SDK_AS_ARCH = "${BUILD_AS_ARCH}" @@ -257,14 +258,14 @@ RPROVIDES = "" MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives" SOLIBS = ".so.*" -SOLIBS_darwin = ".*.dylib" -SOLIBS_darwin8 = ".*.dylib" -SOLIBS_darwin9 = ".*.dylib" +SOLIBS_darwin = ".dylib" +SOLIBS_darwin8 = ".dylib" +SOLIBS_darwin9 = ".dylib" SOLIBSDEV = ".so" -SOLIBSDEV_darwin = ".dylib" -SOLIBSDEV_darwin8 = ".dylib" -SOLIBSDEV_darwin9 = ".dylib" +SOLIBSDEV_darwin = ".dylibxx" +SOLIBSDEV_darwin8 = ".dylibxx" +SOLIBSDEV_darwin9 = ".dylibxx" PACKAGE_BEFORE_PN ?= "" PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}" diff --git a/meta/recipes-core/gettext/gettext_0.18.2.bb b/meta/recipes-core/gettext/gettext_0.18.2.bb index 086f7fa..0cd0fe5 100644 --- a/meta/recipes-core/gettext/gettext_0.18.2.bb +++ b/meta/recipes-core/gettext/gettext_0.18.2.bb @@ -6,7 +6,7 @@ LICENSE = "GPLv3+ & LGPL-2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" PR = "r0" -DEPENDS = "gettext-native virtual/libiconv ncurses expat" +DEPENDS = "gettext-native virtual/libiconv expat" DEPENDS_class-native = "gettext-minimal-native" PROVIDES = "virtual/libintl virtual/gettext" PROVIDES_class-native = "virtual/gettext-native" @@ -22,6 +22,8 @@ SRC_URI[sha256sum] = "516a6370b3b3f46e2fc5a5e222ff5ecd76f3089bc956a7587a6e4f89de inherit autotools +PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses," + EXTRA_OECONF += "--without-lispdir \ --disable-csharp \ --disable-libasprintf \ @@ -30,7 +32,6 @@ EXTRA_OECONF += "--without-lispdir \ --disable-openmp \ --disable-acl \ --with-included-glib \ - --with-libncurses-prefix=${STAGING_LIBDIR}/.. \ --without-emacs \ --without-cvs \ --without-git \ diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb index 63fea28..b36b41a 100644 --- a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb @@ -29,3 +29,11 @@ RDEPENDS_${PN}_darwin8 = "\ nativesdk-opkg \ nativesdk-libtool \ " + +RDEPENDS_${PN}_mingw32 = "\ + nativesdk-libtool \ + " + +RDEPENDS_${PN}_darwin = "\ + nativesdk-libtool \ + " diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb index a6c6c36..1f18944 100644 --- a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb +++ b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb @@ -20,3 +20,9 @@ RDEPENDS_${PN} = "\ meta-environment-${TRANSLATED_TARGET_ARCH} \ " +RDEPENDS_${PN} = "\ + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ + meta-environment-${TRANSLATED_TARGET_ARCH} \ + " + diff --git a/meta/recipes-devtools/gcc/gcc-4.7.inc b/meta/recipes-devtools/gcc/gcc-4.7.inc index 81c8f07..6f3c16a 100644 --- a/meta/recipes-devtools/gcc/gcc-4.7.inc +++ b/meta/recipes-devtools/gcc/gcc-4.7.inc @@ -78,6 +78,8 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ file://wcast-qual-PR55383.patch \ file://disable-texinfo-5.patch \ file://avoid-oob-array-access.patch \ + file://cpp.patch \ + file://gengtype.patch \ " SRC_URI[md5sum] = "cc308a0891e778cfda7a151ab8a6e762" SRC_URI[sha256sum] = "8a9283d7010fb9fe5ece3ca507e0af5c19412626384f8a5e9434251ae100b084" diff --git a/meta/recipes-devtools/gcc/gcc-4.7/cpp.patch b/meta/recipes-devtools/gcc/gcc-4.7/cpp.patch new file mode 100644 index 0000000..feb4eab --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.7/cpp.patch @@ -0,0 +1,12 @@ +Index: gcc-4.8.1/Makefile.in +=================================================================== +--- gcc-4.8.1.orig/Makefile.in 2013-03-30 11:25:03.000000000 +0000 ++++ gcc-4.8.1/Makefile.in 2013-08-13 12:03:17.151988882 +0000 +@@ -149,6 +149,7 @@ + AR="$(AR_FOR_BUILD)"; export AR; \ + AS="$(AS_FOR_BUILD)"; export AS; \ + CC="$(CC_FOR_BUILD)"; export CC; \ ++ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ diff --git a/meta/recipes-devtools/gcc/gcc-4.7/gengtype.patch b/meta/recipes-devtools/gcc/gcc-4.7/gengtype.patch new file mode 100644 index 0000000..b6fc4ce --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.7/gengtype.patch @@ -0,0 +1,2658 @@ +Index: gcc-4.7.2/gcc/Makefile.in +=================================================================== +--- gcc-4.7.2.orig/gcc/Makefile.in 2013-08-19 15:16:46.415714038 +0000 ++++ gcc-4.7.2/gcc/Makefile.in 2013-08-19 15:41:49.655680143 +0000 +@@ -3964,7 +3964,7 @@ + # any system header is included. + gengtype-lex.c : gengtype-lex.l + -$(FLEX) $(FLEXFLAGS) -o$@ $< && { \ +- echo '#include "bconfig.h"' > $@.tmp; \ ++ echo '' > $@.tmp; \ + cat $@ >> $@.tmp; \ + mv $@.tmp $@; \ + } +Index: gcc-4.7.2/gcc/gengtype-lex.c +=================================================================== +--- gcc-4.7.2.orig/gcc/gengtype-lex.c 2012-09-20 07:25:55.000000000 +0000 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 +@@ -1,2640 +0,0 @@ +-#include "bconfig.h" +-#line 2 "gengtype-lex.c" +- +-#line 4 "gengtype-lex.c" +- +-#define YY_INT_ALIGNED short int +- +-/* A lexical scanner generated by flex */ +- +-#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; +-#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 yyrestart(yyin ) +- +-#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 +- +-extern int yyleng; +- +-extern FILE *yyin, *yyout; +- +-#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 yytext. */ \ +- 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 yytext again */ \ +- } \ +- while ( 0 ) +- +-#define unput(c) yyunput( c, (yytext_ptr) ) +- +-#ifndef YY_TYPEDEF_YY_SIZE_T +-#define YY_TYPEDEF_YY_SIZE_T +-typedef size_t yy_size_t; +-#endif +- +-#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. +- */ +- int 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 yyrestart()), so that the user can continue scanning by +- * just pointing yyin 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 yytext is formed. */ +-static char yy_hold_char; +-static int yy_n_chars; /* number of characters read into yy_ch_buf */ +-int yyleng; +- +-/* 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 yywrap()'s to do buffer switches +- * instead of setting up a fresh yyin. A bit of a hack ... +- */ +-static int yy_did_buffer_switch_on_eof; +- +-void yyrestart (FILE *input_file ); +-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +-void yy_delete_buffer (YY_BUFFER_STATE b ); +-void yy_flush_buffer (YY_BUFFER_STATE b ); +-void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +-void yypop_buffer_state (void ); +- +-static void yyensure_buffer_stack (void ); +-static void yy_load_buffer_state (void ); +-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +- +-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) +- +-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); +- +-void *yyalloc (yy_size_t ); +-void *yyrealloc (void *,yy_size_t ); +-void yyfree (void * ); +- +-#define yy_new_buffer yy_create_buffer +- +-#define yy_set_interactive(is_interactive) \ +- { \ +- if ( ! YY_CURRENT_BUFFER ){ \ +- yyensure_buffer_stack (); \ +- YY_CURRENT_BUFFER_LVALUE = \ +- yy_create_buffer(yyin,YY_BUF_SIZE ); \ +- } \ +- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ +- } +- +-#define yy_set_bol(at_bol) \ +- { \ +- if ( ! YY_CURRENT_BUFFER ){\ +- yyensure_buffer_stack (); \ +- YY_CURRENT_BUFFER_LVALUE = \ +- yy_create_buffer(yyin,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 yywrap(n) 1 +-#define YY_SKIP_YYWRAP +- +-typedef unsigned char YY_CHAR; +- +-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +- +-typedef int yy_state_type; +- +-extern int yylineno; +- +-int yylineno = 1; +- +-extern char *yytext; +-#define yytext_ptr yytext +- +-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 yytext. +- */ +-#define YY_DO_BEFORE_ACTION \ +- (yytext_ptr) = yy_bp; \ +- yyleng = (size_t) (yy_cp - yy_bp); \ +- (yy_hold_char) = *yy_cp; \ +- *yy_cp = '\0'; \ +- (yy_c_buf_p) = yy_cp; +- +-#define YY_NUM_RULES 48 +-#define YY_END_OF_BUFFER 49 +-/* 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[458] = +- { 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 49, 36, +- 33, 45, 36, 45, 34, 36, 36, 34, 34, 34, +- 34, 34, 31, 10, 10, 31, 29, 31, 31, 31, +- 20, 31, 31, 31, 31, 31, 31, 31, 31, 31, +- 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, +- 10, 31, 41, 39, 46, 46, 0, 37, 0, 0, +- 0, 38, 32, 34, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 34, 34, 34, 34, 34, 10, 0, +- 25, 0, 0, 0, 0, 9, 20, 24, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 26, 11, 0, +- +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 10, 0, 0, 0, 0, 42, 44, +- 43, 35, 0, 0, 0, 0, 0, 0, 34, 34, +- 34, 34, 34, 34, 27, 28, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 34, 34, 34, 34, 34, 34, 0, 0, 0, +- 13, 0, 0, 14, 0, 0, 0, 0, 22, 22, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- +- 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, +- 34, 34, 34, 0, 0, 0, 0, 0, 0, 17, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, +- 34, 3, 0, 0, 0, 0, 0, 12, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, +- 0, 0, 0, 34, 4, 5, 2, 34, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 16, 0, 0, 0, 0, 34, 1, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, +- 0, 0, 34, 7, 6, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, +- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 19, 0, 0, 47, 34, 0, 0, 0, 0, +- +- 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 34, 0, 24, +- 24, 0, 0, 0, 0, 0, 0, 0, 0, 34, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 8, 0, 23, 0, 0, 0, 0, 0, +- 40, 0, 0, 0, 0, 0, 0 +- } ; +- +-static yyconst flex_int32_t yy_ec[256] = +- { 0, +- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, +- 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 2, 1, 4, 5, 1, 6, 1, 7, 8, +- 9, 10, 1, 6, 6, 11, 12, 13, 13, 13, +- 13, 13, 13, 13, 13, 13, 13, 6, 6, 6, +- 6, 6, 1, 1, 14, 15, 16, 17, 18, 19, +- 20, 21, 22, 23, 23, 24, 25, 26, 27, 28, +- 23, 29, 30, 31, 32, 33, 34, 23, 35, 23, +- 36, 37, 38, 1, 39, 1, 40, 41, 42, 43, +- +- 44, 45, 46, 47, 48, 49, 49, 50, 51, 52, +- 53, 54, 49, 55, 56, 57, 58, 59, 49, 60, +- 61, 62, 6, 6, 6, 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 yyconst flex_int32_t yy_meta[63] = +- { 0, +- 1, 2, 3, 1, 1, 1, 1, 1, 4, 5, +- 1, 1, 6, 7, 7, 7, 7, 7, 7, 7, +- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, +- 7, 7, 7, 7, 7, 8, 1, 1, 9, 9, +- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, +- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, +- 9, 9 +- } ; +- +-static yyconst flex_int16_t yy_base[496] = +- { 0, +- 0, 38, 96, 12, 12, 13, 15, 16, 1038, 1444, +- 1444, 16, 1000, 1026, 0, 157, 19, 1017, 974, 976, +- 971, 979, 1444, 25, 27, 20, 1444, 993, 1018, 1018, +- 1014, 215, 253, 4, 7, 25, 40, 41, 988, 1022, +- 8, 31, 33, 36, 37, 38, 39, 133, 134, 136, +- 67, 1022, 0, 1444, 1011, 1010, 160, 1444, 0, 1014, +- 1017, 1444, 1444, 0, 187, 163, 1001, 958, 960, 940, +- 948, 164, 955, 979, 940, 31, 942, 947, 77, 163, +- 1444, 991, 986, 989, 980, 1444, 977, 1444, 962, 961, +- 65, 58, 46, 141, 142, 159, 949, 1444, 1444, 149, +- +- 144, 151, 150, 152, 181, 153, 156, 184, 213, 214, +- 220, 215, 221, 191, 984, 983, 291, 0, 1444, 1444, +- 1444, 1444, 965, 926, 195, 928, 933, 935, 940, 919, +- 905, 903, 916, 906, 1444, 1444, 171, 256, 160, 353, +- 219, 201, 391, 354, 350, 222, 246, 355, 247, 429, +- 339, 172, 244, 248, 352, 356, 340, 351, 359, 394, +- 429, 1444, 0, 0, 919, 913, 899, 897, 910, 900, +- 904, 918, 895, 901, 906, 904, 894, 249, 347, 348, +- 1444, 349, 383, 1444, 386, 387, 491, 388, 1444, 528, +- 419, 396, 384, 391, 477, 422, 478, 398, 479, 0, +- +- 912, 889, 895, 900, 898, 873, 872, 905, 870, 879, +- 863, 875, 586, 437, 495, 492, 252, 203, 624, 1444, +- 0, 891, 889, 496, 863, 868, 870, 861, 859, 322, +- 859, 481, 499, 484, 489, 399, 488, 662, 0, 892, +- 857, 866, 850, 862, 0, 861, 888, 700, 738, 776, +- 858, 1444, 431, 344, 432, 433, 435, 1444, 860, 858, +- 856, 854, 830, 842, 822, 363, 828, 826, 471, 822, +- 508, 523, 491, 510, 814, 1444, 0, 861, 0, 0, +- 0, 831, 511, 836, 1444, 1444, 1444, 852, 515, 513, +- 524, 521, 536, 850, 857, 855, 840, 820, 814, 829, +- +- 828, 554, 820, 810, 797, 804, 799, 527, 545, 533, +- 1444, 0, 807, 0, 562, 552, 1444, 353, 572, 540, +- 573, 550, 806, 823, 804, 803, 784, 783, 1444, 0, +- 782, 794, 798, 790, 548, 890, 558, 0, 589, 804, +- 810, 928, 966, 582, 586, 588, 591, 610, 818, 818, +- 802, 796, 786, 771, 592, 1444, 1004, 0, 803, 0, +- 0, 776, 786, 1444, 1444, 621, 618, 623, 624, 625, +- 631, 787, 779, 789, 784, 1042, 1444, 0, 781, 796, +- 776, 619, 580, 630, 628, 648, 650, 771, 762, 780, +- 782, 1444, 0, 771, 1444, 781, 661, 662, 664, 657, +- +- 655, 777, 765, 755, 775, 0, 776, 752, 666, 724, +- 668, 768, 767, 743, 683, 0, 733, 692, 658, 713, +- 715, 665, 753, 750, 751, 736, 743, 0, 701, 1080, +- 703, 750, 722, 752, 754, 740, 709, 702, 692, 664, +- 0, 0, 1444, 757, 1444, 759, 627, 602, 561, 530, +- 1444, 438, 393, 378, 202, 56, 1444, 1118, 1127, 1136, +- 1145, 1154, 1158, 1167, 1176, 1185, 1194, 1202, 1211, 1220, +- 1229, 1238, 1247, 1256, 1265, 1273, 1282, 1290, 1298, 1306, +- 1314, 1323, 1331, 1340, 1349, 1357, 1365, 1374, 1383, 1392, +- 1400, 1409, 1417, 1426, 1435 +- +- } ; +- +-static yyconst flex_int16_t yy_def[496] = +- { 0, +- 458, 458, 457, 3, 459, 459, 459, 459, 457, 457, +- 457, 460, 461, 462, 463, 457, 457, 463, 463, 463, +- 463, 463, 457, 457, 457, 464, 457, 465, 457, 457, +- 457, 466, 466, 33, 33, 33, 33, 33, 467, 457, +- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, +- 457, 468, 469, 457, 470, 470, 460, 457, 460, 457, +- 461, 457, 457, 463, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 463, 463, 463, 463, 463, 457, 464, +- 457, 464, 457, 465, 457, 457, 457, 457, 33, 33, +- 33, 33, 33, 33, 33, 33, 467, 457, 457, 33, +- +- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, +- 33, 33, 33, 457, 468, 468, 457, 471, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 463, 463, +- 463, 463, 463, 463, 457, 457, 33, 33, 33, 466, +- 33, 33, 466, 33, 33, 33, 33, 33, 33, 466, +- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, +- 117, 457, 117, 472, 457, 457, 457, 457, 457, 457, +- 457, 463, 463, 463, 463, 463, 463, 33, 33, 33, +- 457, 33, 33, 457, 33, 33, 466, 33, 457, 457, +- 33, 33, 33, 33, 33, 33, 33, 33, 33, 473, +- +- 457, 457, 457, 457, 457, 457, 457, 463, 463, 463, +- 463, 463, 463, 33, 33, 33, 33, 33, 466, 457, +- 190, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 33, 33, 33, 33, 33, 33, 466, 474, 457, +- 457, 457, 457, 457, 475, 457, 463, 463, 463, 463, +- 463, 457, 33, 33, 33, 33, 33, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 33, 33, 33, 33, 466, 457, 476, 457, 477, 478, +- 479, 457, 457, 463, 457, 457, 457, 463, 33, 33, +- 33, 33, 33, 457, 457, 457, 457, 457, 457, 457, +- +- 457, 480, 457, 457, 457, 457, 457, 33, 33, 33, +- 457, 481, 457, 482, 457, 463, 457, 33, 33, 33, +- 33, 33, 457, 457, 457, 457, 457, 457, 457, 190, +- 457, 457, 457, 457, 33, 466, 33, 483, 457, 457, +- 463, 463, 463, 33, 33, 33, 33, 33, 457, 457, +- 457, 457, 457, 457, 33, 457, 466, 484, 457, 485, +- 486, 457, 463, 457, 457, 33, 33, 33, 33, 33, +- 33, 457, 457, 457, 457, 466, 457, 487, 457, 457, +- 463, 33, 33, 33, 33, 33, 33, 457, 457, 457, +- 457, 457, 488, 457, 457, 463, 33, 33, 33, 33, +- +- 33, 457, 457, 457, 457, 489, 457, 463, 33, 33, +- 33, 457, 457, 457, 457, 490, 457, 463, 33, 457, +- 491, 33, 457, 457, 457, 457, 457, 492, 457, 463, +- 33, 457, 491, 491, 493, 457, 457, 457, 457, 457, +- 494, 495, 457, 457, 457, 493, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 0, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457 +- +- } ; +- +-static yyconst flex_int16_t yy_nxt[1507] = +- { 0, +- 10, 10, 11, 12, 10, 10, 13, 10, 10, 10, +- 10, 14, 10, 51, 54, 54, 52, 54, 54, 58, +- 72, 55, 55, 81, 56, 56, 79, 79, 79, 79, +- 89, 91, 92, 89, 89, 10, 10, 10, 10, 16, +- 11, 12, 17, 10, 13, 10, 10, 10, 10, 14, +- 10, 89, 59, 94, 18, 93, 82, 89, 96, 89, +- 100, 73, 89, 89, 89, 89, 95, 89, 114, 79, +- 131, 115, 89, 10, 10, 10, 103, 101, 79, 79, +- 140, 19, 107, 102, 89, 132, 302, 104, 105, 139, +- 106, 89, 138, 20, 21, 22, 23, 24, 25, 26, +- +- 23, 27, 28, 27, 27, 27, 29, 30, 31, 32, +- 33, 34, 32, 35, 32, 36, 37, 32, 32, 32, +- 32, 32, 32, 32, 32, 32, 32, 32, 38, 32, +- 32, 39, 40, 23, 32, 32, 41, 42, 43, 44, +- 32, 32, 32, 45, 32, 46, 32, 47, 32, 48, +- 32, 49, 32, 50, 32, 32, 32, 32, 65, 89, +- 89, 66, 89, 58, 72, 72, 81, 89, 89, 141, +- 89, 142, 108, 67, 143, 89, 89, 89, 89, 89, +- 110, 111, 89, 145, 180, 89, 89, 113, 65, 109, +- 112, 66, 114, 79, 178, 115, 59, 89, 89, 82, +- +- 68, 144, 146, 67, 151, 73, 73, 89, 147, 148, +- 89, 152, 69, 70, 71, 88, 88, 88, 88, 88, +- 88, 88, 88, 88, 88, 88, 88, 89, 191, 89, +- 68, 183, 302, 149, 167, 182, 257, 150, 153, 89, +- 89, 89, 69, 70, 71, 89, 89, 89, 89, 168, +- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, +- 88, 88, 88, 88, 88, 156, 155, 154, 159, 158, +- 89, 179, 89, 89, 89, 89, 160, 185, 89, 90, +- 256, 157, 89, 192, 186, 188, 193, 214, 88, 88, +- 88, 161, 161, 162, 161, 161, 161, 161, 161, 161, +- +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 163, +- 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, +- 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, +- 163, 163, 163, 181, 181, 181, 181, 181, 181, 181, +- 181, 181, 181, 181, 181, 89, 89, 215, 268, 269, +- 89, 344, 290, 89, 89, 89, 89, 89, 89, 89, +- 89, 89, 89, 196, 150, 89, 216, 217, 181, 181, +- 181, 184, 184, 184, 184, 184, 184, 184, 184, 184, +- +- 184, 184, 184, 150, 150, 187, 194, 195, 197, 89, +- 89, 198, 89, 89, 89, 301, 456, 89, 455, 302, +- 89, 218, 89, 234, 89, 89, 184, 184, 184, 189, +- 190, 190, 189, 189, 189, 189, 189, 189, 189, 189, +- 189, 199, 219, 150, 150, 89, 233, 150, 89, 238, +- 292, 253, 289, 291, 454, 150, 293, 89, 89, 89, +- 236, 89, 232, 89, 189, 189, 189, 161, 161, 161, +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, +- 161, 220, 220, 220, 220, 220, 220, 220, 220, 220, +- +- 220, 220, 220, 89, 89, 89, 255, 89, 254, 261, +- 89, 272, 315, 315, 89, 89, 305, 89, 89, 237, +- 235, 89, 262, 271, 156, 89, 220, 220, 220, 221, +- 221, 150, 306, 274, 89, 272, 89, 273, 309, 89, +- 321, 89, 222, 223, 275, 318, 308, 89, 224, 89, +- 89, 319, 322, 89, 320, 330, 330, 310, 346, 89, +- 302, 273, 89, 315, 315, 341, 89, 348, 225, 226, +- 227, 89, 337, 342, 89, 228, 89, 229, 343, 343, +- 335, 340, 453, 230, 89, 231, 252, 252, 252, 252, +- 252, 252, 252, 252, 252, 252, 252, 252, 89, 89, +- +- 336, 345, 359, 366, 355, 398, 89, 367, 89, 368, +- 360, 347, 89, 357, 89, 361, 361, 89, 89, 452, +- 369, 252, 252, 252, 258, 258, 258, 258, 258, 258, +- 258, 258, 258, 258, 258, 258, 89, 383, 382, 370, +- 384, 385, 397, 302, 89, 89, 376, 89, 371, 89, +- 89, 89, 387, 399, 89, 386, 89, 89, 150, 258, +- 258, 258, 276, 276, 276, 276, 276, 276, 276, 276, +- 276, 276, 276, 276, 89, 401, 89, 150, 411, 409, +- 410, 89, 419, 89, 89, 150, 400, 89, 89, 450, +- 89, 89, 89, 422, 89, 150, 431, 276, 276, 276, +- +- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, +- 285, 285, 426, 430, 432, 432, 434, 434, 430, 430, +- 433, 427, 442, 434, 434, 420, 420, 442, 442, 89, +- 449, 421, 302, 150, 448, 285, 285, 285, 286, 286, +- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, +- 89, 432, 432, 434, 434, 444, 444, 433, 444, 444, +- 444, 444, 445, 447, 440, 445, 439, 445, 438, 437, +- 436, 429, 425, 286, 286, 286, 287, 287, 287, 287, +- 287, 287, 287, 287, 287, 287, 287, 287, 424, 423, +- 418, 417, 415, 414, 413, 412, 408, 407, 405, 404, +- +- 403, 402, 396, 395, 394, 391, 390, 389, 388, 381, +- 380, 287, 287, 287, 311, 311, 311, 311, 311, 311, +- 311, 311, 311, 311, 311, 311, 379, 302, 302, 375, +- 374, 373, 372, 363, 362, 305, 354, 353, 302, 302, +- 302, 352, 351, 350, 349, 339, 334, 333, 332, 311, +- 311, 311, 317, 317, 317, 317, 317, 317, 317, 317, +- 317, 317, 317, 317, 331, 302, 328, 327, 302, 302, +- 326, 325, 324, 323, 316, 314, 313, 307, 304, 303, +- 300, 299, 298, 297, 296, 295, 294, 317, 317, 317, +- 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, +- +- 356, 356, 288, 284, 283, 282, 281, 280, 279, 278, +- 270, 267, 266, 265, 264, 263, 260, 259, 251, 250, +- 249, 248, 247, 246, 245, 356, 356, 356, 364, 364, +- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, +- 244, 243, 242, 241, 240, 213, 212, 211, 210, 209, +- 208, 207, 206, 205, 204, 203, 202, 201, 177, 176, +- 175, 174, 173, 364, 364, 364, 365, 365, 365, 365, +- 365, 365, 365, 365, 365, 365, 365, 365, 172, 171, +- 170, 169, 166, 165, 116, 116, 98, 137, 89, 87, +- 136, 457, 135, 457, 134, 133, 130, 129, 128, 127, +- +- 126, 365, 365, 365, 377, 377, 377, 377, 377, 377, +- 377, 377, 377, 377, 377, 377, 125, 124, 123, 457, +- 122, 121, 120, 116, 99, 98, 87, 86, 85, 84, +- 78, 77, 76, 75, 74, 63, 61, 457, 457, 377, +- 377, 377, 392, 392, 392, 392, 392, 392, 392, 392, +- 392, 392, 392, 392, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 392, 392, 392, +- 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, +- 443, 443, 457, 457, 457, 457, 457, 457, 457, 457, +- +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 443, 443, 443, 15, 15, +- 15, 15, 15, 15, 15, 15, 15, 53, 53, 53, +- 53, 53, 53, 53, 53, 53, 57, 57, 57, 57, +- 57, 57, 57, 57, 57, 60, 60, 60, 60, 60, +- 60, 60, 60, 60, 62, 62, 62, 62, 62, 62, +- 62, 62, 62, 64, 64, 457, 64, 80, 80, 80, +- 80, 80, 80, 80, 80, 80, 83, 83, 83, 83, +- 83, 83, 83, 83, 83, 89, 89, 89, 89, 89, +- 89, 89, 89, 89, 97, 97, 97, 97, 97, 97, +- +- 97, 457, 97, 117, 457, 457, 457, 457, 457, 457, +- 117, 118, 118, 457, 118, 457, 118, 118, 118, 118, +- 119, 119, 119, 119, 119, 119, 119, 119, 119, 164, +- 164, 457, 164, 457, 164, 164, 164, 164, 200, 200, +- 457, 200, 457, 200, 200, 200, 200, 239, 239, 457, +- 239, 457, 239, 239, 239, 239, 277, 277, 457, 277, +- 457, 277, 277, 277, 277, 252, 252, 252, 252, 252, +- 457, 457, 252, 312, 312, 457, 312, 457, 312, 312, +- 312, 312, 285, 285, 285, 285, 285, 457, 457, 285, +- 286, 286, 286, 286, 286, 457, 457, 286, 287, 287, +- +- 287, 287, 287, 457, 457, 287, 329, 329, 329, 329, +- 329, 457, 457, 329, 338, 338, 457, 338, 457, 338, +- 338, 338, 338, 317, 317, 317, 317, 317, 457, 457, +- 317, 358, 358, 457, 358, 457, 358, 358, 358, 358, +- 378, 378, 457, 378, 457, 378, 378, 378, 378, 364, +- 364, 364, 364, 364, 457, 457, 364, 365, 365, 365, +- 365, 365, 457, 457, 365, 393, 393, 457, 393, 457, +- 393, 393, 393, 393, 406, 406, 457, 406, 457, 406, +- 406, 406, 406, 416, 416, 457, 416, 457, 416, 416, +- 416, 416, 428, 428, 457, 428, 457, 428, 428, 428, +- +- 428, 435, 435, 457, 457, 457, 435, 457, 435, 441, +- 441, 457, 441, 457, 441, 441, 441, 441, 446, 446, +- 446, 457, 446, 446, 457, 446, 451, 451, 457, 451, +- 457, 451, 451, 451, 451, 443, 443, 443, 443, 443, +- 457, 457, 443, 9, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- +- 457, 457, 457, 457, 457, 457 +- } ; +- +-static yyconst flex_int16_t yy_chk[1507] = +- { 0, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 4, 5, 6, 4, 7, 8, 12, +- 17, 5, 6, 26, 7, 8, 24, 24, 25, 25, +- 34, 34, 35, 35, 41, 1, 1, 1, 2, 2, +- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +- 2, 36, 12, 37, 2, 36, 26, 42, 38, 43, +- 41, 17, 44, 45, 46, 47, 37, 38, 51, 51, +- 76, 51, 93, 2, 2, 2, 43, 42, 79, 79, +- 93, 2, 47, 42, 92, 76, 456, 44, 45, 92, +- 46, 91, 91, 2, 2, 2, 3, 3, 3, 3, +- +- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +- 3, 3, 3, 3, 3, 3, 3, 3, 16, 48, +- 49, 16, 50, 57, 66, 72, 80, 94, 95, 94, +- 101, 95, 48, 16, 96, 100, 103, 102, 104, 106, +- 49, 49, 107, 101, 139, 96, 139, 50, 65, 48, +- 49, 65, 114, 114, 137, 114, 57, 137, 152, 80, +- +- 16, 100, 102, 65, 106, 66, 72, 105, 103, 104, +- 108, 107, 16, 16, 16, 32, 32, 32, 32, 32, +- 32, 32, 32, 32, 32, 32, 32, 142, 152, 218, +- 65, 142, 455, 105, 125, 141, 218, 105, 108, 109, +- 110, 112, 65, 65, 65, 141, 111, 113, 146, 125, +- 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, +- 33, 33, 33, 33, 33, 111, 110, 109, 113, 112, +- 153, 138, 147, 149, 154, 178, 113, 146, 217, 33, +- 217, 111, 138, 153, 147, 149, 154, 178, 33, 33, +- 33, 117, 117, 117, 117, 117, 117, 117, 117, 117, +- +- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, +- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, +- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, +- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, +- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, +- 117, 117, 117, 140, 140, 140, 140, 140, 140, 140, +- 140, 140, 140, 140, 140, 151, 157, 179, 230, 230, +- 254, 318, 254, 179, 180, 182, 145, 158, 155, 318, +- 144, 148, 156, 157, 151, 159, 180, 182, 140, 140, +- 140, 143, 143, 143, 143, 143, 143, 143, 143, 143, +- +- 143, 143, 143, 144, 145, 148, 155, 156, 158, 183, +- 193, 159, 185, 186, 188, 266, 454, 194, 453, 266, +- 160, 183, 192, 193, 198, 236, 143, 143, 143, 150, +- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, +- 150, 160, 185, 186, 188, 191, 192, 194, 196, 198, +- 256, 214, 253, 255, 452, 236, 257, 253, 255, 256, +- 196, 257, 191, 214, 150, 150, 150, 161, 161, 161, +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, +- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, +- 161, 187, 187, 187, 187, 187, 187, 187, 187, 187, +- +- 187, 187, 187, 195, 197, 199, 216, 232, 215, 224, +- 234, 233, 283, 283, 237, 235, 269, 273, 216, 197, +- 195, 215, 224, 232, 199, 233, 187, 187, 187, 190, +- 190, 235, 269, 234, 271, 272, 274, 233, 273, 290, +- 292, 289, 190, 190, 237, 289, 271, 292, 190, 272, +- 291, 290, 293, 308, 291, 302, 302, 274, 320, 310, +- 450, 272, 293, 315, 315, 316, 320, 322, 190, 190, +- 190, 309, 310, 316, 335, 190, 322, 190, 316, 316, +- 308, 315, 449, 190, 337, 190, 213, 213, 213, 213, +- 213, 213, 213, 213, 213, 213, 213, 213, 319, 321, +- +- 309, 319, 339, 344, 335, 383, 383, 345, 344, 346, +- 339, 321, 345, 337, 346, 339, 339, 347, 355, 448, +- 347, 213, 213, 213, 219, 219, 219, 219, 219, 219, +- 219, 219, 219, 219, 219, 219, 348, 367, 366, 348, +- 368, 369, 382, 447, 367, 382, 355, 366, 348, 368, +- 369, 370, 371, 384, 385, 370, 384, 371, 385, 219, +- 219, 219, 238, 238, 238, 238, 238, 238, 238, 238, +- 238, 238, 238, 238, 386, 387, 387, 397, 400, 398, +- 399, 401, 409, 400, 419, 401, 386, 397, 398, 440, +- 399, 422, 409, 411, 411, 422, 419, 238, 238, 238, +- +- 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, +- 248, 248, 415, 418, 420, 420, 421, 421, 418, 418, +- 420, 415, 429, 433, 433, 410, 410, 429, 429, 431, +- 439, 410, 438, 431, 437, 248, 248, 248, 249, 249, +- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, +- 410, 432, 432, 434, 434, 435, 435, 432, 444, 444, +- 446, 446, 435, 436, 427, 444, 426, 446, 425, 424, +- 423, 417, 414, 249, 249, 249, 250, 250, 250, 250, +- 250, 250, 250, 250, 250, 250, 250, 250, 413, 412, +- 408, 407, 405, 404, 403, 402, 396, 394, 391, 390, +- +- 389, 388, 381, 380, 379, 375, 374, 373, 372, 363, +- 362, 250, 250, 250, 275, 275, 275, 275, 275, 275, +- 275, 275, 275, 275, 275, 275, 359, 354, 353, 352, +- 351, 350, 349, 341, 340, 334, 333, 332, 331, 328, +- 327, 326, 325, 324, 323, 313, 307, 306, 305, 275, +- 275, 275, 288, 288, 288, 288, 288, 288, 288, 288, +- 288, 288, 288, 288, 304, 303, 301, 300, 299, 298, +- 297, 296, 295, 294, 284, 282, 278, 270, 268, 267, +- 265, 264, 263, 262, 261, 260, 259, 288, 288, 288, +- 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, +- +- 336, 336, 251, 247, 246, 244, 243, 242, 241, 240, +- 231, 229, 228, 227, 226, 225, 223, 222, 212, 211, +- 210, 209, 208, 207, 206, 336, 336, 336, 342, 342, +- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, +- 205, 204, 203, 202, 201, 177, 176, 175, 174, 173, +- 172, 171, 170, 169, 168, 167, 166, 165, 134, 133, +- 132, 131, 130, 342, 342, 342, 343, 343, 343, 343, +- 343, 343, 343, 343, 343, 343, 343, 343, 129, 128, +- 127, 126, 124, 123, 116, 115, 97, 90, 89, 87, +- 85, 84, 83, 82, 78, 77, 75, 74, 73, 71, +- +- 70, 343, 343, 343, 357, 357, 357, 357, 357, 357, +- 357, 357, 357, 357, 357, 357, 69, 68, 67, 61, +- 60, 56, 55, 52, 40, 39, 31, 30, 29, 28, +- 22, 21, 20, 19, 18, 14, 13, 9, 0, 357, +- 357, 357, 376, 376, 376, 376, 376, 376, 376, 376, +- 376, 376, 376, 376, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 376, 376, 376, +- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, +- 430, 430, 0, 0, 0, 0, 0, 0, 0, 0, +- +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 430, 430, 430, 458, 458, +- 458, 458, 458, 458, 458, 458, 458, 459, 459, 459, +- 459, 459, 459, 459, 459, 459, 460, 460, 460, 460, +- 460, 460, 460, 460, 460, 461, 461, 461, 461, 461, +- 461, 461, 461, 461, 462, 462, 462, 462, 462, 462, +- 462, 462, 462, 463, 463, 0, 463, 464, 464, 464, +- 464, 464, 464, 464, 464, 464, 465, 465, 465, 465, +- 465, 465, 465, 465, 465, 466, 466, 466, 466, 466, +- 466, 466, 466, 466, 467, 467, 467, 467, 467, 467, +- +- 467, 0, 467, 468, 0, 0, 0, 0, 0, 0, +- 468, 469, 469, 0, 469, 0, 469, 469, 469, 469, +- 470, 470, 470, 470, 470, 470, 470, 470, 470, 471, +- 471, 0, 471, 0, 471, 471, 471, 471, 472, 472, +- 0, 472, 0, 472, 472, 472, 472, 473, 473, 0, +- 473, 0, 473, 473, 473, 473, 474, 474, 0, 474, +- 0, 474, 474, 474, 474, 475, 475, 475, 475, 475, +- 0, 0, 475, 476, 476, 0, 476, 0, 476, 476, +- 476, 476, 477, 477, 477, 477, 477, 0, 0, 477, +- 478, 478, 478, 478, 478, 0, 0, 478, 479, 479, +- +- 479, 479, 479, 0, 0, 479, 480, 480, 480, 480, +- 480, 0, 0, 480, 481, 481, 0, 481, 0, 481, +- 481, 481, 481, 482, 482, 482, 482, 482, 0, 0, +- 482, 483, 483, 0, 483, 0, 483, 483, 483, 483, +- 484, 484, 0, 484, 0, 484, 484, 484, 484, 485, +- 485, 485, 485, 485, 0, 0, 485, 486, 486, 486, +- 486, 486, 0, 0, 486, 487, 487, 0, 487, 0, +- 487, 487, 487, 487, 488, 488, 0, 488, 0, 488, +- 488, 488, 488, 489, 489, 0, 489, 0, 489, 489, +- 489, 489, 490, 490, 0, 490, 0, 490, 490, 490, +- +- 490, 491, 491, 0, 0, 0, 491, 0, 491, 492, +- 492, 0, 492, 0, 492, 492, 492, 492, 493, 493, +- 493, 0, 493, 493, 0, 493, 494, 494, 0, 494, +- 0, 494, 494, 494, 494, 495, 495, 495, 495, 495, +- 0, 0, 495, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, +- +- 457, 457, 457, 457, 457, 457 +- } ; +- +-static yy_state_type yy_last_accepting_state; +-static char *yy_last_accepting_cpos; +- +-extern int yy_flex_debug; +-int yy_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 *yytext; +-#line 1 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* -*- indented-text -*- */ +-/* Process source files and output type information. +- Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 +- Free Software Foundation, Inc. +- +-This file is part of GCC. +- +-GCC 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 3, or (at your option) any later +-version. +- +-GCC 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 GCC; see the file COPYING3. If not see +-. */ +-#define YY_NO_INPUT 1 +-#line 25 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-#ifdef GENERATOR_FILE +-#include "bconfig.h" +-#else +-#include "config.h" +-#endif +-#include "system.h" +- +-#define malloc xmalloc +-#define realloc xrealloc +- +-#include "gengtype.h" +- +-#define YY_DECL int yylex (const char **yylval) +-#define yyterminate() return EOF_TOKEN +- +-struct fileloc lexer_line; +-int lexer_toplevel_done; +- +-static void +-update_lineno (const char *l, size_t len) +-{ +- while (len-- > 0) +- if (*l++ == '\n') +- lexer_line.line++; +-} +- +- +-#line 995 "gengtype-lex.c" +- +-#define INITIAL 0 +-#define in_struct 1 +-#define in_struct_comment 2 +-#define in_comment 3 +- +-#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 yylex_destroy (void ); +- +-int yyget_debug (void ); +- +-void yyset_debug (int debug_flag ); +- +-YY_EXTRA_TYPE yyget_extra (void ); +- +-void yyset_extra (YY_EXTRA_TYPE user_defined ); +- +-FILE *yyget_in (void ); +- +-void yyset_in (FILE * in_str ); +- +-FILE *yyget_out (void ); +- +-void yyset_out (FILE * out_str ); +- +-int yyget_leng (void ); +- +-char *yyget_text (void ); +- +-int yyget_lineno (void ); +- +-void yyset_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 yywrap (void ); +-#else +-extern int yywrap (void ); +-#endif +-#endif +- +-#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 do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +-#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) \ +- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ +- { \ +- int c = '*'; \ +- unsigned n; \ +- for ( n = 0; n < max_size && \ +- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ +- buf[n] = (char) c; \ +- if ( c == '\n' ) \ +- buf[n++] = (char) c; \ +- if ( c == EOF && ferror( yyin ) ) \ +- YY_FATAL_ERROR( "input in flex scanner failed" ); \ +- result = n; \ +- } \ +- else \ +- { \ +- errno=0; \ +- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ +- { \ +- if( errno != EINTR) \ +- { \ +- YY_FATAL_ERROR( "input in flex scanner failed" ); \ +- break; \ +- } \ +- errno=0; \ +- clearerr(yyin); \ +- } \ +- }\ +-\ +- +-#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 yylex (void); +- +-#define YY_DECL int yylex (void) +-#endif /* !YY_DECL */ +- +-/* Code executed at the beginning of each rule, after yytext and yyleng +- * 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 \ +- if ( yyleng > 0 ) \ +- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ +- (yytext[yyleng - 1] == '\n'); \ +- 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; +- +-#line 63 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +- +- /* Do this on entry to yylex(): */ +- *yylval = 0; +- if (lexer_toplevel_done) +- { +- BEGIN(INITIAL); +- lexer_toplevel_done = 0; +- } +- +- /* Things we look for in skipping mode: */ +-#line 1192 "gengtype-lex.c" +- +- if ( !(yy_init) ) +- { +- (yy_init) = 1; +- +-#ifdef YY_USER_INIT +- YY_USER_INIT; +-#endif +- +- if ( ! (yy_start) ) +- (yy_start) = 1; /* first start state */ +- +- if ( ! yyin ) +- yyin = stdin; +- +- if ( ! yyout ) +- yyout = stdout; +- +- if ( ! YY_CURRENT_BUFFER ) { +- yyensure_buffer_stack (); +- YY_CURRENT_BUFFER_LVALUE = +- yy_create_buffer(yyin,YY_BUF_SIZE ); +- } +- +- yy_load_buffer_state( ); +- } +- +- while ( 1 ) /* loops until end-of-file is reached */ +- { +- yy_cp = (yy_c_buf_p); +- +- /* Support of yytext. */ +- *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_current_state += YY_AT_BOL(); +-yy_match: +- do +- { +- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; +- if ( yy_accept[yy_current_state] ) +- { +- (yy_last_accepting_state) = yy_current_state; +- (yy_last_accepting_cpos) = yy_cp; +- } +- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) +- { +- yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 458 ) +- yy_c = yy_meta[(unsigned int) yy_c]; +- } +- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; +- ++yy_cp; +- } +- while ( yy_current_state != 457 ); +- yy_cp = (yy_last_accepting_cpos); +- yy_current_state = (yy_last_accepting_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); +- yy_current_state = (yy_last_accepting_state); +- goto yy_find_action; +- +-case 1: +-/* rule 1 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 74 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return TYPEDEF; +-} +- YY_BREAK +-case 2: +-/* rule 2 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 78 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return STRUCT; +-} +- YY_BREAK +-case 3: +-/* rule 3 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 82 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return UNION; +-} +- YY_BREAK +-case 4: +-/* rule 4 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 86 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return EXTERN; +-} +- YY_BREAK +-case 5: +-/* rule 5 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 90 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return STATIC; +-} +- YY_BREAK +-case 6: +-/* rule 6 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 95 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return DEFVEC_OP; +-} +- YY_BREAK +-case 7: +-/* rule 7 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 99 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return DEFVEC_I; +-} +- YY_BREAK +-case 8: +-/* rule 8 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 103 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- BEGIN(in_struct); +- return DEFVEC_ALLOC; +-} +- YY_BREAK +- +- +-case 9: +-YY_RULE_SETUP +-#line 111 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ BEGIN(in_struct_comment); } +- YY_BREAK +-case 10: +-/* rule 10 can match eol */ +-YY_RULE_SETUP +-#line 113 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ update_lineno (yytext, yyleng); } +- YY_BREAK +-case 11: +-/* rule 11 can match eol */ +-YY_RULE_SETUP +-#line 114 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ lexer_line.line++; } +- YY_BREAK +-case 12: +-/* rule 12 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 5; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 116 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* don't care */ +- YY_BREAK +-case 13: +-/* rule 13 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 3; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 117 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return GTY_TOKEN; } +- YY_BREAK +-case 14: +-/* rule 14 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 3; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 118 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return VEC_TOKEN; } +- YY_BREAK +-case 15: +-/* rule 15 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 5; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 119 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return UNION; } +- YY_BREAK +-case 16: +-/* rule 16 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 6; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 120 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return STRUCT; } +- YY_BREAK +-case 17: +-/* rule 17 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 4; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 121 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return ENUM; } +- YY_BREAK +-case 18: +-/* rule 18 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 9; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 122 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return PTR_ALIAS; } +- YY_BREAK +-case 19: +-/* rule 19 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 10; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 123 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return NESTED_PTR; } +- YY_BREAK +-case 20: +-YY_RULE_SETUP +-#line 124 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return NUM; } +- YY_BREAK +-case 21: +-/* rule 21 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 125 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); +- return PARAM_IS; +-} +- YY_BREAK +-case 22: +-/* rule 22 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-#line 131 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-case 23: +-/* rule 23 can match eol */ +-YY_RULE_SETUP +-#line 131 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- size_t len; +- +- for (len = yyleng; ISSPACE (yytext[len-1]); len--) +- ; +- +- *yylval = XDUPVAR (const char, yytext, len, len+1); +- update_lineno (yytext, yyleng); +- return SCALAR; +-} +- YY_BREAK +-case 24: +-/* rule 24 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp -= 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 143 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); +- return ID; +-} +- YY_BREAK +-case 25: +-/* rule 25 can match eol */ +-YY_RULE_SETUP +-#line 148 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); +- return STRING; +-} +- YY_BREAK +-/* This "terminal" avoids having to parse integer constant expressions. */ +-case 26: +-/* rule 26 can match eol */ +-YY_RULE_SETUP +-#line 153 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); +- return ARRAY; +-} +- YY_BREAK +-case 27: +-/* rule 27 can match eol */ +-YY_RULE_SETUP +-#line 157 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); +- return CHAR; +-} +- YY_BREAK +-case 28: +-YY_RULE_SETUP +-#line 162 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return ELLIPSIS; } +- YY_BREAK +-case 29: +-YY_RULE_SETUP +-#line 163 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ return yytext[0]; } +- YY_BREAK +-/* ignore pp-directives */ +-case 30: +-/* rule 30 can match eol */ +-YY_RULE_SETUP +-#line 166 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{lexer_line.line++;} +- YY_BREAK +-case 31: +-YY_RULE_SETUP +-#line 168 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- error_at_line (&lexer_line, "unexpected character `%s'", yytext); +-} +- YY_BREAK +- +-case 32: +-YY_RULE_SETUP +-#line 173 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ BEGIN(in_comment); } +- YY_BREAK +-case 33: +-/* rule 33 can match eol */ +-YY_RULE_SETUP +-#line 174 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ lexer_line.line++; } +- YY_BREAK +-case 34: +-#line 176 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-case 35: +-/* rule 35 can match eol */ +-#line 177 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-case 36: +-/* rule 36 can match eol */ +-YY_RULE_SETUP +-#line 177 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* do nothing */ +- YY_BREAK +-case 37: +-/* rule 37 can match eol */ +-YY_RULE_SETUP +-#line 178 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ update_lineno (yytext, yyleng); } +- YY_BREAK +-case 38: +-/* rule 38 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 179 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* do nothing */ +- YY_BREAK +- +-case 39: +-/* rule 39 can match eol */ +-YY_RULE_SETUP +-#line 182 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ lexer_line.line++; } +- YY_BREAK +-case 40: +-#line 184 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-case 41: +-YY_RULE_SETUP +-#line 184 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* do nothing */ +- YY_BREAK +-case 42: +-/* rule 42 can match eol */ +-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +-(yy_c_buf_p) = yy_cp = yy_bp + 1; +-YY_DO_BEFORE_ACTION; /* set up yytext again */ +-YY_RULE_SETUP +-#line 185 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* do nothing */ +- YY_BREAK +- +-case 43: +-YY_RULE_SETUP +-#line 187 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ BEGIN(INITIAL); } +- YY_BREAK +-case 44: +-YY_RULE_SETUP +-#line 188 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ BEGIN(in_struct); } +- YY_BREAK +-case 45: +-#line 191 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-case 46: +-YY_RULE_SETUP +-#line 191 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-{ +- error_at_line (&lexer_line, +- "unterminated comment or string; unexpected EOF"); +-} +- YY_BREAK +-case 47: +-/* rule 47 can match eol */ +-YY_RULE_SETUP +-#line 196 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-/* do nothing */ +- YY_BREAK +-case 48: +-YY_RULE_SETUP +-#line 198 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +-YY_FATAL_ERROR( "flex scanner jammed" ); +- YY_BREAK +-#line 1654 "gengtype-lex.c" +-case YY_STATE_EOF(INITIAL): +-case YY_STATE_EOF(in_struct): +-case YY_STATE_EOF(in_struct_comment): +-case YY_STATE_EOF(in_comment): +- yyterminate(); +- +- 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 yyin at a new source and called +- * yylex(). 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 = yyin; +- 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_last_accepting_cpos); +- yy_current_state = (yy_last_accepting_state); +- goto yy_find_action; +- } +- } +- +- else switch ( yy_get_next_buffer( ) ) +- { +- case EOB_ACT_END_OF_FILE: +- { +- (yy_did_buffer_switch_on_eof) = 0; +- +- if ( yywrap( ) ) +- { +- /* Note: because we've taken care in +- * yy_get_next_buffer() to have set up +- * yytext, 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 yylex */ +- +-/* 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 +- { +- int 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 ) +- { +- int 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. */ +- yyrealloc((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), (size_t) 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; +- yyrestart(yyin ); +- } +- +- 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 *) yyrealloc((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); +- yy_current_state += YY_AT_BOL(); +- +- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) +- { +- register YY_CHAR yy_c = (*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; +- } +- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) +- { +- yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 458 ) +- yy_c = yy_meta[(unsigned int) yy_c]; +- } +- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; +- } +- +- 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); +- +- register YY_CHAR yy_c = 1; +- if ( yy_accept[yy_current_state] ) +- { +- (yy_last_accepting_state) = yy_current_state; +- (yy_last_accepting_cpos) = yy_cp; +- } +- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) +- { +- yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 458 ) +- yy_c = yy_meta[(unsigned int) yy_c]; +- } +- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; +- yy_is_jam = (yy_current_state == 457); +- +- return yy_is_jam ? 0 : yy_current_state; +-} +- +-#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 */ +- int 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. */ +- yyrestart(yyin ); +- +- /*FALLTHROUGH*/ +- +- case EOB_ACT_END_OF_FILE: +- { +- if ( yywrap( ) ) +- return EOF; +- +- 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 yytext */ +- (yy_hold_char) = *++(yy_c_buf_p); +- +- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); +- +- 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 yyrestart (FILE * input_file ) +-{ +- +- if ( ! YY_CURRENT_BUFFER ){ +- yyensure_buffer_stack (); +- YY_CURRENT_BUFFER_LVALUE = +- yy_create_buffer(yyin,YY_BUF_SIZE ); +- } +- +- yy_init_buffer(YY_CURRENT_BUFFER,input_file ); +- yy_load_buffer_state( ); +-} +- +-/** Switch to a different input buffer. +- * @param new_buffer The new input buffer. +- * +- */ +- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +-{ +- +- /* TODO. We should be able to replace this entire function body +- * with +- * yypop_buffer_state(); +- * yypush_buffer_state(new_buffer); +- */ +- yyensure_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; +- yy_load_buffer_state( ); +- +- /* We don't actually know whether we did this switch during +- * EOF (yywrap()) processing, but the only time this flag +- * is looked at is after yywrap() is called, so it's safe +- * to go ahead and always set it. +- */ +- (yy_did_buffer_switch_on_eof) = 1; +-} +- +-static void yy_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; +- yyin = 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 yy_create_buffer (FILE * file, int size ) +-{ +- YY_BUFFER_STATE b; +- +- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); +- if ( ! b ) +- YY_FATAL_ERROR( "out of dynamic memory in yy_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 *) yyalloc(b->yy_buf_size + 2 ); +- if ( ! b->yy_ch_buf ) +- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); +- +- b->yy_is_our_buffer = 1; +- +- yy_init_buffer(b,file ); +- +- return b; +-} +- +-/** Destroy the buffer. +- * @param b a buffer created with yy_create_buffer() +- * +- */ +- void yy_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 ) +- yyfree((void *) b->yy_ch_buf ); +- +- yyfree((void *) b ); +-} +- +-/* Initializes or reinitializes a buffer. +- * This function is sometimes called more than once on the same buffer, +- * such as during a yyrestart() or at EOF. +- */ +- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) +- +-{ +- int oerrno = errno; +- +- yy_flush_buffer(b ); +- +- b->yy_input_file = file; +- b->yy_fill_buffer = 1; +- +- /* If b is the current buffer, then yy_init_buffer was _probably_ +- * called from yyrestart() 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 yy_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 ) +- yy_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 yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +-{ +- if (new_buffer == NULL) +- return; +- +- yyensure_buffer_stack(); +- +- /* This block is copied from yy_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 yy_switch_to_buffer. */ +- yy_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 yypop_buffer_state (void) +-{ +- if (!YY_CURRENT_BUFFER) +- return; +- +- yy_delete_buffer(YY_CURRENT_BUFFER ); +- YY_CURRENT_BUFFER_LVALUE = NULL; +- if ((yy_buffer_stack_top) > 0) +- --(yy_buffer_stack_top); +- +- if (YY_CURRENT_BUFFER) { +- yy_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 yyensure_buffer_stack (void) +-{ +- int 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**)yyalloc +- (num_to_alloc * sizeof(struct yy_buffer_state*) +- ); +- if ( ! (yy_buffer_stack) ) +- YY_FATAL_ERROR( "out of dynamic memory in yyensure_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**)yyrealloc +- ((yy_buffer_stack), +- num_to_alloc * sizeof(struct yy_buffer_state*) +- ); +- if ( ! (yy_buffer_stack) ) +- YY_FATAL_ERROR( "out of dynamic memory in yyensure_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 yy_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) yyalloc(sizeof( struct yy_buffer_state ) ); +- if ( ! b ) +- YY_FATAL_ERROR( "out of dynamic memory in yy_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; +- +- yy_switch_to_buffer(b ); +- +- return b; +-} +- +-/** Setup the input buffer state to scan a string. The next call to yylex() 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 +- * yy_scan_bytes() instead. +- */ +-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +-{ +- +- return yy_scan_bytes(yystr,strlen(yystr) ); +-} +- +-/** Setup the input buffer state to scan the given bytes. The next call to yylex() 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 yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +-{ +- YY_BUFFER_STATE b; +- char *buf; +- yy_size_t n; +- int i; +- +- /* Get memory for full buffer, including space for trailing EOB's. */ +- n = _yybytes_len + 2; +- buf = (char *) yyalloc(n ); +- if ( ! buf ) +- YY_FATAL_ERROR( "out of dynamic memory in yy_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 = yy_scan_buffer(buf,n ); +- if ( ! b ) +- YY_FATAL_ERROR( "bad buffer in yy_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 yytext. */ \ +- int yyless_macro_arg = (n); \ +- YY_LESS_LINENO(yyless_macro_arg);\ +- yytext[yyleng] = (yy_hold_char); \ +- (yy_c_buf_p) = yytext + yyless_macro_arg; \ +- (yy_hold_char) = *(yy_c_buf_p); \ +- *(yy_c_buf_p) = '\0'; \ +- yyleng = yyless_macro_arg; \ +- } \ +- while ( 0 ) +- +-/* Accessor methods (get/set functions) to struct members. */ +- +-/** Get the current line number. +- * +- */ +-int yyget_lineno (void) +-{ +- +- return yylineno; +-} +- +-/** Get the input stream. +- * +- */ +-FILE *yyget_in (void) +-{ +- return yyin; +-} +- +-/** Get the output stream. +- * +- */ +-FILE *yyget_out (void) +-{ +- return yyout; +-} +- +-/** Get the length of the current token. +- * +- */ +-int yyget_leng (void) +-{ +- return yyleng; +-} +- +-/** Get the current token. +- * +- */ +- +-char *yyget_text (void) +-{ +- return yytext; +-} +- +-/** Set the current line number. +- * @param line_number +- * +- */ +-void yyset_lineno (int line_number ) +-{ +- +- yylineno = line_number; +-} +- +-/** Set the input stream. This does not discard the current +- * input buffer. +- * @param in_str A readable stream. +- * +- * @see yy_switch_to_buffer +- */ +-void yyset_in (FILE * in_str ) +-{ +- yyin = in_str ; +-} +- +-void yyset_out (FILE * out_str ) +-{ +- yyout = out_str ; +-} +- +-int yyget_debug (void) +-{ +- return yy_flex_debug; +-} +- +-void yyset_debug (int bdebug ) +-{ +- yy_flex_debug = bdebug ; +-} +- +-static int yy_init_globals (void) +-{ +- /* Initialization is the same as for the non-reentrant scanner. +- * This function is called from yylex_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 +- yyin = stdin; +- yyout = stdout; +-#else +- yyin = (FILE *) 0; +- yyout = (FILE *) 0; +-#endif +- +- /* For future reference: Set errno on error, since we are called by +- * yylex_init() +- */ +- return 0; +-} +- +-/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +-int yylex_destroy (void) +-{ +- +- /* Pop the buffer stack, destroying each element. */ +- while(YY_CURRENT_BUFFER){ +- yy_delete_buffer(YY_CURRENT_BUFFER ); +- YY_CURRENT_BUFFER_LVALUE = NULL; +- yypop_buffer_state(); +- } +- +- /* Destroy the stack itself. */ +- yyfree((yy_buffer_stack) ); +- (yy_buffer_stack) = NULL; +- +- /* Reset the globals. This is important in a non-reentrant scanner so the next time +- * yylex() 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 *yyalloc (yy_size_t size ) +-{ +- return (void *) malloc( size ); +-} +- +-void *yyrealloc (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 yyfree (void * ptr ) +-{ +- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +-} +- +-#define YYTABLES_NAME "yytables" +- +-#line 198 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" +- +- +- +-void +-yybegin (const char *fname) +-{ +- yyin = fopen (fname, "r"); +- if (yyin == NULL) +- { +- perror (fname); +- exit (1); +- } +- lexer_line.file = input_file_by_name (fname); +- lexer_line.line = 1; +-} +- +-void +-yyend (void) +-{ +- fclose (yyin); +-} +- diff --git a/meta/recipes-devtools/gcc/gcc-configure-runtime.inc b/meta/recipes-devtools/gcc/gcc-configure-runtime.inc index 977a98a..f89ca6b 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-runtime.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-runtime.inc @@ -15,8 +15,8 @@ RUNTIMETARGET = "libssp libstdc++-v3 libgomp" do_configure () { export CXX="${CXX} -nostdinc++ -nostdlib++" - mtarget=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + mtarget=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget/* ${B} for d in libgcc ${RUNTIMETARGET}; do echo "Configuring $d" @@ -29,7 +29,7 @@ do_configure () { } do_compile () { - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` for d in libgcc ${RUNTIMETARGET}; do cd ${B}/$target/$d/ oe_runmake MULTIBUILDTOP=${B}/$target/$d/ @@ -37,7 +37,7 @@ do_compile () { } do_install () { - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` for d in ${RUNTIMETARGET}; do cd ${B}/$target/$d/ oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/$d/ install diff --git a/meta/recipes-devtools/gcc/gcc-configure-sdk.inc b/meta/recipes-devtools/gcc/gcc-configure-sdk.inc index 51c0217..6c55bc7 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-sdk.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-sdk.inc @@ -43,5 +43,5 @@ do_configure () { } do_compile () { - oe_runmake all-host all-target-libgcc + oe_runmake all-host } diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb index 53c4632..f684216 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb @@ -5,8 +5,10 @@ require gcc-cross-canadian.inc require gcc-configure-sdk.inc require gcc-package-sdk.inc -DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc nativesdk-elfutils" -RDEPENDS_${PN} += "nativesdk-mpfr nativesdk-libmpc nativesdk-elfutils" +DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc" +# nativesdk-elfutils" +RDEPENDS_${PN} += "nativesdk-mpfr nativesdk-libmpc" +# nativesdk-elfutils" SYSTEMHEADERS = "/usr/include" SYSTEMLIBS = "${target_base_libdir}/" @@ -20,7 +22,5 @@ EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \ # to find libmpfr # export LD_LIBRARY_PATH = "{STAGING_DIR_HOST}${layout_exec_prefix}" -PARALLEL_MAKE = "" - # gcc 4.7 needs -isystem export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}" diff --git a/meta/recipes-devtools/gcc/gcc-package-sdk.inc b/meta/recipes-devtools/gcc/gcc-package-sdk.inc index bb6dfde..2ebb8c4 100644 --- a/meta/recipes-devtools/gcc/gcc-package-sdk.inc +++ b/meta/recipes-devtools/gcc/gcc-package-sdk.inc @@ -28,6 +28,11 @@ FILES_${PN}-doc = "\ ${gcclibdir}/${TARGET_SYS}/${BINV}/include/README \ " +EXEEXT = "" + +# Compute how to get from libexecdir to bindir in python (easier than shell) +BINRELPATH = "${@oe.path.relative(d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"), d.expand("${bindir}"))}" + do_install () { oe_runmake 'DESTDIR=${D}' install-host @@ -59,12 +64,13 @@ do_install () { # found. dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/ install -d $dest + suffix=${EXEEXT} for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do - if [ "$t" = "g77" -o "$t" = "gfortran" ] && [ ! -e ${D}${bindir}/${TARGET_PREFIX}$t ]; then + if [ "$t" = "g77" -o "$t" = "gfortran" ] && [ ! -e ${D}${bindir}/${TARGET_PREFIX}$t$suffix ]; then continue fi - ln -sf ${bindir}/${TARGET_PREFIX}$t $dest$t + ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t$suffix $dest$t$suffix done chown -R root:root ${D} diff --git a/meta/recipes-devtools/gcc/libgcc_4.7.bb b/meta/recipes-devtools/gcc/libgcc_4.7.bb index 47669a2..3b5bb43 100644 --- a/meta/recipes-devtools/gcc/libgcc_4.7.bb +++ b/meta/recipes-devtools/gcc/libgcc_4.7.bb @@ -26,7 +26,7 @@ FILES_libgcov-dev = " \ FILES_${PN}-dbg += "${base_libdir}/.debug/" do_configure () { - target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` + target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` install -d ${D}${base_libdir} ${D}${libdir} cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${B} mkdir -p ${B}/${BPN} @@ -36,13 +36,13 @@ do_configure () { } do_compile () { - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` cd ${B}/${BPN} oe_runmake MULTIBUILDTOP=${B}/$target/${BPN}/ } do_install () { - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` cd ${B}/${BPN} oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${BPN}/ install diff --git a/meta/recipes-support/libiconv/libiconv_1.14.bb b/meta/recipes-support/libiconv/libiconv_1.14.bb index b1d2612..1ba0d12 100644 --- a/meta/recipes-support/libiconv/libiconv_1.14.bb +++ b/meta/recipes-support/libiconv/libiconv_1.14.bb @@ -22,6 +22,8 @@ S = "${WORKDIR}/libiconv-${PV}" inherit autotools pkgconfig gettext python __anonymous() { + if d.getVar("TARGET_OS", True) != "linux": + return if d.getVar("TCLIBC", True) == "eglibc": raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - eglibc already provides iconv") } @@ -44,3 +46,5 @@ do_install_append () { rm -rf ${D}${libdir}/preloadable_libiconv.so rm -rf ${D}${libdir}/charset.alias } + +BBCLASSEXTEND = "nativesdk" \ No newline at end of file