diff -Nru flexc++-2.03.00/build flexc++-2.03.04/build --- flexc++-2.03.00/build 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/build 2015-12-14 14:36:18.000000000 +0000 @@ -1,26 +1,26 @@ #!/usr/bin/icmake -qt/tmp/flexc++ -#define LOGENV "FLEXCPP" - #include "icmconf" -list g_log; -string g_logPath = getenv(LOGENV)[1]; +string + g_logPath, + g_cwd; // initial working directory + +int g_echo = ON; // MODIFIED, existing variable +#include "icmake/cuteoln" +#include "icmake/backtick" #include "icmake/setopt" #include "icmake/run" #include "icmake/md" #include "icmake/special" - -#include "icmake/md5sum" -#include "icmake/log" -#include "icmake/writelog" -#include "icmake/logfiles" -#include "icmake/readlog" -#include "icmake/adddir" -#include "icmake/removedir" -#include "icmake/remove" +#include "icmake/pathfile" +#include "icmake/findall" +#include "icmake/loginstall" +#include "icmake/logzip" +#include "icmake/logfile" #include "icmake/uninstall" +#include "icmake/precompileheaders" #include "icmake/clean" #include "icmake/manpage" @@ -28,12 +28,34 @@ #include "icmake/install" #include "icmake/github" -string g_cwd = chdir(""); // initial working directory - void main(int argc, list argv) { string option; string strip; + int idx; + + for (idx = listlen(argv); idx--; ) + { + if (argv[idx] == "-q") + { + g_echo = OFF; + argv -= (list)"-q"; + } + else if (argv[idx] == "-P") + { + g_gch = 0; + argv -= (list)"-P"; + } + else if (strfind(argv[idx], "LOG:") == 0) + { + g_logPath = argv[idx]; + argv -= (list)g_logPath; + g_logPath = substr(g_logPath, 4, strlen(g_logPath)); + } + } + + echo(g_echo); + g_cwd = chdir("."); option = argv[1]; @@ -50,7 +72,7 @@ special(); if (option == "uninstall") - uninstall(); + uninstall(argv[2]); if (option == "github") github(); @@ -63,7 +85,8 @@ if (option == "library") { - system("icmbuild library"); + precompileHeaders(); + run("icmbuild library"); exit(0); } @@ -72,13 +95,15 @@ if (option == "program") { - system("icmbuild program " + strip); + precompileHeaders(); + run("icmbuild program " + strip); exit(0); } if (option == "oxref") { - system("icmbuild program " + strip); + precompileHeaders(); + run("icmbuild program " + strip); run("oxref -fxs tmp/lib" LIBRARY ".a > " PROGRAM ".xref"); exit(0); } @@ -86,14 +111,17 @@ if (option == "scanner") { chdir("scanner"); - system("./newscanner"); + run("./newscanner"); chdir(".."); - system("icmbuild program " + strip); + run("icmbuild program " + strip); exit(0); } - printf("Usage: build [-p] what\n" - "Where `what' is one of:\n" + printf("Usage: build [-q -P] what\n" + "Where\n" + " [-q]: run quietly, do not show executed commands\n" + " [-P]: do not use precompiled headers\n" + "`what' is one of:\n" " clean - clean up remnants of previous " "compilations\n" " distclean - clean + fully remove tmp/\n" @@ -105,24 +133,28 @@ " oxref [strip] - same a `program', also builds xref file\n" " using oxref\n" " scanner [strip] - build new scanner, then 'build program'\n" - " install program [path] - install the program at `path'\n" - " (by default at `" BINARY "')\n" - " install skel [base] - install the skeleton files below `base'\n" - " (by default below `" SKEL "')\n" - " install man [base] - install the man pages below `base'\n" - " (by default below `" MAN "')\n" - " install manual [base]- install the manual below `base'\n" - " (by default below `" MANUAL "')\n" - " install std [base] - install standard docs below `base'\n" - " (by default below `" STD "')\n" - " uninstall - remove installed files and empty " - "directories\n" + " install [LOG:path] selection [base] -\n" + " to install the software in the locations " + "defined \n" + " in the INSTALL.im file, optionally below " + "base.\n" + " LOG:path is optional: if specified `path' " + "is the\n" + " logfile on which the installation log is " + "written.\n" + " selection can be\n" + " x, to install all components,\n" + " or a combination of:\n" + " b (binary program),\n" + " d (documentation),\n" + " m (man-pages)\n" + " s (skeleton files),\n" + " u (user guide),\n" + " uninstall logfile - remove files and empty directories listed\n" + " in the file 'logfile'\n" " github - prepare github's gh-pages update\n" " (internal use only)\n" "\n" - "If the environment variable DRYRUN is defined, no commands are\n" - "actually executed\n" - "\n" ); - exit(1); + exit(0); } diff -Nru flexc++-2.03.00/changelog flexc++-2.03.04/changelog --- flexc++-2.03.00/changelog 2015-08-28 07:39:07.000000000 +0000 +++ flexc++-2.03.04/changelog 2015-12-14 14:38:07.000000000 +0000 @@ -1,3 +1,45 @@ +flexc++ (2.03.04) + + * Fixed a memory leak reported by gendx caused by the missing ScannerBase + destructor. + + * 'build install' supports an optional LOG: argument: the (relative or + absolute) path to a installation log file. The environment variable + FLEXCPP is no longer used. + + * Updated the usage info displayed by `./build', altered the procedure to + install the files at their final destinations. + + * Icmake files adapted to icmake 8.00.04 + + -- Frank B. Brokken Mon, 14 Dec 2015 15:37:58 +0100 + +flexc++ (2.03.03) + + * Kevin Brodsky observed that the installation scripts used 'chdir' rather + than 'cd'. Fixed in this release. + + * Kevin Brodsky also observed that the combined size of all precompiled + headers might exceed some disks capacities. The option -P was added to the + ./build script to prevent the use of precompiled headers. + + -- Frank B. Brokken Mon, 05 Oct 2015 20:24:26 +0200 + +flexc++ (2.03.02) + + * Reimplemented the (un)installation procedures + + -- Frank B. Brokken Fri, 02 Oct 2015 11:03:20 +0200 + +flexc++ (2.03.01) + + * 'build manual' creates the manual when its called. If the manual already + exists, it is recreated. Same holds true for 'build man' + + * Flexc++'s compilation now uses precompiled headers + + -- Frank B. Brokken Mon, 28 Sep 2015 18:48:43 +0200 + flexc++ (2.03.00) * Fixed a bug in handling {0, x} intervals: encountered by Guillaume diff -Nru flexc++-2.03.00/debian/changelog flexc++-2.03.04/debian/changelog --- flexc++-2.03.00/debian/changelog 2015-11-30 22:23:23.000000000 +0000 +++ flexc++-2.03.04/debian/changelog 2015-12-14 14:50:03.000000000 +0000 @@ -1,9 +1,37 @@ -flexc++ (2.03.00-1build1) xenial; urgency=medium +flexc++ (2.03.04-1) unstable; urgency=low - * Rebuild for bobcat 3 -> 4 ABI transition + * New upstream release fixes a memory leak in the generated scanner; build + scripts adapted to icmake 8.00.04. - -- Michael Hudson-Doyle Tue, 01 Dec 2015 11:23:23 +1300 + * debian/control file updated accordingly. + -- Frank B. Brokken Mon, 14 Dec 2015 15:45:29 +0100 + +flexc++ (2.03.03-1) unstable; urgency=low + + * Upstream fixed a flaw in the installation script, Upstream's 'build' + script now supports -P to prevent the use of precompiled headers + + -- Frank B. Brokken Tue, 06 Oct 2015 12:21:13 +0200 + +flexc++ (2.03.02-1) unstable; urgency=low + + * New upstream release reimplements its (un)installation procedure, + debian/rules adapted accordingly + + * Removed the get-orig-source target from debian/rules + + * Package depends on libbobcat4 + + -- Frank B. Brokken Fri, 02 Oct 2015 11:12:25 +0200 + +flexc++ (2.03.01-1) unstable; urgency=low + + * New upstream release speeds up compilation using precompiled headers, and + simplifies the installation procedure + + -- Frank B. Brokken Mon, 28 Sep 2015 20:34:32 +0200 + flexc++ (2.03.00-1) unstable; urgency=low * New upstream release fixes bugs, supports initial 0-values for {x, y} diff -Nru flexc++-2.03.00/debian/control flexc++-2.03.04/debian/control --- flexc++-2.03.00/debian/control 2015-11-30 22:23:23.000000000 +0000 +++ flexc++-2.03.04/debian/control 2015-12-14 14:50:03.000000000 +0000 @@ -5,9 +5,9 @@ Uploaders: George Danchev , tony mancill Build-Depends: debhelper (>= 9), - libbobcat-dev (>= 3.25.01), - icmake (>= 7.22.00), - yodl (>= 3.05.0) + libbobcat-dev (>= 4.01.00), + icmake (>= 8.00.04), + yodl (>= 3.06.0) Standards-Version: 3.9.6 Homepage: https://fbb-git.github.io/flexcpp/ Vcs-Git: git://anonscm.debian.org/collab-maint/flexcpp.git diff -Nru flexc++-2.03.00/debian/rules flexc++-2.03.04/debian/rules --- flexc++-2.03.00/debian/rules 2015-11-30 22:23:23.000000000 +0000 +++ flexc++-2.03.04/debian/rules 2015-12-14 14:50:03.000000000 +0000 @@ -1,14 +1,6 @@ #!/usr/bin/make -f # -*- makefile -*- -# The following is for internal development usage only -# Update that sum when new _upstream_ releases occur, this -# catches silent file content forges at the upstream server side -# Archive downloaded from https://www.icce.rug.nl/debian/flexc++ -# file: flexc++_x.y.z.tar.gz - -MD5TRUSTED := 03ff5d05f9799993cb496234c8a483a2 - # Uncomment this to turn on verbose mode. # export DH_VERBOSE=1 @@ -48,11 +40,7 @@ dh_installdirs # Add here commands to install the package into debian/flexc++. - ./build install program debian/flexc++/usr/bin/flexc++ - ./build install skel debian/flexc++/usr/share/flexc++ - ./build install std debian/flexc++/usr/share/doc/flexc++ - ./build install man debian/flexc++/usr/share/man - ./build install manual debian/flexc++/usr/share/doc/flexc++/manual + ./build install x debian/flexc++ binary-indep: @@ -73,37 +61,5 @@ dh_md5sums dh_builddeb - -DEBVERSION:=$(shell head -n 1 debian/changelog | sed -e 's/^[^(]*(\([^)]*\)).*/\1/') -UPVERSION:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9.]*$$//' -e 's/.dfsg$$//') -UPNAME := flexc++ -UPFILE := $(UPNAME)_$(UPVERSION).tar.gz -DEFILE := $(UPNAME)_$(UPVERSION).orig.tar.gz -URL := https://www.icce.rug.nl/debian/flexc++ -MD5CURRENT := `md5sum ../tarballs/$(DEFILE) | sed -e 's/ .*//'` - -get-orig-source: - @@[ -d ../tarballs/. ]||mkdir -p ../tarballs - - -@if [ ! -f ../tarballs/$(DEFILE) ] ; then \ - echo -e "Downloading $(URL)/$(UPFILE)\nSaving into ../tarballs/$(DEFILE) ..." ; \ - wget --no-check-certificate --quiet -N -nv -T10 -t3 -O \ - ../tarballs/$(DEFILE) $(URL)/$(UPFILE) ; \ - else \ - echo "Upstream source tarball have been already downloaded" ; \ - fi - - -@if [ "$(MD5CURRENT)" != "$(MD5TRUSTED)" ] ; then \ - echo "Expecting upstream filename md5sum $(MD5TRUSTED), but $(MD5CURRENT) found" ; \ - echo "Upstream filename md5sum is NOT trusted! Possible upstream filename forge!" ; \ - false ; \ - else \ - echo "Upstream filename md5sum is trusted!" ; \ - fi - -print-version: - @@echo "Debian version: $(DEBVERSION)" - @@echo "Upstream version: $(UPVERSION)" - binary: binary-indep binary-arch .PHONY: build build-indep build-arch clean binary-indep binary-arch binary install diff -Nru flexc++-2.03.00/documentation/man/directives flexc++-2.03.04/documentation/man/directives --- flexc++-2.03.00/documentation/man/directives 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/man/directives 2015-10-02 09:47:22.000000000 +0000 @@ -94,13 +94,13 @@ it() bf(%filenames) tt(= "basename") nl() - Defines the basename of the tt(Scanner.h, Scanner.ih,) and + Defines the basename of the tt(Scanner.h, Scanner.hh,) and tt(Scannerbase.h) files. E.g., when using the directive verb( %filenames = "scanner" ) the names of the generated files are, respectively, tt(scanner.h, - scanner.ih,) and tt(scannerbase.h). Corresponding command-line + scanner.hh,) and tt(scannerbase.h). Corresponding command-line option: tt(--filenames). The name of the source file (by default tt(lex.cc)) is controlled by the tt(%lex-source) directive. diff -Nru flexc++-2.03.00/documentation/man/flexc++api.yo flexc++-2.03.04/documentation/man/flexc++api.yo --- flexc++-2.03.00/documentation/man/flexc++api.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/man/flexc++api.yo 2015-10-02 09:47:22.000000000 +0000 @@ -117,7 +117,7 @@ interface. itt(Scannerbase.h): the header file containing the interface of the scanner class's base class. - itt(Scanner.ih): the internal header file that is meant to be included + itt(Scanner.hh): the internal header file that is meant to be included by the scanner class's source files (e.g., it is included by tt(lex.cc), see the next item's file), and that should contain all declarations required for compiling the scanner class's sources. diff -Nru flexc++-2.03.00/documentation/man/flexc++.yo flexc++-2.03.04/documentation/man/flexc++.yo --- flexc++-2.03.00/documentation/man/flexc++.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/man/flexc++.yo 2015-10-02 09:47:22.000000000 +0000 @@ -85,11 +85,11 @@ This man-page offers the following sections: itemization( - it() bf(1. QUICK START): a quick start overview about how to use flc(). + it() bf(1. QUICK START): a quick start overview about how to use flc(); it() bf(2. QUICK START: FLEXC++ and BISONC++): a quick start overview - about how to use flc() in combination with bf(bisonc++)(1) + about how to use flc() in combination with bf(bisonc++)(1); it() bf(3. GENERATED FILES): files generated by flc() and their purposes - it() bf(4. OPTIONS): options available for flc() + it() bf(4. OPTIONS): options available for flc(). ) The bf(flexc++api)(3) man-page: @@ -176,7 +176,7 @@ interface. itt(Scannerbase.h): the header file containing the interface of the scanner class's base class. - itt(Scanner.ih): the internal header file that is meant to be included + itt(Scanner.hh): the internal header file that is meant to be included by the scanner class's source files (e.g., it is included by tt(lex.cc), see the next item's file), and that should contain all declarations required for compiling the scanner class's sources. diff -Nru flexc++-2.03.00/documentation/man/generic.yo flexc++-2.03.04/documentation/man/generic.yo --- flexc++-2.03.00/documentation/man/generic.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/man/generic.yo 2015-10-02 09:47:22.000000000 +0000 @@ -20,7 +20,7 @@ verb( flexc++ lexer ) - This generates four files):tt(Scanner.h, Scanner.ih, Scannerbase.h), and + This generates four files):tt(Scanner.h, Scanner.hh, Scannerbase.h), and tt(lex.cc) it() Edit tt(Scanner.h), add the enum defining the token-symbols in @@ -133,7 +133,7 @@ verb( #include "../parser/Parserbase.h" ) - to the file tt(scanner/Scanner.ih) + to the file tt(scanner/Scanner.hh) it() Write a simple tt(main) function in the file tt(main.cc). E.g., verb( @@ -194,7 +194,7 @@ it() A file containing the em(implementation header). This file should contain includes and declarations that are only required when compiling the members of the scanner class. By default this file is named -tt(Scanner.ih). This file, like the file containing the scanner class's +tt(Scanner.hh). This file, like the file containing the scanner class's interface is never rewritten by flc() unless flc() is explicitly ordered to do so. ) @@ -202,3 +202,11 @@ manpagesection(4. OPTIONS) includefile(../manual/intro/options) + + + + + + + + diff -Nru flexc++-2.03.00/documentation/man/options flexc++-2.03.04/documentation/man/options --- flexc++-2.03.00/documentation/man/options 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/man/options 2015-10-02 09:47:22.000000000 +0000 @@ -114,7 +114,7 @@ it() lsoption(implementation-header)(i)(filename)nl() Use tt(filename) as the name of the file to contain the implementation header. Defaults to the name of the generated - scanner class plus the suffix tt(.ih). The implementation header + scanner class plus the suffix tt(.hh). The implementation header should contain all directives and declarations em(only) used by the implementations of the scanner's member functions. It is the only header file that is included by the source file containing @@ -131,7 +131,7 @@ it() lsoption(implementation-skeleton)(I)(pathname)nl() Use tt(pathname) as the path to the file containing the skeleton of the implementation header. Its filename defaults to - tt(flexc++.ih). + tt(flexc++.hh). it() lsoption(lex-skeleton)(L)(pathname)nl() Use tt(pathname) as the path to the file containing the diff -Nru flexc++-2.03.00/documentation/manual/differences/definitions.yo flexc++-2.03.04/documentation/manual/differences/definitions.yo --- flexc++-2.03.00/documentation/manual/differences/definitions.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/manual/differences/definitions.yo 2015-10-02 09:47:22.000000000 +0000 @@ -2,7 +2,7 @@ itemization( nosupport(tt(%top) block, copies code to top of yylex.cc.) (Define macros or include files.) - (Include header files in Scanner.ih.) + (Include header files in Scanner.hh.) nosupport(Indented text or tt(`%{ ... %}') blocks copied verbatim to yylex.cc) diff -Nru flexc++-2.03.00/documentation/manual/differences/files.yo flexc++-2.03.04/documentation/manual/differences/files.yo --- flexc++-2.03.00/documentation/manual/differences/files.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/manual/differences/files.yo 2015-10-02 09:47:22.000000000 +0000 @@ -1,10 +1,10 @@ While bf(flex)(1) only generates a file tt(lex.yy.cc), flc() generates several files: several header files and a source file. By default flc() generates a -class header file (tt(Scanner.h)), and internal header file (tt(Scanner.ih)), +class header file (tt(Scanner.h)), and internal header file (tt(Scanner.hh)), a base class header file (tt(Scannerbase.h)), and the file tt(lex.cc) containing the implementation of the required members of the tt(class Scanner). tt(Scannerbase.h) and tt(lex.cc) should not be edited: they are overwritten whenever flc() is invoked. The other files (tt(Scanner.h) and -tt(Scanner.ih)) are generated only once, and can thereafter be modified by the +tt(Scanner.hh)) are generated only once, and can thereafter be modified by the user (e.g., to add members to the tt(Scanner) class). diff -Nru flexc++-2.03.00/documentation/manual/files/intro.yo flexc++-2.03.04/documentation/manual/files/intro.yo --- flexc++-2.03.00/documentation/manual/files/intro.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/manual/files/intro.yo 2015-10-02 09:47:22.000000000 +0000 @@ -21,7 +21,7 @@ it() A file containing the em(implementation header). This file should contain includes and declarations that are only required when compiling the members of the scanner class. By default this file is named -tt(Scanner.ih). This file, like the file containing the scanner class's +tt(Scanner.hh). This file, like the file containing the scanner class's interface is never rewritten by flc() unless flc() is explicitly ordered to do so. ) @@ -36,15 +36,15 @@ tt(Scanner) class is derived from tt(ScannerBase). The tt(Scannerbase.h) is `owned' by flc(), and flc() reqrites tt(Scannerbase.h) at each new flc() run. -The other two files tt(Scanner.h) and tt(Scanner.ih) are created only once, +The other two files tt(Scanner.h) and tt(Scanner.hh) are created only once, and can safely be edited by the programmer. The tt(Scanner.h) header file contains the final tt(Scanner) class, to which new members may be added. These members may be called from the actions defined in flc()'s input file (tt(lexer)). -Finally, tt(Scanner.ih) contains declarations which are used by the +Finally, tt(Scanner.hh) contains declarations which are used by the implementations of the tt(Scanner) members. One can place tt(using) statements here as well as includes which are only required by member implementations. In a well-designed classq, source files defining new members of the class -tt(Scanner) should only have to include tt(Scanner.ih). +tt(Scanner) should only have to include tt(Scanner.hh). diff -Nru flexc++-2.03.00/documentation/manual/intro/options.yo flexc++-2.03.04/documentation/manual/intro/options.yo --- flexc++-2.03.00/documentation/manual/intro/options.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/manual/intro/options.yo 2015-10-02 09:47:22.000000000 +0000 @@ -114,7 +114,7 @@ it() lsoption(implementation-header)(i)(filename)nl() Use tt(filename) as the name of the file to contain the implementation header. Defaults to the name of the generated - scanner class plus the suffix tt(.ih). The implementation header + scanner class plus the suffix tt(.hh). The implementation header should contain all directives and declarations em(only) used by the implementations of the scanner's member functions. It is the only header file that is included by the source file containing @@ -131,7 +131,7 @@ it() lsoption(implementation-skeleton)(I)(pathname)nl() Use tt(pathname) as the path to the file containing the skeleton of the implementation header. Its filename defaults to - tt(flexc++.ih). + tt(flexc++.hh). it() lsoption(lex-skeleton)(L)(pathname)nl() Use tt(pathname) as the path to the file containing the diff -Nru flexc++-2.03.00/documentation/manual/lexer/directives.yo flexc++-2.03.04/documentation/manual/lexer/directives.yo --- flexc++-2.03.00/documentation/manual/lexer/directives.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/manual/lexer/directives.yo 2015-10-02 09:47:22.000000000 +0000 @@ -94,13 +94,13 @@ it() bf(%filenames) tt(= "basename") nl() - Defines the basename of the tt(Scanner.h, Scanner.ih,) and + Defines the basename of the tt(Scanner.h, Scanner.hh,) and tt(Scannerbase.h) files. E.g., when using the directive verb( %filenames = "scanner" ) the names of the generated files are, respectively, tt(scanner.h, - scanner.ih,) and tt(scannerbase.h). Corresponding command-line + scanner.hh,) and tt(scannerbase.h). Corresponding command-line option: tt(--filenames). The name of the source file (by default tt(lex.cc)) is controlled by the tt(%lex-source) directive. diff -Nru flexc++-2.03.00/documentation/manual/technical/gencode.yo flexc++-2.03.04/documentation/manual/technical/gencode.yo --- flexc++-2.03.00/documentation/manual/technical/gencode.yo 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/documentation/manual/technical/gencode.yo 2015-10-02 09:47:22.000000000 +0000 @@ -9,7 +9,7 @@ itt(Scanner.h.) This file represents the generated scanner's interface. It inherits from tt(ScannerBase) and is written only if not existing. -itt(Scanner.ih.) This file represents the generated scanner's em(internal +itt(Scanner.hh.) This file represents the generated scanner's em(internal header file). The internal header file is part of a design philosophy according to which all source files belonging to a class should merely include the internal header file, which declares all headers and other elements that diff -Nru flexc++-2.03.00/flexc++.xref flexc++-2.03.04/flexc++.xref --- flexc++-2.03.00/flexc++.xref 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/flexc++.xref 2015-12-14 14:40:30.000000000 +0000 @@ -1,15 +1,15 @@ oxref by Frank B. Brokken (f.b.brokken@rug.nl) -oxref V1.00.02 2012-2015 +oxref V1.00.03 2012-2015 -CREATED Fri, 13 Mar 2015 16:08:28 +0000 +CREATED Mon, 14 Dec 2015 14:40:30 +0000 CROSS REFERENCE FOR: -fxs tmp/libmodules.a ---------------------------------------------------------------------- -accept(std::string const&, Options::PathType, char const*) - Full name: Options::accept(std::string const&, Options::PathType, char const*) +accept(std::__cxx11::basic_string, std::allocator > const&, Options::PathType, char const*) + Full name: Options::accept(std::__cxx11::basic_string, std::allocator > const&, Options::PathType, char const*) Source: accept.cc Used By: - assign.cc: Options::assign(FlexTypes::TextType, std::string*, Options::PathType, char const*) + assign.cc: Options::assign(FlexTypes::TextType, std::__cxx11::basic_string, std::allocator >*, Options::PathType, char const*) accept(unsigned int) Full name: ScannerBase::accept(unsigned int) @@ -42,26 +42,26 @@ handleloprules.cc: Rules::handleLopRules() addrule.cc: Parser::addRule(Pattern const&, bool) -add(std::string const&) - Full name: Ranges::add(std::string const&) +add(std::__cxx11::basic_string, std::allocator > const&) + Full name: Ranges::add(std::__cxx11::basic_string, std::allocator > const&) Source: add.cc Used By: add3.cc: Ranges::add(unsigned int) inspectstate.cc: Ranges::inspectState(State const&) add(unsigned int) - Full name: Ranges::add(unsigned int) - Source: add3.cc - Used By: - inspectstate.cc: Ranges::inspectState(State const&) - -add(unsigned int) Full name: StartConditions::add(unsigned int) Source: add2.cc Used By: add.cc: Rules::add(bool, Pattern const&, Block const&, FlexTypes::RuleType) addcatchall.cc: Rules::addCatchAll(unsigned int, unsigned int) +add(unsigned int) + Full name: Ranges::add(unsigned int) + Source: add3.cc + Used By: + inspectstate.cc: Ranges::inspectState(State const&) + addCatchAll(unsigned int, unsigned int) Full name: Rules::addCatchAll(unsigned int, unsigned int) Source: addcatchall.cc @@ -74,8 +74,8 @@ Used By: set.cc: CharClass::set() -addDefinition(std::string const&, FlexTypes::TextType) - Full name: Scanner::addDefinition(std::string const&, FlexTypes::TextType) +addDefinition(std::__cxx11::basic_string, std::allocator > const&, FlexTypes::TextType) + Full name: Scanner::addDefinition(std::__cxx11::basic_string, std::allocator > const&, FlexTypes::TextType) Source: adddefinition.cc Used By: parse.cc: Parser::executeAction(int) @@ -92,8 +92,8 @@ Used By: parse.cc: Parser::executeAction(int) -addSC(std::string const&) - Full name: StartConditions::addSC(std::string const&) +addSC(std::__cxx11::basic_string, std::allocator > const&) + Full name: StartConditions::addSC(std::__cxx11::basic_string, std::allocator > const&) Source: addsc.cc Used By: parse.cc: Parser::executeAction(int) @@ -110,16 +110,16 @@ Used By: parse.cc: Parser::executeAction(int) -append(std::vector > const&) - Full name: CharClass::append(std::vector > const&) +append(std::vector, std::allocator >, std::allocator, std::allocator > > > const&) + Full name: CharClass::append(std::vector, std::allocator >, std::allocator, std::allocator > > > const&) Source: append.cc Used By: dot.cc: Pattern::dot(States&) parse.cc: Parser::executeAction(int) - negate2.cc: CharClass::negate(std::vector > const&) + negate2.cc: CharClass::negate(std::vector, std::allocator >, std::allocator, std::allocator > > > const&) -assign(FlexTypes::TextType, std::string*, Options::PathType, char const*) - Full name: Options::assign(FlexTypes::TextType, std::string*, Options::PathType, char const*) +assign(FlexTypes::TextType, std::__cxx11::basic_string, std::allocator >*, Options::PathType, char const*) + Full name: Options::assign(FlexTypes::TextType, std::__cxx11::basic_string, std::allocator >*, Options::PathType, char const*) Source: assign.cc Used By: parse.cc: Parser::executeAction(int) @@ -136,13 +136,6 @@ Used By: data.cc: GLOBALS data.cc 10data.o -baseclassHeaderName() const - Full name: Options::baseclassHeaderName() const - Source: baseclassheadername.cc - Used By: - baseclassh.cc: Generator::baseClassH(std::ostream&) const - conflicts.cc: Generator::conflicts() const - baseIncludes(std::ostream&) const Full name: Generator::baseIncludes(std::ostream&) const Source: baseincludes.cc @@ -161,8 +154,8 @@ Used By: parse.cc: Parser::executeAction(int) -build(std::string const&, std::vector > const&) - Full name: DFA::build(std::string const&, std::vector > const&) +build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) + Full name: DFA::build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) Source: build.cc Used By: build.cc: DFAs::build() @@ -192,18 +185,18 @@ Source: charclass1.cc Used By: dot.cc: Pattern::dot(States&) - parse.cc: ParserBase::pushToken__(int) + parse.cc: Parser::lookup(bool) difference.cc: CharClass::difference(CharClass&, CharClass&) unite.cc: CharClass::unite(CharClass&, CharClass&) -CharClass(std::string const&, unsigned int) - Full name: CharClass::CharClass(std::string const&, unsigned int) +CharClass(std::__cxx11::basic_string, std::allocator > const&, unsigned int) + Full name: CharClass::CharClass(std::__cxx11::basic_string, std::allocator > const&, unsigned int) Source: charclass3.cc Used By: parse.cc: Parser::executeAction(int) -chars(std::string const&) - Full name: CharClass::chars(std::string const&) +chars(std::__cxx11::basic_string, std::allocator > const&) + Full name: CharClass::chars(std::__cxx11::basic_string, std::allocator > const&) Source: chars.cc Used By: parse.cc: Parser::executeAction(int) @@ -218,7 +211,7 @@ Full name: Ranges::chCollision(unsigned char, unsigned char&, unsigned int const*) Source: chcollision.cc Used By: - collision.cc: Ranges::collision(std::string const&, unsigned int const*) + collision.cc: Ranges::collision(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) classH(std::ostream&) const Full name: Generator::classH(std::ostream&) const @@ -232,13 +225,6 @@ Used By: data.cc: GLOBALS data.cc 10data.o -classHeaderName() const - Full name: Options::classHeaderName() const - Source: classheadername.cc - Used By: - classh.cc: Generator::classH(std::ostream&) const - conflicts.cc: Generator::conflicts() const - classIH(std::ostream&) const Full name: Generator::classIH(std::ostream&) const Source: classih.cc @@ -251,7 +237,7 @@ Used By: noaction.cc: Rule::noAction() handleloprule.cc: Rules::handleLopRule(unsigned int) - open.cc: Block::open(unsigned int, std::string const&) + open.cc: Block::open(unsigned int, std::__cxx11::basic_string, std::allocator > const&) close() Full name: Block::close() @@ -265,11 +251,11 @@ Used By: concatenate.cc: Pattern::concatenate(States&, Pattern const&, Pattern const&) -collision(std::string const&, unsigned int const*) - Full name: Ranges::collision(std::string const&, unsigned int const*) +collision(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) + Full name: Ranges::collision(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) Source: collision.cc Used By: - update.cc: Ranges::update(std::string const&, unsigned int const*) + update.cc: Ranges::update(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) concatenate(States&, Pattern const&, Pattern const&) Full name: Pattern::concatenate(States&, Pattern const&, Pattern const&) @@ -308,7 +294,111 @@ Full name: Ranges::countRanges(unsigned int&, std::vector >&) Source: countranges.cc Used By: - update.cc: Ranges::update(std::string const&, unsigned int const*) + update.cc: Ranges::update(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) + +cxx11] + Full name: Options::s_warnOptions[abi:cxx11] + Source: data.cc + Used By: + errexisting.cc: Generator::errExisting(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) const + assign.cc: Options::assign(FlexTypes::TextType, std::__cxx11::basic_string, std::allocator >*, Options::PathType, char const*) + setaccessorvariables.cc: Options::setAccessorVariables() + setclassname.cc: Options::setClassName(FlexTypes::TextType) + setoptionpath.cc: Options::setOptionPath(std::__cxx11::basic_string, std::allocator >*, int, std::__cxx11::basic_string, std::allocator > const&, char const*, char const*) + +cxx11] + Full name: CharRange::s_funHash[abi:cxx11] + Source: data.cc + Used By: + predefined.cc: CharRange::predefined(std::__cxx11::basic_string, std::allocator > const&) + +cxx11] + Full name: CharRange::s_all[abi:cxx11] + Source: data.cc + Used By: + negate.cc: CharRange::negate(std::__cxx11::basic_string, std::allocator > const&) + +cxx11] + Full name: CharRange::s_hash[abi:cxx11] + Source: data.cc + Used By: + predefined.cc: CharRange::predefined(std::__cxx11::basic_string, std::allocator > const&) + +cxx11] + Full name: Generator::s_insert[abi:cxx11] + Source: data.cc + Used By: + insert.cc: Generator::insert(std::ostream&) const + +cxx11] + Full name: Parser::s_lastMsg[abi:cxx11] + Source: data.cc + Used By: + error.cc: Parser::error(char const*) + reset.cc: Parser::reset() + +cxx11] + Full name: ParserBase::s_out__[abi:cxx11] + Source: parse.cc + Used By: + lookahead.cc: GLOBALS lookahead.cc 2lookahead.o + quotes.cc: Parser::quotes() + +cxx11]() + Full name: CharClass::str[abi:cxx11]() + Source: str.cc + Used By: + characterclass.cc: Pattern::characterClass(States&, CharClass&) + negate1.cc: CharClass::negate() + +cxx11]() const + Full name: Scanner::rawStringContents[abi:cxx11]() const + Source: rawstringcontents.cc + Used By: + parse.cc: Parser::executeAction(int) + rawstring.cc: Parser::rawString() + +cxx11]() const + Full name: Options::implementationHeaderName[abi:cxx11]() const + Source: implementationheadername.cc + Used By: + classih.cc: Generator::classIH(std::ostream&) const + +cxx11]() const + Full name: Options::classHeaderName[abi:cxx11]() const + Source: classheadername.cc + Used By: + classh.cc: Generator::classH(std::ostream&) const + conflicts.cc: Generator::conflicts() const + +cxx11]() const + Full name: Options::baseclassHeaderName[abi:cxx11]() const + Source: baseclassheadername.cc + Used By: + baseclassh.cc: Generator::baseClassH(std::ostream&) const + conflicts.cc: Generator::conflicts() const + +cxx11](FlexTypes::TextType) + Full name: Options::textOf[abi:cxx11](FlexTypes::TextType) + Source: textof.cc + Used By: + assign.cc: Options::assign(FlexTypes::TextType, std::__cxx11::basic_string, std::allocator >*, Options::PathType, char const*) + setclassname.cc: Options::setClassName(FlexTypes::TextType) + setfilenames.cc: Options::setFilenames(FlexTypes::TextType) + setlexfunctionname.cc: Options::setLexFunctionName(FlexTypes::TextType) + +cxx11](int) const + Full name: ParserBase::symbol__[abi:cxx11](int) const + Source: parse.cc + Used By: + print.cc: Parser::print() + +cxx11](unsigned int) const + Full name: CharClass::rangeString[abi:cxx11](unsigned int) const + Source: rangestring.cc + Used By: + inversedrange.cc: CharClass::inversedRange(unsigned int) const + rangeafterrange.cc: CharClass::rangeAfterRange(__gnu_cxx::__normal_iterator > >) const debug(std::ostream&) const Full name: Generator::debug(std::ostream&) const @@ -334,8 +424,8 @@ Used By: data.cc: GLOBALS data.cc 10data.o -define(std::string const&) - Full name: StartConditions::define(std::string const&) +define(std::__cxx11::basic_string, std::allocator > const&) + Full name: StartConditions::define(std::__cxx11::basic_string, std::allocator > const&) Source: define.cc Used By: addlopstartconditions.cc: Parser::addLopStartConditions() @@ -347,8 +437,8 @@ Used By: build.cc: DFAs::build() -dfa(std::pair const&, std::ostream&, std::vector >&, std::vector >&) - Full name: Generator::dfa(std::pair const&, std::ostream&, std::vector >&, std::vector >&) +dfa(std::pair, std::allocator >, DFA*> const&, std::ostream&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector >&) + Full name: Generator::dfa(std::pair, std::allocator >, DFA*> const&, std::ostream&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector >&) Source: dfa.cc Used By: dfas.cc: Generator::dfas(std::ostream&) const @@ -363,13 +453,13 @@ Full name: Generator::dfaRow(DFARow const&, unsigned int&, std::ostream&) Source: dfarow.cc Used By: - dfa.cc: Generator::dfa(std::pair const&, std::ostream&, std::vector >&, std::vector >&) + dfa.cc: Generator::dfa(std::pair, std::allocator >, DFA*> const&, std::ostream&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector >&) DFARow(Rules&, States&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, unsigned int, unsigned int, std::vector >*) Full name: DFARow::DFARow(Rules&, States&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, unsigned int, unsigned int, std::vector >*) Source: dfarow1.cc Used By: - build.cc: DFA::build(std::string const&, std::vector > const&) + build.cc: DFA::build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) dfaRules(DFARow const&, std::ostream&) Full name: Generator::dfaRules(DFARow const&, std::ostream&) @@ -438,7 +528,7 @@ Full name: States::eClosure(std::set, std::allocator >&) const Source: eclosure.cc Used By: - build.cc: DFA::build(std::string const&, std::vector > const&) + build.cc: DFA::build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) transitions.cc: DFARow::transitions() empty(States const&, unsigned int) @@ -465,8 +555,8 @@ Used By: parse.cc: Parser::executeAction(int) -errExisting(std::string const&, std::string const&, std::string const&) const - Full name: Generator::errExisting(std::string const&, std::string const&, std::string const&) const +errExisting(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) const + Full name: Generator::errExisting(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) const Source: errexisting.cc Used By: conflicts.cc: Generator::conflicts() const @@ -477,20 +567,20 @@ Used By: parse.cc: Parser::errorRecovery() -escape(States&, std::string const&) - Full name: Pattern::escape(States&, std::string const&) +escape(States&, std::__cxx11::basic_string, std::allocator > const&) + Full name: Pattern::escape(States&, std::__cxx11::basic_string, std::allocator > const&) Source: escape.cc Used By: parse.cc: Parser::executeAction(int) -exact(std::string const&) - Full name: Interval::exact(std::string const&) +exact(std::__cxx11::basic_string, std::allocator > const&) + Full name: Interval::exact(std::__cxx11::basic_string, std::allocator > const&) Source: exact.cc Used By: parse.cc: Parser::executeAction(int) -filename(std::string const&) - Full name: Generator::filename(std::string const&) +filename(std::__cxx11::basic_string, std::allocator > const&) + Full name: Generator::filename(std::__cxx11::basic_string, std::allocator > const&) Source: filename.cc Used By: baseclassh.cc: Generator::baseClassH(std::ostream&) const @@ -518,12 +608,12 @@ Used By: lopimplementation.cc: Generator::lopImplementation(std::ostream&) const -grep(std::string const&, std::string const&) const - Full name: Generator::grep(std::string const&, std::string const&) const +grep(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) const + Full name: Generator::grep(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) const Source: grep.cc Used By: classheader.cc: Generator::classHeader() const - errexisting.cc: Generator::errExisting(std::string const&, std::string const&, std::string const&) const + errexisting.cc: Generator::errExisting(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) const handleCharAfterBlanks() Full name: Scanner::handleCharAfterBlanks() @@ -585,12 +675,6 @@ Used By: lex.cc: Scanner::executeAction__(unsigned int) -implementationHeaderName() const - Full name: Options::implementationHeaderName() const - Source: implementationheadername.cc - Used By: - classih.cc: Generator::classIH(std::ostream&) const - inlineLexFunction(std::ostream&) const Full name: Generator::inlineLexFunction(std::ostream&) const Source: inlinelexfunction.cc @@ -715,7 +799,7 @@ Full name: DFA::keepUniqueRows() Source: keepuniquerows.cc Used By: - build.cc: DFA::build(std::string const&, std::vector > const&) + build.cc: DFA::build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) key(std::ostream&) const Full name: Generator::key(std::ostream&) const @@ -808,8 +892,8 @@ Used By: data.cc: GLOBALS data.cc 10data.o -lowerBound(std::string const&) - Full name: Interval::lowerBound(std::string const&) +lowerBound(std::__cxx11::basic_string, std::allocator > const&) + Full name: Interval::lowerBound(std::__cxx11::basic_string, std::allocator > const&) Source: lowerbound.cc Used By: parse.cc: Parser::executeAction(int) @@ -849,17 +933,17 @@ Source: negate1.cc Used By: parse.cc: Parser::executeAction(int) - negate2.cc: CharClass::negate(std::vector > const&) + negate2.cc: CharClass::negate(std::vector, std::allocator >, std::allocator, std::allocator > > > const&) -negate(std::string const&) - Full name: CharRange::negate(std::string const&) +negate(std::__cxx11::basic_string, std::allocator > const&) + Full name: CharRange::negate(std::__cxx11::basic_string, std::allocator > const&) Source: negate.cc Used By: - predefined.cc: CharRange::predefined(std::string const&) + predefined.cc: CharRange::predefined(std::__cxx11::basic_string, std::allocator > const&) negate1.cc: CharClass::negate() -negate(std::vector > const&) - Full name: CharClass::negate(std::vector > const&) +negate(std::vector, std::allocator >, std::allocator, std::allocator > > > const&) + Full name: CharClass::negate(std::vector, std::allocator >, std::allocator, std::allocator > > > const&) Source: negate2.cc Used By: parse.cc: Parser::executeAction(int) @@ -884,7 +968,7 @@ Full name: States::next(unsigned int) Source: next3.cc Used By: - rawtext.cc: Pattern::rawText(States&, std::string const&) + rawtext.cc: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) next2() Full name: States::next2() @@ -893,10 +977,10 @@ alternatives.cc: Pattern::alternatives(States&, Pattern const&, Pattern const&) characterclass.cc: Pattern::characterClass(States&, CharClass&) eof.cc: Pattern::eof(States&) - escape.cc: Pattern::escape(States&, std::string const&) + escape.cc: Pattern::escape(States&, std::__cxx11::basic_string, std::allocator > const&) interval.cc: Pattern::interval(States&, Pattern&, Interval const&) plus.cc: Pattern::plus(States&, Pattern const&) - rawtext.cc: Pattern::rawText(States&, std::string const&) + rawtext.cc: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) star.cc: Pattern::star(States&, Pattern const&) noAction() @@ -911,8 +995,8 @@ Used By: parse.cc: Parser::executeAction(int) -open(unsigned int, std::string const&) - Full name: Block::open(unsigned int, std::string const&) +open(unsigned int, std::__cxx11::basic_string, std::allocator > const&) + Full name: Block::open(unsigned int, std::__cxx11::basic_string, std::allocator > const&) Source: open.cc Used By: block.cc: Parser::block() @@ -933,8 +1017,8 @@ debugfunctions.cc: Generator::debugFunctions(std::ostream&) const parser1.cc: Parser::Parser(Rules&, States&) -operator+=(std::string const&) - Full name: Block::operator+=(std::string const&) +operator+=(std::__cxx11::basic_string, std::allocator > const&) + Full name: Block::operator+=(std::__cxx11::basic_string, std::allocator > const&) Source: operatorplusis.cc Used By: handlefixedtailloprule.cc: Rules::handleFixedTailLopRule(Rule&) @@ -999,7 +1083,7 @@ Full name: Pattern::operator=(std::pair const&) Source: operatorassign.cc Used By: - rawtext.cc: Pattern::rawText(States&, std::string const&) + rawtext.cc: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) operator==(DFARow const&) const Full name: DFARow::operator==(DFARow const&) const @@ -1031,8 +1115,8 @@ Used By: operatorinsert.cc: operator<<(std::ostream&, Ranges const&) -outDFAbase(std::string const&, unsigned int) - Full name: Generator::outDFAbase(std::string const&, unsigned int) +outDFAbase(std::__cxx11::basic_string, std::allocator > const&, unsigned int) + Full name: Generator::outDFAbase(std::__cxx11::basic_string, std::allocator > const&, unsigned int) Source: outdfabase.cc Used By: dfabases.cc: Generator::DFAbases(std::ostream&) const @@ -1064,7 +1148,7 @@ concatenate.cc: Pattern::concatenate(States&, Pattern const&, Pattern const&) duplicate.cc: Pattern::duplicate(States&) const eof.cc: Pattern::eof(States&) - escape.cc: Pattern::escape(States&, std::string const&) + escape.cc: Pattern::escape(States&, std::__cxx11::basic_string, std::allocator > const&) interval.cc: Pattern::interval(States&, Pattern&, Interval const&) join.cc: Pattern::join(States&, Pattern&, unsigned int, std::vector, std::allocator > > const&) optionalpatterns.cc: Pattern::optionalPatterns(States&, Pattern&, unsigned int, unsigned int, std::vector, std::allocator > >&) @@ -1073,12 +1157,12 @@ plus.cc: Pattern::plus(States&, Pattern const&) quantifier.cc: Pattern::quantifier(States&, Pattern const&, unsigned int) questionmark.cc: Pattern::questionMark(States&, Pattern const&) - rawtext.cc: Pattern::rawText(States&, std::string const&) + rawtext.cc: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) star.cc: Pattern::star(States&, Pattern const&) handleloprule.cc: Rules::handleLopRule(unsigned int) rules1.cc: Rules::Rules(States&) lookahead.cc: Parser::lookahead(Pattern const&, Pattern const&) - parse.cc: ParserBase::pushToken__(int) + parse.cc: Parser::lookup(bool) pLex() Full name: Scanner::pLex() @@ -1101,31 +1185,31 @@ lex.cc: Scanner::executeAction__(unsigned int) popStream() + Full name: ScannerBase::popStream() + Source: lex.cc + Used By: + popstream.cc: Scanner::popStream() + +popStream() Full name: Scanner::popStream() Source: popstream.cc Used By: lex.cc: Scanner::lex__() moreinput.cc: Scanner::moreInput() -popStream() - Full name: ScannerBase::popStream() - Source: lex.cc +predefined(std::__cxx11::basic_string, std::allocator > const&) + Full name: CharRange::predefined(std::__cxx11::basic_string, std::allocator > const&) + Source: predefined.cc Used By: - popstream.cc: Scanner::popStream() + predefined.cc: CharClass::predefined(std::__cxx11::basic_string, std::allocator > const&) -predefined(std::string const&) - Full name: CharClass::predefined(std::string const&) +predefined(std::__cxx11::basic_string, std::allocator > const&) + Full name: CharClass::predefined(std::__cxx11::basic_string, std::allocator > const&) Source: predefined.cc Used By: dot.cc: Pattern::dot(States&) parse.cc: Parser::executeAction(int) -predefined(std::string const&) - Full name: CharRange::predefined(std::string const&) - Source: predefined.cc - Used By: - predefined.cc: CharClass::predefined(std::string const&) - predefinedAfter(unsigned int) const Full name: CharClass::predefinedAfter(unsigned int) const Source: predefinedafter.cc @@ -1165,7 +1249,7 @@ handlerawstring.cc: Scanner::handleRawString() handlestdcomment.cc: Scanner::handleStdComment() newdefinition.cc: Scanner::newDefinition() - scanner1.cc: Scanner::Scanner(std::string const&) + scanner1.cc: Scanner::Scanner(std::__cxx11::basic_string, std::allocator > const&) parse.cc: Parser::executeAction(int) pushNameExpansion() @@ -1174,8 +1258,8 @@ Used By: lex.cc: Scanner::executeAction__(unsigned int) -pushStream(std::string const&) - Full name: ScannerBase::pushStream(std::string const&) +pushStream(std::__cxx11::basic_string, std::allocator > const&) + Full name: ScannerBase::pushStream(std::__cxx11::basic_string, std::allocator > const&) Source: lex.cc Used By: maybeswitchstream.cc: Scanner::maybeSwitchStream() @@ -1199,8 +1283,8 @@ Used By: parse.cc: Parser::executeAction(int) -range(std::string const&, std::string const&) - Full name: Interval::range(std::string const&, std::string const&) +range(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) + Full name: Interval::range(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) Source: range.cc Used By: parse.cc: Parser::executeAction(int) @@ -1229,28 +1313,14 @@ Used By: data.cc: GLOBALS data.cc 10data.o -rangeString(unsigned int) const - Full name: CharClass::rangeString(unsigned int) const - Source: rangestring.cc - Used By: - inversedrange.cc: CharClass::inversedRange(unsigned int) const - rangeafterrange.cc: CharClass::rangeAfterRange(__gnu_cxx::__normal_iterator > >) const - rawString() Full name: Parser::rawString() Source: rawstring.cc Used By: parse.cc: Parser::executeAction(int) -rawStringContents() const - Full name: Scanner::rawStringContents() const - Source: rawstringcontents.cc - Used By: - parse.cc: Parser::executeAction(int) - rawstring.cc: Parser::rawString() - -rawText(States&, std::string const&) - Full name: Pattern::rawText(States&, std::string const&) +rawText(States&, std::__cxx11::basic_string, std::allocator > const&) + Full name: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) Source: rawtext.cc Used By: boln.cc: Parser::boln() @@ -1277,14 +1347,14 @@ Used By: warnnonviable.cc: DFAs::warnNonViable() const -replace(std::string, __gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >, unsigned int) - Full name: CharClass::replace(std::string, __gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >, unsigned int) +replace(std::__cxx11::basic_string, std::allocator >, __gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >, unsigned int) + Full name: CharClass::replace(std::__cxx11::basic_string, std::allocator >, __gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >, unsigned int) Source: replace.cc Used By: inspect.cc: CharClass::inspect(__gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >) -reRead(std::string const&, unsigned int) - Full name: ScannerBase::Input::reRead(std::string const&, unsigned int) +reRead(std::__cxx11::basic_string, std::allocator > const&, unsigned int) + Full name: ScannerBase::Input::reRead(std::__cxx11::basic_string, std::allocator > const&, unsigned int) Source: lex.cc Used By: insertedcatchall.cc: Scanner::insertedCatchAll() @@ -1315,12 +1385,6 @@ Used By: transit.cc: DFARow::transit(unsigned int, unsigned int, std::set, std::allocator >&) -s_all - Full name: CharRange::s_all - Source: data.cc - Used By: - negate.cc: CharRange::negate(std::string const&) - s_baseFlag Full name: Generator::s_baseFlag Source: data.cc @@ -1359,18 +1423,6 @@ push.cc: Scanner::push(ScannerBase::StartCondition__) switchtoinitial.cc: Scanner::switchToINITIAL() -s_funHash - Full name: CharRange::s_funHash - Source: data.cc - Used By: - predefined.cc: CharRange::predefined(std::string const&) - -s_hash - Full name: CharRange::s_hash - Source: data.cc - Used By: - predefined.cc: CharRange::predefined(std::string const&) - s_ignoreToken Full name: Parser::s_ignoreToken Source: data.cc @@ -1378,19 +1430,6 @@ parser1.cc: Parser::Parser(Rules&, States&) print.cc: Parser::print() -s_insert - Full name: Generator::s_insert - Source: data.cc - Used By: - insert.cc: Generator::insert(std::ostream&) const - -s_lastMsg - Full name: Parser::s_lastMsg - Source: data.cc - Used By: - error.cc: Parser::error(char const*) - reset.cc: Parser::reset() - s_namespaceBaseFlag Full name: Generator::s_namespaceBaseFlag Source: data.cc @@ -1409,13 +1448,6 @@ Used By: instance.cc: Options::instance() -s_out__ - Full name: ParserBase::s_out__ - Source: parse.cc - Used By: - lookahead.cc: GLOBALS lookahead.cc 2lookahead.o - quotes.cc: Parser::quotes() - s_regexCall Full name: Options::s_regexCall Source: data.cc @@ -1432,39 +1464,29 @@ Full name: DFA::s_verbose Source: data.cc Used By: - build.cc: DFA::build(std::string const&, std::vector > const&) + build.cc: DFA::build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) dfa1.cc: DFA::DFA(Ranges&, Rules&, States&) keepuniquerows.cc: DFA::keepUniqueRows() setverbose.cc: DFA::setVerbose(bool) shrinkdfa.cc: DFA::shrinkDFA(std::vector >&) -s_warnOptions - Full name: Options::s_warnOptions - Source: data.cc - Used By: - errexisting.cc: Generator::errExisting(std::string const&, std::string const&, std::string const&) const - assign.cc: Options::assign(FlexTypes::TextType, std::string*, Options::PathType, char const*) - setaccessorvariables.cc: Options::setAccessorVariables() - setclassname.cc: Options::setClassName(FlexTypes::TextType) - setoptionpath.cc: Options::setOptionPath(std::string*, int, std::string const&, char const*, char const*) - sameTransits(FBB::LinearMap > > const&, FBB::LinearMap > > const&) Full name: DFARow::sameTransits(FBB::LinearMap > > const&, FBB::LinearMap > > const&) Source: sametransits.cc Used By: operatorequal.cc: DFARow::operator==(DFARow const&) const -Scanner(std::string const&) - Full name: Scanner::Scanner(std::string const&) +Scanner(std::__cxx11::basic_string, std::allocator > const&) + Full name: Scanner::Scanner(std::__cxx11::basic_string, std::allocator > const&) Source: scanner1.cc Used By: parser1.cc: Parser::Parser(Rules&, States&) -ScannerBase(std::string const&, std::string const&) - Full name: ScannerBase::ScannerBase(std::string const&, std::string const&) +ScannerBase(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) + Full name: ScannerBase::ScannerBase(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) Source: lex.cc Used By: - scanner1.cc: Scanner::Scanner(std::string const&) + scanner1.cc: Scanner::Scanner(std::__cxx11::basic_string, std::allocator > const&) scannerConstructors(std::ostream&) const Full name: Generator::scannerConstructors(std::ostream&) const @@ -1483,7 +1505,7 @@ Source: set.cc Used By: difference.cc: CharClass::difference(CharClass&, CharClass&) - str.cc: CharClass::str() + str.cc: CharClass::str[abi:cxx11]() unite.cc: CharClass::unite(CharClass&, CharClass&) setAccessorVariables() @@ -1522,13 +1544,13 @@ Used By: parse.cc: Parser::executeAction(int) -setLineTags(std::string const&) const - Full name: Scanner::setLineTags(std::string const&) const +setLineTags(std::__cxx11::basic_string, std::allocator > const&) const + Full name: Scanner::setLineTags(std::__cxx11::basic_string, std::allocator > const&) const Source: setlinetags.cc Used By: maybeswitchstream.cc: Scanner::maybeSwitchStream() popstream.cc: Scanner::popStream() - scanner1.cc: Scanner::Scanner(std::string const&) + scanner1.cc: Scanner::Scanner(std::__cxx11::basic_string, std::allocator > const&) setLopBlocks() Full name: Rules::setLopBlocks() @@ -1536,14 +1558,14 @@ Used By: handleloprules.cc: Rules::handleLopRules() -setOptionPath(std::string*, int, std::string const&, char const*, char const*) - Full name: Options::setOptionPath(std::string*, int, std::string const&, char const*, char const*) +setOptionPath(std::__cxx11::basic_string, std::allocator >*, int, std::__cxx11::basic_string, std::allocator > const&, char const*, char const*) + Full name: Options::setOptionPath(std::__cxx11::basic_string, std::allocator >*, int, std::__cxx11::basic_string, std::allocator > const&, char const*, char const*) Source: setoptionpath.cc Used By: setpathstrings.cc: Options::setPathStrings() -setParserInfo(std::string const&, std::string const&) - Full name: Options::setParserInfo(std::string const&, std::string const&) +setParserInfo(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) + Full name: Options::setParserInfo(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) Source: setparserinfo.cc Used By: parser1.cc: Parser::Parser(Rules&, States&) @@ -1602,19 +1624,19 @@ Full name: State::State(unsigned char, unsigned int) Source: state6.cc Used By: - escape.cc: Pattern::escape(States&, std::string const&) - rawtext.cc: Pattern::rawText(States&, std::string const&) + escape.cc: Pattern::escape(States&, std::__cxx11::basic_string, std::allocator > const&) + rawtext.cc: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) State(unsigned int, StateData*) Full name: State::State(unsigned int, StateData*) Source: state3.cc Used By: state4.cc: State::State(unsigned int, unsigned int, unsigned int) - state5.cc: State::State(unsigned int, std::string const&, unsigned int, unsigned int) + state5.cc: State::State(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) state6.cc: State::State(unsigned char, unsigned int) -State(unsigned int, std::string const&, unsigned int, unsigned int) - Full name: State::State(unsigned int, std::string const&, unsigned int, unsigned int) +State(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) + Full name: State::State(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) Source: state5.cc Used By: characterclass.cc: Pattern::characterClass(States&, CharClass&) @@ -1629,7 +1651,7 @@ jumptoend.cc: Pattern::jumpToEnd(States&, std::vector, std::allocator > >&, unsigned int, unsigned int, FBB::LinearMap > >&) plus.cc: Pattern::plus(States&, Pattern const&) questionmark.cc: Pattern::questionMark(States&, Pattern const&) - rawtext.cc: Pattern::rawText(States&, std::string const&) + rawtext.cc: Pattern::rawText(States&, std::__cxx11::basic_string, std::allocator > const&) star.cc: Pattern::star(States&, Pattern const&) next2.cc: States::next2() next3.cc: States::next(unsigned int) @@ -1641,27 +1663,20 @@ state4.cc: State::State(unsigned int, unsigned int, unsigned int) state6.cc: State::State(unsigned char, unsigned int) vclone.cc: StateData::v_clone() const - statestring1.cc: StateString::StateString(std::string const&, unsigned int, unsigned int) + statestring1.cc: StateString::StateString(std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) -StateString(std::string const&, unsigned int, unsigned int) - Full name: StateString::StateString(std::string const&, unsigned int, unsigned int) +StateString(std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) + Full name: StateString::StateString(std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) Source: statestring1.cc Used By: - state5.cc: State::State(unsigned int, std::string const&, unsigned int, unsigned int) + state5.cc: State::State(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) vclone.cc: StateString::v_clone() const -str() - Full name: CharClass::str() - Source: str.cc - Used By: - characterclass.cc: Pattern::characterClass(States&, CharClass&) - negate1.cc: CharClass::negate() - subsetCount() Full name: Ranges::subsetCount() Source: subsetcount.cc Used By: - update.cc: Ranges::update(std::string const&, unsigned int const*) + update.cc: Ranges::update(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) switchToINITIAL() Full name: Scanner::switchToINITIAL() @@ -1669,12 +1684,6 @@ Used By: lex.cc: Scanner::executeAction__(unsigned int) -symbol__(int) const - Full name: ParserBase::symbol__(int) const - Source: parse.cc - Used By: - print.cc: Parser::print() - tabulate(FBB::Table&) const Full name: DFARow::tabulate(FBB::Table&) const Source: tabulate.cc @@ -1693,21 +1702,12 @@ Used By: tabulate.cc: DFARow::tabulate(FBB::Table&) const -tagMinuses(unsigned int, std::string const&, unsigned int) - Full name: CharClass::tagMinuses(unsigned int, std::string const&, unsigned int) +tagMinuses(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int) + Full name: CharClass::tagMinuses(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int) Source: tagminuses.cc Used By: inspect.cc: CharClass::inspect(__gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >) -textOf(FlexTypes::TextType) - Full name: Options::textOf(FlexTypes::TextType) - Source: textof.cc - Used By: - assign.cc: Options::assign(FlexTypes::TextType, std::string*, Options::PathType, char const*) - setclassname.cc: Options::setClassName(FlexTypes::TextType) - setfilenames.cc: Options::setFilenames(FlexTypes::TextType) - setlexfunctionname.cc: Options::setLexFunctionName(FlexTypes::TextType) - transit(unsigned int, unsigned int, std::set, std::allocator >&) Full name: DFARow::transit(unsigned int, unsigned int, std::set, std::allocator >&) Source: transit.cc @@ -1718,7 +1718,7 @@ Full name: DFARow::transitions() Source: transitions.cc Used By: - build.cc: DFA::build(std::string const&, std::vector > const&) + build.cc: DFA::build(std::__cxx11::basic_string, std::allocator > const&, std::vector > const&) uniqueMap(std::vector > const&) Full name: DFARow::uniqueMap(std::vector > const&) @@ -1732,11 +1732,11 @@ Used By: parse.cc: Parser::executeAction(int) -update(std::string const&, unsigned int const*) - Full name: Ranges::update(std::string const&, unsigned int const*) +update(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) + Full name: Ranges::update(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) Source: update.cc Used By: - add.cc: Ranges::add(std::string const&) + add.cc: Ranges::add(std::__cxx11::basic_string, std::allocator > const&) useAll() Full name: StartConditions::useAll() @@ -1748,11 +1748,11 @@ Full name: StateString::v_clone() const Source: vclone.cc Used By: - add.cc: Ranges::add(std::string const&) + add.cc: Ranges::add(std::__cxx11::basic_string, std::allocator > const&) add3.cc: Ranges::add(unsigned int) charsettoranges.cc: Ranges::charsetToRanges(StateData&, unsigned int*) chcollision.cc: Ranges::chCollision(unsigned char, unsigned char&, unsigned int const*) - collision.cc: Ranges::collision(std::string const&, unsigned int const*) + collision.cc: Ranges::collision(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) countranges.cc: Ranges::countRanges(unsigned int&, std::vector >&) destructor.cc: Ranges::~Ranges() determinesubsets.cc: Ranges::determineSubsets() @@ -1768,7 +1768,7 @@ ranges3.cc: Ranges::Ranges(Ranges&&) reassign.cc: Ranges::reassign(unsigned int&, std::vector >&) subsetcount.cc: Ranges::subsetCount() - update.cc: Ranges::update(std::string const&, unsigned int const*) + update.cc: Ranges::update(std::__cxx11::basic_string, std::allocator > const&, unsigned int const*) contains.cc: State::contains(unsigned int) const dup.cc: State::dup(State const&, unsigned int, unsigned int) operatorinsert.cc: operator<<(std::ostream&, State const&) @@ -1776,9 +1776,9 @@ state2.cc: State::State(unsigned int) state3.cc: State::State(unsigned int, StateData*) state4.cc: State::State(unsigned int, unsigned int, unsigned int) - state5.cc: State::State(unsigned int, std::string const&, unsigned int, unsigned int) + state5.cc: State::State(unsigned int, std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) state6.cc: State::State(unsigned char, unsigned int) - statestring1.cc: StateString::StateString(std::string const&, unsigned int, unsigned int) + statestring1.cc: StateString::StateString(std::__cxx11::basic_string, std::allocator > const&, unsigned int, unsigned int) v_clone() const Full name: StateData::v_clone() const @@ -1796,14 +1796,14 @@ Full name: version Source: version.cc Used By: - usage.cc: usage(std::string const&) + usage.cc: usage(std::__cxx11::basic_string, std::allocator > const&) filter.cc: Generator::filter(std::istream&, std::ostream&) const year Full name: year Source: version.cc Used By: - usage.cc: usage(std::string const&) + usage.cc: usage(std::__cxx11::basic_string, std::allocator > const&) ~Ranges() Full name: Ranges::~Ranges() diff -Nru flexc++-2.03.00/icmake/adddir flexc++-2.03.04/icmake/adddir --- flexc++-2.03.00/icmake/adddir 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/adddir 2015-12-14 14:36:18.000000000 +0000 @@ -5,7 +5,7 @@ int keep = 1; string elem; - for (idx = sizeof(dir); idx--; ) + for (idx = listlen(dir); idx--; ) { elem = dir[idx]; diff -Nru flexc++-2.03.00/icmake/backtick flexc++-2.03.04/icmake/backtick --- flexc++-2.03.00/icmake/backtick 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/backtick 2015-10-02 09:47:22.000000000 +0000 @@ -0,0 +1,10 @@ +list backtick(string arg) +{ + list ret; + + echo(OFF); + ret = `arg`; + echo(g_echo); + return ret; +} + diff -Nru flexc++-2.03.00/icmake/clean flexc++-2.03.04/icmake/clean --- flexc++-2.03.00/icmake/clean 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/icmake/clean 2015-10-02 09:47:22.000000000 +0000 @@ -12,7 +12,7 @@ if (dist) - run("rm -rf tmp"); + run("rm -rf tmp *.ih.gch */*.ih.gch"); chdir("documentation"); @@ -21,7 +21,6 @@ "man/*.3* " "man/*.7* " "man/*.html " - "manual/manual-stamp " "manual/*.html " "manual/invoking/usage " "manual/invoking/usage.txt " diff -Nru flexc++-2.03.00/icmake/cuteoln flexc++-2.03.04/icmake/cuteoln --- flexc++-2.03.00/icmake/cuteoln 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/cuteoln 2015-10-02 09:47:22.000000000 +0000 @@ -0,0 +1,9 @@ +string cutEoln(string text) +{ + int len; + + len = strlen(text) - 1; + if (text[len] == "\n") + text = substr(text, 0, len); + return text; +} diff -Nru flexc++-2.03.00/icmake/findall flexc++-2.03.04/icmake/findall --- flexc++-2.03.00/icmake/findall 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/findall 2015-12-14 14:36:18.000000000 +0000 @@ -0,0 +1,26 @@ +// assuming we're in g_cwd, all entries of type 'type' matching source/pattern +// are returned w/o final \n + +list findAll(string type, string source, string pattern) +{ + string cmd; + list entries; + list ret; + int idx; + + chdir(source); + + cmd = "find ./ -mindepth 1 -maxdepth 1 -type " + type; + + if (pattern != "") + pattern = "-name '" + pattern + "'"; + + entries = backtick(cmd + " " + pattern + " -printf \"%f\\n\""); + + for (idx = listlen(entries); idx--; ) + ret += (list)cutEoln(entries[idx]); + + chdir(g_cwd); + + return ret; +} diff -Nru flexc++-2.03.00/icmake/install flexc++-2.03.04/icmake/install --- flexc++-2.03.00/icmake/install 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/install 2015-10-28 14:58:25.000000000 +0000 @@ -1,112 +1,100 @@ -string setWhere(string where, string defaultWhere) -{ - if (where == "") - where = defaultWhere; - - md(where); - return where; -} -void install(string what, string where) +void install(string request, string dest) { - list files; - int idx; string target; - - if (what == "program") + int components = 0; + list pathsplit; + string base; + base = "tmp/install/"; + + md(base); + + if (request == "x") + components = 63; + else { - if (where == "") - where = BINARY; - - // 'where' exists, but is no regular file - if (exists(where) && ((int)stat(where)[0] & S_IFREG) == 0) - { - printf("'build install program path': path must be a " - "regular file\n"); - exit(0); - } - - md(get_path(where)); - printf(" INSTALLING the executable `", where, "'\n"); - run("icmbuild install program " + where); - log(where); - - writeLog(); // exits + if (strfind(request, "b") != -1) + components |= 2; + if (strfind(request, "d") != -1) + components |= 4; + if (strfind(request, "m") != -1) + components |= 8; + if (strfind(request, "s") != -1) + components |= 16; + if (strfind(request, "u") != -1) + components |= 32; } - if (what == "skel") + if (components & 2) { - where = setWhere(where, SKEL); + target = base + BINARY; + pathsplit = path_file(target); - printf(" INSTALLING skeleton files at `" + where + "'\n"); - md(where); - run("cp skeletons/* " + where); - logFiles("skeletons", where); - - writeLog(); + printf(" installing the executable `", target, "'\n"); + logFile("tmp/bin", "binary", pathsplit[0], pathsplit[1]); } - if (what == "man") - { - where = setWhere(where, MAN); - printf(" INSTALLING the manual pages below `", where, "'\n"); - md(where + "/man1"); - target = where + "/man1/" PROGRAM ".1.gz"; - run("gzip -9 -n < tmp/man/" PROGRAM ".1 > " + target); - log(target); + if (components & (4 | 8)) + { + target = base + DOC "/"; + if (components & 4) + { + printf(" installing the changelog at `", target, "\n"); + logZip("", "changelog", target); + } - md(where + "/man3"); - target = where + "/man3/" PROGRAM "api.3.gz"; - run("gzip -9 -n < tmp/man/" PROGRAM "api.3 > " + target); - log(target); + if (components & 8) + { + printf(" installing the html-manual pages at `", target, "\n"); + logInstall("tmp/manhtml", "", target); + } + } - md(where + "/man7"); - target = where + "/man7/" PROGRAM "input.7.gz"; - run("gzip -9 -n < tmp/man/" PROGRAM "input.7 > " + target); - log(target); - writeLog(); + if (components & 8) + { + target = base + MAN; + printf(" installing the man pages below `", target, "'\n"); + + logZip("tmp/man", "flexc++.1", target + "/man1/"); + logZip("tmp/man", "flexc++api.3", target + "/man3/"); + logZip("tmp/man", "flexc++input.7", target + "/man7/"); } - if (what == "manual") + if (components & 16) { - where = setWhere(where, MANUAL); + target = base + SKEL "/"; + printf(" installing skeleton files at `", target + "'\n"); + logInstall("skeletons", "", target); + } - md(where + "/images"); - printf(" INSTALLING the manual at `", where, "'\n"); - run("cp -r tmp/manual/* " + where); - logFiles("tmp/manual", where); - writeLog(); + if (components & 32) + { + target = base + UGUIDE "/"; + printf(" installing the user-guide at `", target, "'\n"); + logInstall("tmp/manual", "", target); + target += "images"; + logInstall("tmp/manual/images", "", target); } - if (what == "std") - { - where = setWhere(where, STD); - printf(" INSTALLING the changelog at `", where, "\n"); - target = where + "/changelog.gz"; - run("gzip -9 -n < changelog > " + target); - log(target); + chdir(g_cwd); + if (dest == "") + dest = "/"; + else + md(dest); - printf(" INSTALLING the html-manual pages at `", where, "\n"); - run("cp tmp/manhtml/" PROGRAM ".1.html " + where); - log(where + "/" PROGRAM ".1.html"); + dest = cutEoln(backtick("readlink -f " + dest)[0]); - run("cp tmp/manhtml/" PROGRAM "api.3.html " + where); - log(where + "/" PROGRAM "api.3.html"); + if (g_logPath != "") + backtick("icmake/log " + dest + " " + g_logPath); - run("cp tmp/manhtml/" PROGRAM "input.7.html " + where); - log(where + "/" PROGRAM "input.7.html"); + chdir(base); + run("../../icmake/installer " + dest + "/"); - writeLog(); - } + printf("\n Installation completed\n"); exit(0); } - - - - - diff -Nru flexc++-2.03.00/icmake/installer flexc++-2.03.04/icmake/installer --- flexc++-2.03.00/icmake/installer 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/installer 2015-10-28 14:58:25.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ $# -eq 0 ] ; then + echo destination path, ending in /, must be provided + exit 0 +fi + +for src in `find -mindepth 1 -type d` # create missing target dirs +do + [ ! -e $1$src ] && mkdir -p $1$src +done + +for file in `find -type f -or -type l` +do + cp -d --preserve=timestamps $file $1$file +done + diff -Nru flexc++-2.03.00/icmake/log flexc++-2.03.04/icmake/log --- flexc++-2.03.00/icmake/log 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/log 2015-10-02 09:47:22.000000000 +0000 @@ -1,16 +1,9 @@ -void log(string file) -{ - string md5; +#!/bin/bash - if (g_logPath == "") // do not store uninstall info - return; - - echo(OFF); - file = `"realpath " + file`[0]; - file = substr(file, 0, strlen(file) - 1); - md5 = md5sum(file); - echo(ON); - - g_log += (list)("file " + md5 + " " + file); -} +find tmp/install -type f -exec md5sum "{}" \; | + sed 's|tmp/install|'$1'|' > $2 +find tmp/install -type l -exec printf "link %s\n" "{}" \; | + sed 's|tmp/install|'$1'|' >> $2 +find tmp/install -type d -exec printf "dir %s\n" "{}" \; | + sed 's|tmp/install|'$1'|' >> $2 diff -Nru flexc++-2.03.00/icmake/logfile flexc++-2.03.04/icmake/logfile --- flexc++-2.03.00/icmake/logfile 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/logfile 2015-10-02 09:47:22.000000000 +0000 @@ -0,0 +1,7 @@ +void logFile(string srcdir, string src, string destdir, string dest) +{ + chdir(g_cwd); + md(destdir); + + run("cp " + srcdir + "/" + src + " " + destdir + "/" + dest); +} diff -Nru flexc++-2.03.00/icmake/logfiles flexc++-2.03.04/icmake/logfiles --- flexc++-2.03.00/icmake/logfiles 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/logfiles 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -void logFiles(string source, string dest) -{ - list files; - int idx; - - files = `"(cd " + source + ";find . -type f)"`; - - for (idx = sizeof(files); idx--; ) - log(dest + "/" + files[idx]); -} diff -Nru flexc++-2.03.00/icmake/loginstall flexc++-2.03.04/icmake/loginstall --- flexc++-2.03.00/icmake/loginstall 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/loginstall 2015-12-14 14:36:18.000000000 +0000 @@ -0,0 +1,39 @@ +// source and dest, absolute or reachable from g_cwd, should exist. +// files and links in source matching dest (if empty: all) are copied to dest +// and are logged in g_log + +// Before they are logged, dest is created + +void logInstall(string src, string pattern, string dest) +{ + list entries; + int idx; + + chdir(g_cwd); + + md(dest); + src += "/"; + dest += "/"; + + if (listlen(makelist(O_DIR, src)) == 0) + { + printf("Warning: ", src, " not found: can't install ", src, pattern, + " at ", dest, "\n"); + return; + } + + entries = findAll("f", src, pattern); + + for (idx = listlen(entries); idx--; ) + run("cp " + src + entries[idx] + " " + dest); + + chdir(g_cwd); + entries = findAll("l", src, pattern); + + for (idx = listlen(entries); idx--; ) + run("cp " CPOPTS " " + src + entries[idx] + " " + dest); +} + + + + diff -Nru flexc++-2.03.00/icmake/logzip flexc++-2.03.04/icmake/logzip --- flexc++-2.03.00/icmake/logzip 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/logzip 2015-12-14 14:36:18.000000000 +0000 @@ -0,0 +1,45 @@ +// names may be a series of files in src, not a wildcard. +// if it's empty then all files in src are used. +// the files are gzipped and logged in dest. +// src and dest do not have to end in / + +void logZip(string src, string names, string dest) +{ + list files; + int idx; + string file; + + chdir(g_cwd); + + md(dest); + dest += "/"; + + if (src != "") + { + if (listlen(makelist(O_DIR, src)) == 0) + { + printf("Warning: ", src, " not found: can't install ", src, names, + " at ", dest, "\n"); + return; + } + chdir(src); + } + + if (names == "") + files = makelist("*"); + else + files = strtok(names, " "); + + for (idx = listlen(files); idx--; ) + { + file = files[idx]; + run("gzip -n -9 < " + file + " > " + file + ".gz"); + } + + run("tar cf - *.gz | (cd " + g_cwd + "; cd " + dest + "; tar xf -)"); + + run("rm *.gz"); +} + + + diff -Nru flexc++-2.03.00/icmake/manpage flexc++-2.03.04/icmake/manpage --- flexc++-2.03.00/icmake/manpage 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/icmake/manpage 2015-10-02 09:47:22.000000000 +0000 @@ -1,13 +1,9 @@ void _manpage(string dest, string manpage, string source) { - - if (source younger dest + manpage || "release.yo" younger dest + manpage) - { - run("yodl2man -o " + dest + manpage + " " + source); - run("yodl2html " - "-o ../../tmp/manhtml/" + manpage + ".html " + source); - } + run("yodl2man -o " + dest + manpage + " " + source); + run("yodl2html " + "-o ../../tmp/manhtml/" + manpage + ".html " + source); } void manpage() diff -Nru flexc++-2.03.00/icmake/manual flexc++-2.03.04/icmake/manual --- flexc++-2.03.00/icmake/manual 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/icmake/manual 2015-10-02 09:47:22.000000000 +0000 @@ -14,36 +14,18 @@ chdir("documentation"); -// if (!exists("usage/usage")) -// { -// chdir("usage"); -// run(compiler + " -o usage usage.cc"); -// run("./usage > ../manual/invoking/usage.txt"); -// chdir(".."); -// } - chdir("manual"); - files = makelist("*.yo") + makelist("*/*.yo"); - for (idx = sizeof(files); idx--; ) - { - file = element(idx, files); - if (file younger "manual-stamp") - { - run("yodl2html -l3 " PROGRAM ".yo"); - run("touch manual-stamp"); - run("mv *.html ../../tmp/manual"); - run("cp -r images/*.jpg ../../tmp/manual/images"); - - break; - } - } - + run("yodl2html -l3 " PROGRAM ".yo"); + run("mv *.html ../../tmp/manual"); + run("cp -r images/*.jpg ../../tmp/manual/images"); + exit(0); } + diff -Nru flexc++-2.03.00/icmake/md flexc++-2.03.04/icmake/md --- flexc++-2.03.00/icmake/md 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/md 2015-10-02 09:47:22.000000000 +0000 @@ -10,19 +10,16 @@ list paths; string dir; - paths = strtok(target, " "); - - for (idx = sizeof(paths); idx--; ) + if (!exists(target)) + run("mkdir -p " + target); + else if (((int)stat(target)[0] & S_IFDIR) == 0) { - dir = paths[idx]; - if (!exists(dir)) - { - run("mkdir -p " + dir); - echo(OFF); - target = `"realpath " + dir`[0]; - echo(ON); - target = substr(target, 0, strlen(target) - 1); - g_log += (list)("dir " + target); // log new dirs - } + printf(target + " exists, but is not a directory\n"); + exit(1); } } + + + + + diff -Nru flexc++-2.03.00/icmake/md5sum flexc++-2.03.04/icmake/md5sum --- flexc++-2.03.00/icmake/md5sum 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/md5sum 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -string md5sum(string file) -{ - string ret; - echo(OFF); - ret = strtok(`"md5sum " + file`[0], " \t")[0]; - echo(ON); -} - diff -Nru flexc++-2.03.00/icmake/pathfile flexc++-2.03.04/icmake/pathfile --- flexc++-2.03.00/icmake/pathfile 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/pathfile 2015-10-02 09:47:22.000000000 +0000 @@ -0,0 +1,21 @@ +list path_file(string path) +{ + list ret; + int len; + int idx; + + for (len = strlen(path), idx = len; idx--; ) + { + if (path[idx] == "/") + { + ret = + (list)substr(path, 0, idx) + (list)substr(path, idx + 1, len); + return ret; + } + } + + ret = (list)"" + (list)path; + return ret; +} + + diff -Nru flexc++-2.03.00/icmake/precompileheaders flexc++-2.03.04/icmake/precompileheaders --- flexc++-2.03.00/icmake/precompileheaders 1970-01-01 00:00:00.000000000 +0000 +++ flexc++-2.03.04/icmake/precompileheaders 2015-12-14 14:36:18.000000000 +0000 @@ -0,0 +1,43 @@ +string g_compiler; +int g_gch = 1; + +void _precompile(string class) +{ + string classIH; + + classIH = class + ".ih"; + if (classIH younger class + ".ih.gch") + run(g_compiler + " -x c++-header " + classIH); +} + +void precompileHeaders() +{ + int idx; + list classes; + string class; + + if (!g_gch) + return; + + classes = makelist(O_SUBDIR, "*"); + + + g_compiler = setOpt(CXX, "CXX") + " " + + setOpt(CXXFLAGS, "CXXFLAGS") + " "; + + + _precompile("main"); // precompile the main program .ih file + + + for (idx = listlen(classes); idx--; ) + { + class = classes[idx]; + + chdir(class); + + _precompile(class); + + chdir(g_cwd); + } +} + diff -Nru flexc++-2.03.00/icmake/readlog flexc++-2.03.04/icmake/readlog --- flexc++-2.03.00/icmake/readlog 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/readlog 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -void readlog() -{ - list line; - - while (line = fgets(g_logPath, (int)line[1])) - g_log += strtok(line[0], "\n"); // add logfile entries w/o \n -} - - - diff -Nru flexc++-2.03.00/icmake/remove flexc++-2.03.04/icmake/remove --- flexc++-2.03.00/icmake/remove 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/remove 2015-10-02 09:47:22.000000000 +0000 @@ -1,13 +1,40 @@ -void remove(list entry) -{ - int equal; +#!/bin/bash - equal = md5sum(entry[2]) == entry[1]; +g_echo=$2 - echo(OFF); +rm_f() +{ + [ $g_echo -ne 0 ] && echo rm $1 + rm -f $1 +} - if (equal) - run("rm " + entry[2]); - else - printf("not removing modified file ", entry[2], "\n"); +rm_dir() +{ + [ $g_echo -ne 0 ] && echo rmdir $1 + rmdir --ignore-fail-on-non-empty -p $1 } + + +IFS=" +" + +for line in `cat $1` +do + field1=`echo $line | awk '{printf $1}'` + field2=`echo $line | awk '{printf $2}'` + + if [ $field1 == "link" ] ; then + rm_f $field2 + elif [ $field1 == "dir" ] ; then + rm_dir $field2 + elif [ -e "$field2" ] ; then + if [ "$field1" != "`md5sum $field2 | awk '{printf $1}'`" ] ; then + echo $field2 changed, not removed + else + rm_f $field2 + fi + fi +done + +rm_f $1 + diff -Nru flexc++-2.03.00/icmake/removedir flexc++-2.03.04/icmake/removedir --- flexc++-2.03.00/icmake/removedir 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/removedir 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -void removeDir(string dir) -{ - list parts; - int idx; - int dirIdx; - list entries; - int warn = 1; - - parts = strtok(dir, "/"); - chdir(dir); - - echo(OFF); - - for (idx = sizeof(parts); idx--; ) - { - entries = `"ls -A"`; - - if (sizeof(entries) != 0) - { - if (warn) - printf("not removing non-empty dir ", dir, "\n"); - return; - } - - warn = 0; - chdir(".."); - run("rmdir " + parts[idx]); - } -} - - - diff -Nru flexc++-2.03.00/icmake/run flexc++-2.03.04/icmake/run --- flexc++-2.03.00/icmake/run 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/icmake/run 2015-10-02 09:47:22.000000000 +0000 @@ -1,15 +1,8 @@ -int g_dryrun = setOpt("", "DRYRUN") != ""; - -void runP(int testValue, string cmd) -{ - if (g_dryrun) - printf(cmd, "\n"); - else - system(testValue, cmd); -} - void run(string cmd) { - runP(0, cmd); + if (g_echo == OFF) + cmd += "> /dev/null 2>&1"; + + system(0, cmd); } diff -Nru flexc++-2.03.00/icmake/uninstall flexc++-2.03.04/icmake/uninstall --- flexc++-2.03.00/icmake/uninstall 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/uninstall 2015-10-02 09:47:22.000000000 +0000 @@ -1,36 +1,24 @@ -void uninstall() +void uninstall(string logfile) { - string key; int idx; list entry; - list dir; + string dir; + list line; - if (g_logPath == "") // do not store uninstall info + if (!exists(logfile)) { - printf(LOGENV " environment variable not available\n"); + printf("installation log file " + logfile + " not found\n"); exit(0); } - readlog(); + run("icmake/remove " + logfile + " " + (string)g_echo); + + exit(0); +} - echo(OFF); - for (idx = sizeof(g_log); idx--; ) // separate dir from file - { - entry = strtok(g_log[idx], " \n"); - if (entry[0] == "dir") - dir = addDir(dir, entry[1]); - else - remove(entry); - } - for (idx = sizeof(dir); idx--; ) - removeDir(dir[idx]); - echo(ON); - run("rm " + g_logPath); - exit(0); -} diff -Nru flexc++-2.03.00/icmake/writelog flexc++-2.03.04/icmake/writelog --- flexc++-2.03.00/icmake/writelog 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/icmake/writelog 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -void writeLog() -{ - int idx; - - if (g_logPath == "") // do not store uninstall info - return; - - for (idx = sizeof(g_log); idx--; ) - fprintf(g_logPath, g_log[idx], "\n"); - - exit(0); -} - - - - diff -Nru flexc++-2.03.00/INSTALL flexc++-2.03.04/INSTALL --- flexc++-2.03.00/INSTALL 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/INSTALL 2015-10-08 14:26:24.000000000 +0000 @@ -11,8 +11,10 @@ 1. It is expected you use icmake for the package construction. For this a top-level script (build) and support scripts in the ./icmake/ - directory are available. Icmake is available on a great many - architectures. See also the file INSTALL.im for additional details. + directory are available. By default, the 'build' script echoes the + commands it executes to the standard output stream. By specifying the + option -q (e.g., ./build -q ...) this is prevented, significantly + reducing the output generated by 'build'. 2. Inspect the values of the variables in the file INSTALL.im Modify these when necessary to suit your own local situation. In particular, check @@ -29,75 +31,62 @@ ./build manual builds the manual. - 5. Installation of the software in the default locations probably requires - root permissions. + 5. Run (probably as root) - Before installing the components of Flexc++, consider defining the - environment variable FLEXCPP, defining its value as the (preferably - absolute) filename of a file on which installed files and directories - are logged. - Defining the FLEXCPP environment variable as ~/.flexcpp usually works - well. + ./build install 'LOG:path' 'what' 'base' - To install the program, run: + to install components of Flexc++. - ./build install program [fullpath] - - This installs flexc++ as fullpath. By default the BINARY specification - in INSTALL.im is used. - - To install the skeleton files. run : - - ./build install skel [base] - - This installs the skeleton files under the directory `base'. By - default the SKEL specification in INSTALL.im is used. - - - 6. If you created the man-pages and manual you can also do: - - ./build man [base] - - This installs the man pages under the directory `base'. By - default the MAN specification in INSTALL.im is used. - - To install the manual, do: - - ./build manual [base] - - This installs the manual in the directory `base'. By - default the MANUAL specification in INSTALL.im is used. - - 7. Optionally you can install some additional documentation by running - - ./build install std [base] - - The additional documentation is installed in the directory `base'. By - default the STD specification in INSTALL.im is used. - - 8. Following the installation nothing below ./tmp is required for the - proper functioning of flexc++, so consider removing it by running + Here, + 'LOG:path' is an optional item specifying the absolute or relative + path of a log file to contain a log of all installed files (see + also the next item). Using LOG:~/.flexcpp usually works + well. Do not put any blanks between LOG: and the path + specification, or protect the LOG: specification by quotes. + + 'what' specifies what you want to install. + Specify: + x, to install all components, + or specify a combination of: + b (binary program), + d (standard documentation), + m (man-pages) + s (skeleton files) + u (user guide) + E.g., use + ./build install bs 'base' + if you only want to be able to run flexc++, and want it to be + installed below 'base'. + + When requesting non-existing elements (e.g., ./build install x + was requested, but the man-pages weren't constructed) then + these non-existing elements are silently ignored by the + installation process. + + 'base' is optional and specifies the base directory below which + the requested files are installed. This base directory is + prepended to the paths #defined in the INSTALL.im file. If + 'base' is not specified, then INSTALL.im's #defined paths are + used as-is. + + 6. Uninstalling previously installed components of Flexc++ is easy if a + log path (LOG:...) was specified at the `./build install ...' + command. In that case, run the command + + ./build uninstall logpath + + where 'logpath' specifies the location of the logfile that was + written by ./build install. Modified files and non-empty directories + are not removed, but the logfile itself is removed following the + uninstallation. + + 7. Following the installation nothing in the directory tree which contains + this file (i.e., INSTALL) is required for the proper functioning of + flexc++, so consider removing it. If you only want to remove + left-over files from the build-process, just run ./build distclean - Note that 'build (dist)clean' does not remove the file pointed at by - the FLEXCPP environment variable (assuming that file is not located - under ./tmp) - - 9. Uninstalling previously installed components of Flexc++ (using - ./build install ...) is easy if the environment variable FLEXCPP was - defined when issuing the `./build install ...' commands. In that case, - run the command - - ./build uninstall - - This command only works if the environment variable FLEXCPP has the - same value as used with the `./build install' commands, and the file - to which it refers still exists. In that case `./build install' - removes all installed files (unless they were modified) and removes - all empty directories created by the various `./build install ...' - commands. - diff -Nru flexc++-2.03.00/INSTALL.im flexc++-2.03.04/INSTALL.im --- flexc++-2.03.00/INSTALL.im 2015-08-27 19:45:05.000000000 +0000 +++ flexc++-2.03.04/INSTALL.im 2015-10-02 09:47:22.000000000 +0000 @@ -1,38 +1,63 @@ - // Specify the name of the program created by this project: + // The name of the program and the support directories as installed by + // the 'build install' command. Normally there is no reason for changing + // this #define #define PROGRAM "flexc++" + // The following /bin/cp options are used to keep, rather than follow + // symbolic references. If your installation doesn't support these flags, + // then change them into available ones. + // -P, --no-dereference + // never follow symbolic links in SOURCE + // --preserve[=ATTR_LIST] + // preserve the specified attributes (default: + // mode,ownership,timestamps), if possible additional + // attributes: context, links, all + // -d same as --no-dereference --preserve=links +#define CPOPTS "-d" + + + // The CXX, CXXFLAGS, and LDFLAGS #defines are overruled by identically + // named environment variables: -//#define CXX "g++-5" -#define CXX "g++" // the compiler to use. +#define CXX "g++" -//#define CXXFLAGS "--std=c++14 -Wall -O2 -g" -#define CXXFLAGS "--std=c++14 -Wall -O2" // the compiler options to use. +//#define CXXFLAGS "--std=c++14 -Wall -O2 -g" +#define CXXFLAGS "--std=c++14 -Wall -O2 -fdiagnostics-color=never" -#define LDFLAGS "" // flags passed to the linker +#define LDFLAGS "" -// The following locations are overruled by `build install' arguments -#define BINARY "/usr/bin/"${PROGRAM} - // the full path of the final program +// COMPONENTS TO INSTALL +// ===================== -#define SKEL "/usr/share/"${PROGRAM} - // the directory where the skeleton files are installed + // For an operational non-Debian installation, you probably must be + // `root'. -#define MAN "/usr/share/man" - // the directory below whre the manual pages are stored (below - // /man1, /man3 and /man7) + // If necessary, adapt DOC, HDR, LIB and MAN (below) to your situation. + // The provided locations are used by Debian Linux. -#define MANUAL "/usr/share/doc/"${PROGRAM}"/manual" - // the directory whre the manual page is stored + // With 'build install' you can dynamically specify a location to prepend + // to the locations configured here, and select which components you want + // to install -#define STD "/usr/share/doc/"${PROGRAM} - // the directory where the standard documentation is stored +// ONLY USE ABSOLUTE DIRECTORY NAMES: + // the final program +#define BINARY "/usr/bin/"${PROGRAM} + // the directory where the standard documentation is stored +#define DOC "/usr/share/doc/"${PROGRAM} + // the directory below whre the manual pages are stored (below + // /man1, /man3 and /man7) +#define MAN "/usr/share/man" + // the directory where the skeleton files are installed +#define SKEL "/usr/share/"${PROGRAM} + // the directory where the user guide is stored +#define UGUIDE "/usr/share/doc/"${PROGRAM}"/manual" diff -Nru flexc++-2.03.00/required flexc++-2.03.04/required --- flexc++-2.03.00/required 2015-08-27 18:18:16.000000000 +0000 +++ flexc++-2.03.04/required 2015-12-14 14:40:53.000000000 +0000 @@ -1,17 +1,20 @@ -This file lists non-standard software only. Thus, standard utilities like cp, -mv, sed, etc, etc, are not explicitly mentioned. Neither is the gcc compiler -explicitly mentioned, but a fairly recent one is assumed. +This file lists non-standard software only, and applies to the version tagged +with the version mentioned in the file VERSION. -Required software for building Flexc++ 2.02.00 ----------------------------------------------- +Standard utilities like cp, mv, sed, etc, etc, are not explicitly +mentioned. Neither is the g++ compiler explicitly mentioned, but a fairly +recent one is assumed. -libbobcat-dev (>= 3.25.01), +Required software for building Flexc++ +-------------------------------------- + +libbobcat-dev (>= 4.01.00), To use the provided build-script: - icmake (>= 7.22.00) + icmake (>= 8.00.04) To construct the manual and map-page: - yodl (>= 3.05.0) + yodl (>= 3.06.0) diff -Nru flexc++-2.03.00/rules/rules.ih flexc++-2.03.04/rules/rules.ih --- flexc++-2.03.00/rules/rules.ih 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/rules/rules.ih 2015-10-02 09:47:22.000000000 +0000 @@ -9,7 +9,7 @@ #include #include "../states/states.h" -#include "../pattern/pattern.ih" +#include "../pattern/pattern.h" using namespace std; using namespace FBB; diff -Nru flexc++-2.03.00/scanner/lex.cc flexc++-2.03.04/scanner/lex.cc --- flexc++-2.03.00/scanner/lex.cc 2015-08-26 13:15:59.000000000 +0000 +++ flexc++-2.03.04/scanner/lex.cc 2015-10-28 14:58:25.000000000 +0000 @@ -1,4 +1,4 @@ -// Generated by Flexc++ V2.02.00 on Wed, 26 Aug 2015 12:28:47 +0200 +// Generated by Flexc++ V2.03.00 on Wed, 28 Oct 2015 11:47:39 +0100 #include #include @@ -42,13 +42,13 @@ { // INITIAL {-1, 1, 2, 3, 3, 1, 3, 4, 3, 5, 6, 3, 7, 8, 8, 8, 8, 8, 8, 8, - 9,10,10,10, 3, 3,11,12, 8, 8, 3,13,13,13,13,13,13,14,13,15, - 16,17, 8,13, 3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,18, 8, 8, 3,19, -1, -1}, // 0 - {-1, 1,-1,-1,20, 1,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,22,20,20,-1, 2, -1}, // 1 + 9,10,11,11, 3, 3,12,13, 8, 8, 3,14,14,14,14,14,14,15,14,16, + 17,18, 8,14, 3,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,19, 8, 8, 3,20, -1, -1}, // 0 + {-1, 1,-1,-1,21, 1,21,21,21,21,21,21,21,21,21,21,21,21,21,21, + 22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, + 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, + 21,21,21,21,21,21,21,21,21,21,21,21,23,21,21,-1, 2, -1}, // 1 {-1, 2,-1,-1,-1, 2,-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, @@ -61,450 +61,450 @@ -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, 6, -1}, // 4 - {-1,-1,-1,-1,23,-1,23,23,23,23,23,23,23,23,23,23,23,23,23,23, - 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, - 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, - 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,-1, 48, -1}, // 5 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1, + {-1,-1,-1,-1,24,-1,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,-1, 48, -1}, // 5 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-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, 51, -1}, // 6 - {-1,25,-1,25,25,25,25,25,25,25,25,25,-1,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,-1, 50, -1}, // 7 + {-1,26,-1,26,26,26,26,26,26,26,26,26,-1,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, + 27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,-1, 50, -1}, // 7 {-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, 50, -1}, // 8 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1, - 28,-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,28,-1,-1,-1,-1, + 29,-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, 50, -1}, // 9 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,10,10,10,-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, 22, -1}, // 10 {-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,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,11,11,11,-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, 22, -1}, // 11 + {-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,30,-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, 50, -1}, // 11 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 50, -1}, // 12 {-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, 10, -1}, // 12 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1, - -1,13,13,13,-1,-1,-1,-1,-1,-1,-1,13,13,13,13,13,13,13,13,-1, - -1,-1,-1,13,-1,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,-1,-1,-1,-1,-1, 8, -1}, // 13 - {-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1, - -1,13,13,13,-1,-1,-1,-1,-1,-1,-1,13,13,13,13,13,13,13,13,-1, - -1,-1,-1,13,-1,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,-1,-1,-1,-1,-1, 8, -1}, // 14 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 10, -1}, // 13 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1, + -1,14,14,14,-1,-1,-1,-1,-1,-1,-1,14,14,14,14,14,14,14,14,-1, + -1,-1,-1,14,-1,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,-1,-1,-1,-1,-1, 8, -1}, // 14 + {-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1, + -1,14,14,14,-1,-1,-1,-1,-1,-1,-1,14,14,14,14,14,14,14,14,-1, + -1,-1,-1,14,-1,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,-1,-1,-1,-1,-1, 8, -1}, // 15 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,32,33,-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, 26, -1}, // 15 - {-1,34,-1,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 34,35,35,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,36,34,34,34,34,34,34,-1, 51, -1}, // 16 + -1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,33,34,-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, 26, -1}, // 16 + {-1,35,-1,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35, + 35,36,36,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35, + 35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35, + 35,35,35,35,35,35,35,35,37,35,35,35,35,35,35,-1, 51, -1}, // 17 {-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, 27, -1}, // 17 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,38,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,39,39,39,39,39,39,39,-1, - -1,-1,-1,39,-1,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,-1,-1,-1,-1,-1, 50, -1}, // 18 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 27, -1}, // 18 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,39,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,40,40,40,40,40,40,40,-1, + -1,-1,-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, + 40,40,40,40,40,40,40,40,40,40,40,-1,-1,-1,-1,-1, 50, -1}, // 19 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 76, -1}, // 19 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 76, -1}, // 20 {-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}, // 20 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1, - 40,-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}, // 21 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1, + 41,-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}, // 22 {-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, 0, -1}, // 22 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, -1}, // 23 {-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, 47, -1}, // 23 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 47, -1}, // 24 {-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, 49}, // 24 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, 49}, // 25 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-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}, // 25 - {-1,25,-1,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,42,42,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,43,25,25,25,25,25,25,-1, -1, -1}, // 26 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 26 + {-1,26,-1,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, + 26,43,43,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,44,26,26,26,26,26,26,-1, -1, -1}, // 27 {-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, 5, -1}, // 27 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,44,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 28 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 5, -1}, // 28 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,45,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 29 {-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,45,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-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}, // 29 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,47,47,47,47,47,47,47,-1, - -1,-1,-1,47,-1,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47, - 47,47,47,47,47,47,47,47,47,47,47,-1,-1,-1,-1,-1, -1, -1}, // 30 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 30 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,48,48,48,48,48,48,48,-1, + -1,-1,-1,48,-1,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,-1,-1,-1,-1,-1, -1, -1}, // 31 {-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,48,-1,-1,49,50,51,52,-1,-1,53,-1,-1,-1,-1,54,-1,-1,-1, - 55,-1,-1,56,-1,57,-1,-1,58,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 31 + -1,-1,49,-1,-1,50,51,52,53,-1,-1,54,-1,-1,-1,-1,55,-1,-1,-1, + 56,-1,-1,57,-1,58,-1,-1,59,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 32 {-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,59, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,60, -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, 28, -1}, // 32 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 28, -1}, // 33 {-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,60,-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, 30, -1}, // 33 + -1,61,-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, 30, -1}, // 34 {-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, 23, -1}, // 34 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,61,61,-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, 23, -1}, // 35 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,62,62,62,-1,-1,-1,-1,-1,-1,-1,62,62,62,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,62,62,62,62,62,62,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,62,62,-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, 23, -1}, // 36 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,63,63,63,-1,-1,-1,-1,-1,-1,-1,63,63,63,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,63,63,63,63,63,63,-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, 23, -1}, // 37 + {-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,63,-1,-1, -1, -1}, // 37 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,64,-1,-1, -1, -1}, // 38 {-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,64,-1,-1, -1, -1}, // 38 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1, - -1,39,39,39,-1,-1,-1,-1,-1,-1,-1,39,39,39,39,39,39,39,39,-1, - -1,-1,-1,39,-1,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, - 39,39,39,39,39,39,39,39,39,39,39,-1,-1,65,-1,-1, -1, -1}, // 39 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 40 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65,-1,-1, -1, -1}, // 39 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,-1, + -1,40,40,40,-1,-1,-1,-1,-1,-1,-1,40,40,40,40,40,40,40,40,-1, + -1,-1,-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, + 40,40,40,40,40,40,40,40,40,40,40,-1,-1,66,-1,-1, -1, -1}, // 40 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 41 {-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, 21, -1}, // 41 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1, - -1,66,66,-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}, // 42 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1, - -1,67,67,67,-1,-1,-1,-1,-1,-1,-1,67,67,67,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,67,67,67,67,67,67,-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, 21, -1}, // 42 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1, + -1,67,67,-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}, // 43 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,68,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 44 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1, + -1,68,68,68,-1,-1,-1,-1,-1,-1,-1,68,68,68,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,68,68,68,68,68,68,-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}, // 44 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,69,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 45 {-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,69,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,70,-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}, // 45 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 46 {-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, 7, -1}, // 46 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,47,-1, - -1,47,47,47,-1,-1,-1,-1,-1,-1,-1,47,47,47,47,47,47,47,47,-1, - -1,-1,-1,47,-1,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47, - 47,47,47,47,47,47,47,47,47,47,47,-1,-1,-1,-1,-1, -1, -1}, // 47 - {-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,49,50,51,52,-1,-1,53,-1,-1,-1,-1,54,-1,-1,-1, - 55,-1,-1,56,-1,57,-1,-1,58,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 48 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 7, -1}, // 47 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1,-1,48,-1, + -1,48,48,48,-1,-1,-1,-1,-1,-1,-1,48,48,48,48,48,48,48,48,-1, + -1,-1,-1,48,-1,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,-1,-1,-1,-1,-1, -1, -1}, // 48 {-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,70,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 49 + -1,-1,-1,-1,-1,50,51,52,53,-1,-1,54,-1,-1,-1,-1,55,-1,-1,-1, + 56,-1,-1,57,-1,58,-1,-1,59,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 49 {-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,71,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 50 {-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,72,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,72,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 51 {-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,73,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 52 {-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,74,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 53 + {-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,74,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 53 + -1,-1,75,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 54 {-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,75, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 54 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,76, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 55 {-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,76,-1,-1,77,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 55 + -1,-1,77,-1,-1,78,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 56 {-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, - 78,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 56 + 79,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 57 {-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, - 79,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 57 + 80,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 58 {-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,80,-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}, // 58 + -1,-1,-1,-1,-1,-1,-1,-1,81,-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}, // 59 {-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, 29, -1}, // 59 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 29, -1}, // 60 {-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,81, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,82, -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, 31, -1}, // 60 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 31, -1}, // 61 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,82,82,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,35,35,-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}, // 61 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,83,83,83,-1,-1,-1,-1,-1,-1,-1,83,83,83,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,83,83,83,83,83,83,-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}, // 62 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,35,35,35,-1,-1,-1,-1,-1,-1,-1,35,35,35,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,35,35,35,35,35,35,-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}, // 63 + {-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, 24, -1}, // 63 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 24, -1}, // 64 {-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, 25, -1}, // 64 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 25, -1}, // 65 {-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, 46, -1}, // 65 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 46, -1}, // 66 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,84,84,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,26,26,-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}, // 66 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,85,85,85,-1,-1,-1,-1,-1,-1,-1,85,85,85,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,85,85,85,85,85,85,-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}, // 67 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,86,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 68 {-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,87,-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}, // 69 + -1,26,26,26,-1,-1,-1,-1,-1,-1,-1,26,26,26,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,26,26,26,26,26,26,-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}, // 68 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,83,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 69 {-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,84,-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,88,-1, - 89,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 70 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 70 {-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,90,-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}, // 71 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,85,-1, + 86,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 71 {-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,91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 72 + -1,-1,-1,-1,-1,87,-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}, // 72 {-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,92,-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}, // 73 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,88,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 73 {-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,93,-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,89,-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}, // 74 {-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,94,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 75 + -1,-1,-1,-1,-1,90,-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}, // 75 {-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,95,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 76 + -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,91,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 76 {-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,96,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,92,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 77 {-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,97,-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,93,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 78 {-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,94,-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}, // 79 + {-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, - 98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 79 + 95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 80 {-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,99,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 80 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 81 {-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, 32, -1}, // 81 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,62,62,62,-1,-1,-1,-1,-1,-1,-1,62,62,62,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,62,62,62,62,62,62,-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}, // 82 - {-1,34,-1,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,-1, -1, -1}, // 83 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 32, -1}, // 82 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,97,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 83 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,67,67,67,-1,-1,-1,-1,-1,-1,-1,67,67,67,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,67,67,67,67,67,67,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,98,-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}, // 84 - {-1,25,-1,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,-1, -1, -1}, // 85 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,100,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 86 {-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,101,-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,99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 85 + {-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,100,-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}, // 86 + {-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,101,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 87 {-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,102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 88 + -1,-1,102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 88 {-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,103,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,103,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 89 {-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,104,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 90 - {-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, + 104,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 90 + {-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,105,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 91 + -1,-1,-1,-1,-1,-1,-1,-1,-1,105,-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}, // 91 {-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,106,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,106,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 92 {-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, - 107,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 93 + -1,-1,-1,-1,-1,-1,-1,107,-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}, // 93 {-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,108,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,108,-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}, // 94 {-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,109,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,109,-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}, // 95 {-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,110,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,-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}, // 96 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,111,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 97 {-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,112,-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,111,-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}, // 97 - {-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,112,-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}, // 98 {-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,113,-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,113,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 99 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,114,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 100 {-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,115,-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,114,-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}, // 100 + {-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,115,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 101 {-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,116,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,116,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 102 {-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,117,-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}, // 103 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,117,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 103 {-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,118,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,118,-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}, // 104 {-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,119,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 105 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,119,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 105 {-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,120,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 106 {-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,121,-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}, // 107 - {-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,122,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 108 + -1,-1,-1,-1,121,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 107 {-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,123,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 109 + -1,-1,-1,-1,-1,-1,-1,-1,-1,122,-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}, // 108 {-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,124,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 110 + -1,-1,123,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 109 {-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,125,-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}, // 111 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,124,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 110 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,125,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 111 {-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,126,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 112 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 45, -1}, // 112 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,126,-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,127,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 113 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,128,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 114 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,127,-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}, // 114 + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,128,-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, 45, -1}, // 115 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 115 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,129,-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, @@ -538,25 +538,25 @@ -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}, // 123 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,137,-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}, // 124 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,138,-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}, // 125 + -1,-1,-1,-1,137,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 124 + {-1,41,-1,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,138,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 125 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,139,-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,139,-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}, // 126 {-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,140,-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}, // 127 + {-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,140,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1}, // 127 - {-1,40,-1,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,141,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 128 + -1,141,-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}, // 128 {-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,142,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, @@ -590,85 +590,73 @@ -1,149,-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}, // 136 {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, + -1,-1,-1,-1,150,-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,150,-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}, // 137 - {-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,151,-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}, // 138 - {-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,152,-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}, // 139 - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,153,-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}, // 140 - {-1,154,-1,40,40,154,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, - 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-1, 4, -1}, // 141 + {-1,151,-1,41,41,151,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-1, 4, -1}, // 138 {-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, 33, -1}, // 142 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 33, -1}, // 139 {-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, 34, -1}, // 143 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 34, -1}, // 140 {-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, 35, -1}, // 144 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 35, -1}, // 141 {-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, 36, -1}, // 145 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 36, -1}, // 142 {-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, 37, -1}, // 146 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 37, -1}, // 143 {-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, 38, -1}, // 147 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 38, -1}, // 144 {-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, 39, -1}, // 148 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 39, -1}, // 145 {-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, 40, -1}, // 149 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 40, -1}, // 146 {-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, 41, -1}, // 150 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 41, -1}, // 147 {-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, 42, -1}, // 151 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 42, -1}, // 148 {-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, 43, -1}, // 152 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 43, -1}, // 149 {-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,155,-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}, // 153 - {-1,154,-1,156,156,154,156,156,156,156,156,156,156,156,156,156,156,156,156,156, - 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, - 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, - 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,-1, 4, 3}, // 154 + -1,152,-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}, // 150 + {-1,151,-1,153,153,151,153,153,153,153,153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,-1, 4, 3}, // 151 {-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, 44, -1}, // 155 - {-1,156,-1,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, - 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, - 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, - 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,-1, 4, 3}, // 156 + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 44, -1}, // 152 + {-1,153,-1,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,-1, 4, 3}, // 153 // pre {-1, 1, 2, 3, 3, 1, 3, 4, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 3, 3, 3, 3, 3, 7, 3, 3, 3, 8, 8, 8, 8, 8, 8, 9, 8, 3, @@ -1689,12 +1677,12 @@ int const (*ScannerBase::s_dfaBase__[])[78] = { s_dfa__ + 0, - s_dfa__ + 157, + s_dfa__ + 154, + s_dfa__ + 385, s_dfa__ + 388, - s_dfa__ + 391, - s_dfa__ + 396, - s_dfa__ + 401, - s_dfa__ + 406, + s_dfa__ + 393, + s_dfa__ + 398, + s_dfa__ + 403, }; size_t ScannerBase::s_istreamNr = 0; diff -Nru flexc++-2.03.00/scanner/scannerbase.h flexc++-2.03.04/scanner/scannerbase.h --- flexc++-2.03.00/scanner/scannerbase.h 2015-08-26 13:15:59.000000000 +0000 +++ flexc++-2.03.04/scanner/scannerbase.h 2015-10-28 14:58:25.000000000 +0000 @@ -1,4 +1,4 @@ -// Generated by Flexc++ V2.02.00 on Wed, 26 Aug 2015 12:28:47 +0200 +// Generated by Flexc++ V2.03.00 on Wed, 28 Oct 2015 11:47:39 +0100 #ifndef ScannerBASE_H_INCLUDED #define ScannerBASE_H_INCLUDED @@ -201,6 +201,7 @@ protected: ScannerBase(std::istream &in, std::ostream &out); ScannerBase(std::string const &infilename, std::string const &outfilename); + ~ScannerBase(); StartCondition__ startCondition() const; // current start condition bool popStream(); @@ -273,6 +274,11 @@ static int constexpr SC(StartCondition__ sc); }; +inline ScannerBase::~ScannerBase() +{ + d_input.close(); +} + template inline ReturnType constexpr ScannerBase::as(ArgType value) { diff -Nru flexc++-2.03.00/skeletons/flexc++base.h flexc++-2.03.04/skeletons/flexc++base.h --- flexc++-2.03.00/skeletons/flexc++base.h 2015-08-25 14:21:24.000000000 +0000 +++ flexc++-2.03.04/skeletons/flexc++base.h 2015-10-28 14:58:25.000000000 +0000 @@ -152,6 +152,7 @@ $ignoreInteractive BEGIN this section is ignored by generator/filter.cc \@Base(std::string const &infilename, std::string const &outfilename); $ignoreInteractive END end ignored section by generator/filter.cc + ~\@Base(); StartCondition__ startCondition() const; // current start condition bool popStream(); @@ -226,6 +227,11 @@ static int constexpr SC(StartCondition__ sc); }; +inline \@Base::~\@Base() +{ + d_input.close(); +} + template inline ReturnType constexpr \@Base::as(ArgType value) { diff -Nru flexc++-2.03.00/VERSION flexc++-2.03.04/VERSION --- flexc++-2.03.00/VERSION 2015-08-26 13:15:59.000000000 +0000 +++ flexc++-2.03.04/VERSION 2015-10-08 14:22:40.000000000 +0000 @@ -1,2 +1,2 @@ -#define VERSION "2.03.00" +#define VERSION "2.03.04" #define YEARS "2008-2015"