summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tgl/tl-parser
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2016-03-11 14:42:30 +0000
committerKirill Volinsky <mataes2007@gmail.com>2016-03-11 14:42:30 +0000
commitee75d9ae4a890d62b009444bed9512b4dab3ee1d (patch)
tree089d790ca21091372539ddd51f3762af232bf82d /protocols/Telegram/tgl/tl-parser
parentbb5bb4407f2578ed8d6dc3b41f6ddb8b798e560c (diff)
old version
git-svn-id: http://svn.miranda-ng.org/main/trunk@16458 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Telegram/tgl/tl-parser')
-rw-r--r--protocols/Telegram/tgl/tl-parser/.gitignore12
-rw-r--r--protocols/Telegram/tgl/tl-parser/LICENSE339
-rw-r--r--protocols/Telegram/tgl/tl-parser/Makefile.in48
-rw-r--r--protocols/Telegram/tgl/tl-parser/README.md1
-rw-r--r--protocols/Telegram/tgl/tl-parser/config.h.in96
-rw-r--r--protocols/Telegram/tgl/tl-parser/configure5018
-rw-r--r--protocols/Telegram/tgl/tl-parser/configure.ac33
-rw-r--r--protocols/Telegram/tgl/tl-parser/contrib/vs/config.bat107
-rw-r--r--protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.sln28
-rw-r--r--protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj198
-rw-r--r--protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj.filters48
-rw-r--r--protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.c82
-rw-r--r--protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.h32
-rw-r--r--protocols/Telegram/tgl/tl-parser/m4-ax_gcc_builtin.m4168
-rw-r--r--protocols/Telegram/tgl/tl-parser/portable_endian.h124
-rw-r--r--protocols/Telegram/tgl/tl-parser/tl-parser-tree.h178
-rw-r--r--protocols/Telegram/tgl/tl-parser/tl-parser.c3111
-rw-r--r--protocols/Telegram/tgl/tl-parser/tl-parser.h221
-rw-r--r--protocols/Telegram/tgl/tl-parser/tl-tl.h55
-rw-r--r--protocols/Telegram/tgl/tl-parser/tlc.c179
20 files changed, 0 insertions, 10078 deletions
diff --git a/protocols/Telegram/tgl/tl-parser/.gitignore b/protocols/Telegram/tgl/tl-parser/.gitignore
deleted file mode 100644
index 160b5b8dcf..0000000000
--- a/protocols/Telegram/tgl/tl-parser/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
-Makefile
-config.h
-dep
-objs
-bin
-autom4te.cache
-config.log
-config.status
-*.sdf
-*.opensdf
-*.user
-build
diff --git a/protocols/Telegram/tgl/tl-parser/LICENSE b/protocols/Telegram/tgl/tl-parser/LICENSE
deleted file mode 100644
index d159169d10..0000000000
--- a/protocols/Telegram/tgl/tl-parser/LICENSE
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/protocols/Telegram/tgl/tl-parser/Makefile.in b/protocols/Telegram/tgl/tl-parser/Makefile.in
deleted file mode 100644
index 446f49afdb..0000000000
--- a/protocols/Telegram/tgl/tl-parser/Makefile.in
+++ /dev/null
@@ -1,48 +0,0 @@
-srcdir=@srcdir@
-
-CFLAGS=@CFLAGS@
-LDFLAGS=@LDFLAGS@
-CPPFLAGS=@CPPFLAGS@
-COMPILE_FLAGS=${CFLAGS} ${CPFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -Wno-deprecated-declarations -fno-strict-aliasing -fno-omit-frame-pointer -ggdb -Wno-unused-parameter -fPIC
-
-EXTRA_LIBS=@LIBS@
-LOCAL_LDFLAGS=-rdynamic -ggdb ${EXTRA_LIBS}
-LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS}
-
-DEP=dep
-EXE=bin
-OBJ=objs
-DIR_LIST=${DEP} ${EXE} ${OBJ}
-
-EXE_LIST=${EXE}/tl-parser
-
-OBJECTS=${OBJ}/tl-parser.o ${OBJ}/tlc.o
-
-DEPENDENCE=$(subst ${OBJ}/,${DEP}/,$(patsubst %.o,%.d,${OBJECTS}))
-DEPENDENCE_LIST=${DEPENDENCE}
-
-INCLUDE=-I. -I${srcdir}
-CC=@CC@
-
-.SUFFIXES:
-
-.SUFFIXES: .c .h .o
-
-all: ${EXE_LIST} ${DIR_LIST} ${LIB_LIST}
-create_dirs_and_headers: ${DIR_LIST}
-create_dirs: ${DIR_LIST}
-
-${DIR_LIST}:
- @test -d $@ || mkdir -p $@
-
--include ${DEPENDENCE_LIST}
-
-${OBJECTS}: ${OBJ}/%.o: ${srcdir}/%.c | create_dirs_and_headers
- ${CC} ${INCLUDE} ${COMPILE_FLAGS} -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
-
-${EXE}/tl-parser: ${OBJECTS}
- ${CC} $^ ${LINK_FLAGS} -o $@
-
-clean:
- rm -rf ${DIR_LIST} config.log config.status > /dev/null || echo "all clean"
-
diff --git a/protocols/Telegram/tgl/tl-parser/README.md b/protocols/Telegram/tgl/tl-parser/README.md
deleted file mode 100644
index ce211a248a..0000000000
--- a/protocols/Telegram/tgl/tl-parser/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Parse tl scheme to tlo file. Formely part of telegram-cli
diff --git a/protocols/Telegram/tgl/tl-parser/config.h.in b/protocols/Telegram/tgl/tl-parser/config.h.in
deleted file mode 100644
index 6cffe69f2b..0000000000
--- a/protocols/Telegram/tgl/tl-parser/config.h.in
+++ /dev/null
@@ -1,96 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `z' library (-lz). */
-#undef HAVE_LIBZ
-
-/* Define to 1 if you have the <mach/mach.h> header file. */
-#undef HAVE_MACH_MACH_H
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `memset' function. */
-#undef HAVE_MEMSET
-
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
- and to 0 otherwise. */
-#undef HAVE_REALLOC
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if the system has the `__builtin_bswap32' built-in function */
-#undef HAVE___BUILTIN_BSWAP32
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
-/* Define to rpl_realloc if the replacement function should be used. */
-#undef realloc
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
diff --git a/protocols/Telegram/tgl/tl-parser/configure b/protocols/Telegram/tgl/tl-parser/configure
deleted file mode 100644
index 6ba3c417da..0000000000
--- a/protocols/Telegram/tgl/tl-parser/configure
+++ /dev/null
@@ -1,5018 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for tl-parser 1.0.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='tl-parser'
-PACKAGE_TARNAME='tl-parser'
-PACKAGE_VERSION='1.0'
-PACKAGE_STRING='tl-parser 1.0'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-EGREP
-GREP
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-runstatedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures tl-parser 1.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/tl-parser]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of tl-parser 1.0:";;
- esac
- cat <<\_ACEOF
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-tl-parser configure 1.0
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by tl-parser $as_me 1.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_builtin.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_BUILTIN(BUILTIN)
-#
-# DESCRIPTION
-#
-# This macro checks if the compiler supports one of GCC's built-in
-# functions; many other compilers also provide those same built-ins.
-#
-# The BUILTIN parameter is the name of the built-in function.
-#
-# If BUILTIN is supported define HAVE_<BUILTIN>. Keep in mind that since
-# builtins usually start with two underscores they will be copied over
-# into the HAVE_<BUILTIN> definition (e.g. HAVE___BUILTIN_EXPECT for
-# __builtin_expect()).
-#
-# The macro caches its result in the ax_cv_have_<BUILTIN> variable (e.g.
-# ax_cv_have___builtin_expect).
-#
-# The macro currently supports the following built-in functions:
-#
-# __builtin_assume_aligned
-# __builtin_bswap32
-# __builtin_bswap64
-# __builtin_choose_expr
-# __builtin___clear_cache
-# __builtin_clrsb
-# __builtin_clrsbl
-# __builtin_clrsbll
-# __builtin_clz
-# __builtin_clzl
-# __builtin_clzll
-# __builtin_complex
-# __builtin_constant_p
-# __builtin_ctz
-# __builtin_ctzl
-# __builtin_ctzll
-# __builtin_expect
-# __builtin_ffs
-# __builtin_ffsl
-# __builtin_ffsll
-# __builtin_fpclassify
-# __builtin_huge_val
-# __builtin_huge_valf
-# __builtin_huge_vall
-# __builtin_inf
-# __builtin_infd128
-# __builtin_infd32
-# __builtin_infd64
-# __builtin_inff
-# __builtin_infl
-# __builtin_isinf_sign
-# __builtin_nan
-# __builtin_nand128
-# __builtin_nand32
-# __builtin_nand64
-# __builtin_nanf
-# __builtin_nanl
-# __builtin_nans
-# __builtin_nansf
-# __builtin_nansl
-# __builtin_object_size
-# __builtin_parity
-# __builtin_parityl
-# __builtin_parityll
-# __builtin_popcount
-# __builtin_popcountl
-# __builtin_popcountll
-# __builtin_powi
-# __builtin_powif
-# __builtin_powil
-# __builtin_prefetch
-# __builtin_trap
-# __builtin_types_compatible_p
-# __builtin_unreachable
-#
-# Unsuppored built-ins will be tested with an empty parameter set and the
-# result of the check might be wrong or meaningless so use with care.
-#
-# LICENSE
-#
-# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 2
-
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-# Checks for programs.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Checks for libraries.
-# We only need the symbol 'crc32'. Stay on the safe side by checking a more specific symbol.
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for crc32_combine in -lz" >&5
-$as_echo_n "checking for crc32_combine in -lz... " >&6; }
-if ${ac_cv_lib_z_crc32_combine+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char crc32_combine ();
-int
-main ()
-{
-return crc32_combine ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_z_crc32_combine=yes
-else
- ac_cv_lib_z_crc32_combine=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_crc32_combine" >&5
-$as_echo "$ac_cv_lib_z_crc32_combine" >&6; }
-if test "x$ac_cv_lib_z_crc32_combine" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZ 1
-_ACEOF
-
- LIBS="-lz $LIBS"
-
-fi
-
-
-# Checks for header files.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in fcntl.h mach/mach.h stdlib.h string.h sys/time.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-# Checks for typedefs, structures, and compiler characteristics.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-
-# Checks for library functions.
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_malloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_malloc_0_nonnull=yes
-else
- ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define malloc rpl_malloc" >>confdefs.h
-
-fi
-
-
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5
-$as_echo_n "checking for GNU libc compatible realloc... " >&6; }
-if ${ac_cv_func_realloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_realloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *realloc ();
-#endif
-
-int
-main ()
-{
-return ! realloc (0, 0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_realloc_0_nonnull=yes
-else
- ac_cv_func_realloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_realloc_0_nonnull" >&6; }
-if test $ac_cv_func_realloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_REALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_REALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" realloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS realloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define realloc rpl_realloc" >>confdefs.h
-
-fi
-
-
-for ac_func in clock_gettime memset strdup
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap32" >&5
-$as_echo_n "checking for __builtin_bswap32... " >&6; }
-if ${ax_cv_have___builtin_bswap32+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- __builtin_bswap32(0)
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ax_cv_have___builtin_bswap32=yes
-else
- ax_cv_have___builtin_bswap32=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have___builtin_bswap32" >&5
-$as_echo "$ax_cv_have___builtin_bswap32" >&6; }
-
- if test yes = $ax_cv_have___builtin_bswap32; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE___BUILTIN_BSWAP32 1
-_ACEOF
-
-fi
-
-
-
-
-ac_config_files="$ac_config_files Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by tl-parser $as_me 1.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-tl-parser config.status 1.0
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
- ;;
-
-
- esac
-
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/protocols/Telegram/tgl/tl-parser/configure.ac b/protocols/Telegram/tgl/tl-parser/configure.ac
deleted file mode 100644
index 82d1c6b027..0000000000
--- a/protocols/Telegram/tgl/tl-parser/configure.ac
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_PREREQ([2.69])
-AC_INIT([tl-parser], [1.0])
-
-m4_include([m4-ax_gcc_builtin.m4])
-
-AC_CONFIG_HEADERS([config.h])
-
-# Checks for programs.
-AC_PROG_CC
-
-# Checks for libraries.
-# We only need the symbol 'crc32'. Stay on the safe side by checking a more specific symbol.
-AC_CHECK_LIB([z], [crc32_combine])
-
-# Checks for header files.
-AC_CHECK_HEADERS([fcntl.h mach/mach.h stdlib.h string.h sys/time.h unistd.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_INLINE
-AC_TYPE_SIZE_T
-
-# Checks for library functions.
-AC_FUNC_MALLOC
-AC_FUNC_REALLOC
-AC_CHECK_FUNCS([clock_gettime memset strdup])
-
-AX_GCC_BUILTIN(__builtin_bswap32)
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/protocols/Telegram/tgl/tl-parser/contrib/vs/config.bat b/protocols/Telegram/tgl/tl-parser/contrib/vs/config.bat
deleted file mode 100644
index f71d87518d..0000000000
--- a/protocols/Telegram/tgl/tl-parser/contrib/vs/config.bat
+++ /dev/null
@@ -1,107 +0,0 @@
-@echo off
-setlocal enabledelayedexpansion
-
-set PACKAGE_NAME="tl-parser"
-set PACKAGE_TARNAME="tl-parser"
-set PACKAGE_VERSION="1.0"
-set PACKAGE_STRING="tl-parser %PACKAGE_VERSION:~1%"
-set PACKAGE_BUGREPORT=""
-set PACKAGE_URL=""
-
-set CONFIG_HEADER_IN=..\..\config.h.in
-set CONFIG_HEADER=config.h
-set DEFAULT_OUT_FOLDER=build
-set OUT_PATH=""
-set SOURCE_LIST=()
-
-:rem Parse Args
-for %%a in (%*) do (
- if defined arg (
- if /I "-o"=="!arg!" set OUT_PATH=%%a
- set set arg=
- )
- if /I "%%a" geq "-" (
- set arg=%%a
- ) else (
- set set arg=
- )
-)
-if %OUT_PATH%=="" (
- set OUT_PATH=%DEFAULT_OUT_FOLDER%
-)
-
-:rem Make output folder if not exists
-if not exist !OUT_PATH! mkdir !OUT_PATH!
-
-:rem Copy source files to the output folder
-for %%i in %SOURCE_LIST% do (
- if not exist %OUT_PATH%\%%i (
- echo |set /p=Copying file: %%i
- copy %%i "%OUT_PATH%\%%i" 1>NUL && (
- echo Done
- ) || (
- echo Failed
- )
- )
-)
-
-set OUT_PATH="%OUT_PATH%\%CONFIG_HEADER%"
-if exist %OUT_PATH% exit /B 0
-
-:rem Copy config.h.in to the output folder
-echo |set /p=Copying file: %CONFIG_HEADER%
-copy %CONFIG_HEADER_IN% %OUT_PATH% 1>NUL && (
- echo Done
-) || (
- echo Failed
- exit /B %ERRORLEVEL%
-)
-
-:rem Configure config.h
-echo |set /p=Configurating file: config.h
-call :find_and_replace "#undef PACKAGE_BUGREPORT" "#define PACKAGE_BUGREPORT %PACKAGE_BUGREPORT%"
-call :find_and_replace "#undef PACKAGE_NAME" "#define PACKAGE_NAME %PACKAGE_NAME%"
-call :find_and_replace "#undef PACKAGE_STRING" "#define PACKAGE_STRING %PACKAGE_STRING%"
-call :find_and_replace "#undef PACKAGE_TARNAME" "#define PACKAGE_TARNAME %PACKAGE_TARNAME%"
-call :find_and_replace "#undef PACKAGE_URL" "#define PACKAGE_URL %PACKAGE_URL%"
-call :find_and_replace "#undef PACKAGE_VERSION" "#define PACKAGE_VERSION %PACKAGE_VERSION%"
-
-call :find_and_replace "#undef HAVE_FCNTL_H" "#define HAVE_FCNTL_H 1"
-call :find_and_replace "#undef HAVE_INTTYPES_H" "#define HAVE_INTTYPES_H 1"
-call :find_and_replace "#undef HAVE_LIBZ" "#define HAVE_LIBZ 1"
-call :find_and_replace "#undef HAVE_MALLOC" "#define HAVE_MALLOC 1"
-call :find_and_replace "#undef HAVE_MEMORY_H" "#define HAVE_MEMORY_H 1"
-call :find_and_replace "#undef HAVE_MEMSET" "#define HAVE_MEMSET 1"
-call :find_and_replace "#undef HAVE_REALLOC" "#define HAVE_REALLOC 1"
-call :find_and_replace "#undef HAVE_STDINT_H" "#define HAVE_STDINT_H 1"
-call :find_and_replace "#undef HAVE_STDLIB_H" "#define HAVE_STDLIB_H 1"
-call :find_and_replace "#undef HAVE_STRDUP" "#define HAVE_STRDUP 1"
-call :find_and_replace "#undef HAVE_STRING_H" "#define HAVE_STRING_H 1"
-call :find_and_replace "#undef HAVE_SYS_STAT_H" "#define HAVE_SYS_STAT_H 1"
-call :find_and_replace "#undef HAVE_SYS_TYPES_H" "#define HAVE_SYS_TYPES_H 1"
-call :find_and_replace "#undef STDC_HEADERS" "#define STDC_HEADERS 1"
-call :find_and_replace "#undef inline" "#define inline __inline"
-call :find_and_replace "#undef" "// #undef"
-
-if %ERRORLEVEL% == 0 echo Done
-if not %ERRORLEVEL% == 0 (
- echo Failed
- if exist %OUT_PATH% del /q /f %OUT_PATH%
-)
-exit /B %ERRORLEVEL%
-
-:find_and_replace
-set FIND_STR=%1
-set "FIND_STR=!FIND_STR:~1,-1!"
-set REPLACE_STR=%2 %3
-set "REPLACE_STR=!REPLACE_STR:~1,-2!"
-
-for /f "delims=" %%i in ('type "%OUT_PATH%" ^| find /n /v "" ^& break ^> "%OUT_PATH%" ') do (
- set "line=%%i"
- setlocal enableDelayedExpansion
- set "line=!line:*]%FIND_STR%=%REPLACE_STR%!"
- set "line=!line:*]=!"
- >>"%OUT_PATH%" echo(!line!
- endlocal
-)
-exit /B %ERRORLEVEL%
diff --git a/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.sln b/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.sln
deleted file mode 100644
index 8365b797fd..0000000000
--- a/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.sln
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tl-parser", "tl-parser.vcxproj", "{14022761-9F27-4A2D-B7EA-F41FB9B3274C}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Debug|x64.ActiveCfg = Debug|x64
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Debug|x64.Build.0 = Debug|x64
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Debug|x86.ActiveCfg = Debug|Win32
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Debug|x86.Build.0 = Debug|Win32
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Release|x64.ActiveCfg = Release|x64
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Release|x64.Build.0 = Release|x64
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Release|x86.ActiveCfg = Release|Win32
- {14022761-9F27-4A2D-B7EA-F41FB9B3274C}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj b/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj
deleted file mode 100644
index f6b557def8..0000000000
--- a/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\portable_endian.h" />
- <ClInclude Include="..\..\tl-parser-tree.h" />
- <ClInclude Include="..\..\tl-parser.h" />
- <ClInclude Include="..\..\tl-tl.h" />
- <ClInclude Include="config.h" />
- <ClInclude Include="wingetopt.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tl-parser.c" />
- <ClCompile Include="..\..\tlc.c" />
- <ClCompile Include="wingetopt.c" />
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{14022761-9F27-4A2D-B7EA-F41FB9B3274C}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>tlparser</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v140</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v140_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v140</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v140</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="Shared">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>build\$(Configuration)\</OutDir>
- <IntDir>build\$(Configuration)\build\</IntDir>
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(IntDir);$(ProjectDir);</IncludePath>
- <ExtensionsToDeleteOnClean>*.h;$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>build\$(Platform)\$(Configuration)\</OutDir>
- <IntDir>build\$(Platform)\$(Configuration)\build\</IntDir>
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(IntDir);$(ProjectDir);</IncludePath>
- <ExtensionsToDeleteOnClean>*.h;$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>build\$(Configuration)\</OutDir>
- <IntDir>build\$(Configuration)\build\</IntDir>
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(IntDir);$(ProjectDir);</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>build\$(Platform)\$(Configuration)\</OutDir>
- <IntDir>build\$(Platform)\$(Configuration)\build\</IntDir>
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(IntDir);$(ProjectDir);</IncludePath>
- <ExtensionsToDeleteOnClean>*.h;$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>
- </AdditionalIncludeDirectories>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <CompileAs>CompileAsC</CompileAs>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>
- </AdditionalLibraryDirectories>
- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- <PreBuildEvent>
- <Command>config.bat -o $(IntDir)</Command>
- <Message>
- </Message>
- </PreBuildEvent>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- <PreBuildEvent>
- <Command>config.bat -o $(IntDir)</Command>
- </PreBuildEvent>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;_CONSOLE;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>..\..\..\zlib\contrib\vstudio\vc11\x86\ZlibStatReleaseWithoutAsm\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- <PreBuildEvent>
- <Command>config.bat -o $(IntDir)</Command>
- </PreBuildEvent>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>
- </AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- <PreBuildEvent>
- <Command>config.bat -o $(IntDir)</Command>
- </PreBuildEvent>
- </ItemDefinitionGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj.filters b/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj.filters
deleted file mode 100644
index 2ba314f975..0000000000
--- a/protocols/Telegram/tgl/tl-parser/contrib/vs/tl-parser.vcxproj.filters
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\portable_endian.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\tl-parser.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\tl-parser-tree.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\tl-tl.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="config.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="wingetopt.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tlc.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\tl-parser.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="wingetopt.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.c b/protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.c
deleted file mode 100644
index 09dac17a4f..0000000000
--- a/protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-POSIX getopt for Windows
-
-AT&T Public License
-
-Code given out at the 1985 UNIFORUM conference in Dallas.
-*/
-
-#ifndef __GNUC__
-
-#include "wingetopt.h"
-#include <stdio.h>
-#include <string.h>
-
-#ifndef NULL
-#define NULL 0
-#endif
-#define EOF (-1)
-#define ERR(s, c) if(opterr){\
- char errbuf[2];\
- errbuf[0] = c; errbuf[1] = '\n';\
- fputs(argv[0], stderr);\
- fputs(s, stderr);\
- fputc(c, stderr);}
-//(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
- //(void) write(2, s, (unsigned)strlen(s));\
- //(void) write(2, errbuf, 2);}
-
-int opterr = 1;
-int optind = 1;
-int optopt;
-char *optarg;
-
-int
-getopt(argc, argv, opts)
-int argc;
-char **argv, *opts;
-{
- static int sp = 1;
- register int c;
- register char *cp;
-
- if (sp == 1)
- if (optind >= argc ||
- argv[optind][0] != '-' || argv[optind][1] == '\0')
- return(EOF);
- else if (strcmp(argv[optind], "--") == (int)NULL) {
- optind++;
- return(EOF);
- }
- optopt = c = argv[optind][sp];
- if (c == ':' || (cp = strchr(opts, c)) == NULL) {
- ERR(": illegal option -- ", c);
- if (argv[optind][++sp] == '\0') {
- optind++;
- sp = 1;
- }
- return('?');
- }
- if (*++cp == ':') {
- if (argv[optind][sp + 1] != '\0')
- optarg = &argv[optind++][sp + 1];
- else if (++optind >= argc) {
- ERR(": option requires an argument -- ", c);
- sp = 1;
- return('?');
- }
- else
- optarg = argv[optind++];
- sp = 1;
- }
- else {
- if (argv[optind][++sp] == '\0') {
- sp = 1;
- optind++;
- }
- optarg = NULL;
- }
- return(c);
-}
-
-#endif /* __GNUC__ */ \ No newline at end of file
diff --git a/protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.h b/protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.h
deleted file mode 100644
index 4372c66011..0000000000
--- a/protocols/Telegram/tgl/tl-parser/contrib/vs/wingetopt.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-POSIX getopt for Windows
-
-AT&T Public License
-
-Code given out at the 1985 UNIFORUM conference in Dallas.
-*/
-
-#ifdef __GNUC__
-#include <getopt.h>
-#endif
-#ifndef __GNUC__
-
-#ifndef _WINGETOPT_H_
-#define _WINGETOPT_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- extern int opterr;
- extern int optind;
- extern int optopt;
- extern char *optarg;
- extern int getopt(int argc, char **argv, char *opts);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H_ */
-#endif /* __GNUC__ */ \ No newline at end of file
diff --git a/protocols/Telegram/tgl/tl-parser/m4-ax_gcc_builtin.m4 b/protocols/Telegram/tgl/tl-parser/m4-ax_gcc_builtin.m4
deleted file mode 100644
index b28a91b14a..0000000000
--- a/protocols/Telegram/tgl/tl-parser/m4-ax_gcc_builtin.m4
+++ /dev/null
@@ -1,168 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_builtin.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_BUILTIN(BUILTIN)
-#
-# DESCRIPTION
-#
-# This macro checks if the compiler supports one of GCC's built-in
-# functions; many other compilers also provide those same built-ins.
-#
-# The BUILTIN parameter is the name of the built-in function.
-#
-# If BUILTIN is supported define HAVE_<BUILTIN>. Keep in mind that since
-# builtins usually start with two underscores they will be copied over
-# into the HAVE_<BUILTIN> definition (e.g. HAVE___BUILTIN_EXPECT for
-# __builtin_expect()).
-#
-# The macro caches its result in the ax_cv_have_<BUILTIN> variable (e.g.
-# ax_cv_have___builtin_expect).
-#
-# The macro currently supports the following built-in functions:
-#
-# __builtin_assume_aligned
-# __builtin_bswap32
-# __builtin_bswap64
-# __builtin_choose_expr
-# __builtin___clear_cache
-# __builtin_clrsb
-# __builtin_clrsbl
-# __builtin_clrsbll
-# __builtin_clz
-# __builtin_clzl
-# __builtin_clzll
-# __builtin_complex
-# __builtin_constant_p
-# __builtin_ctz
-# __builtin_ctzl
-# __builtin_ctzll
-# __builtin_expect
-# __builtin_ffs
-# __builtin_ffsl
-# __builtin_ffsll
-# __builtin_fpclassify
-# __builtin_huge_val
-# __builtin_huge_valf
-# __builtin_huge_vall
-# __builtin_inf
-# __builtin_infd128
-# __builtin_infd32
-# __builtin_infd64
-# __builtin_inff
-# __builtin_infl
-# __builtin_isinf_sign
-# __builtin_nan
-# __builtin_nand128
-# __builtin_nand32
-# __builtin_nand64
-# __builtin_nanf
-# __builtin_nanl
-# __builtin_nans
-# __builtin_nansf
-# __builtin_nansl
-# __builtin_object_size
-# __builtin_parity
-# __builtin_parityl
-# __builtin_parityll
-# __builtin_popcount
-# __builtin_popcountl
-# __builtin_popcountll
-# __builtin_powi
-# __builtin_powif
-# __builtin_powil
-# __builtin_prefetch
-# __builtin_trap
-# __builtin_types_compatible_p
-# __builtin_unreachable
-#
-# Unsuppored built-ins will be tested with an empty parameter set and the
-# result of the check might be wrong or meaningless so use with care.
-#
-# LICENSE
-#
-# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 2
-
-AC_DEFUN([AX_GCC_BUILTIN], [
- AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1])
-
- AC_CACHE_CHECK([for $1], [ac_var], [
- AC_LINK_IFELSE([AC_LANG_PROGRAM([], [
- m4_case([$1],
- [__builtin_assume_aligned], [$1("", 0)],
- [__builtin_bswap32], [$1(0)],
- [__builtin_bswap64], [$1(0)],
- [__builtin_choose_expr], [$1(0, 0, 0)],
- [__builtin___clear_cache], [$1("", "")],
- [__builtin_clrsb], [$1(0)],
- [__builtin_clrsbl], [$1(0)],
- [__builtin_clrsbll], [$1(0)],
- [__builtin_clz], [$1(0)],
- [__builtin_clzl], [$1(0)],
- [__builtin_clzll], [$1(0)],
- [__builtin_complex], [$1(0.0, 0.0)],
- [__builtin_constant_p], [$1(0)],
- [__builtin_ctz], [$1(0)],
- [__builtin_ctzl], [$1(0)],
- [__builtin_ctzll], [$1(0)],
- [__builtin_expect], [$1(0, 0)],
- [__builtin_ffs], [$1(0)],
- [__builtin_ffsl], [$1(0)],
- [__builtin_ffsll], [$1(0)],
- [__builtin_fpclassify], [$1(0, 1, 2, 3, 4, 0.0)],
- [__builtin_huge_val], [$1()],
- [__builtin_huge_valf], [$1()],
- [__builtin_huge_vall], [$1()],
- [__builtin_inf], [$1()],
- [__builtin_infd128], [$1()],
- [__builtin_infd32], [$1()],
- [__builtin_infd64], [$1()],
- [__builtin_inff], [$1()],
- [__builtin_infl], [$1()],
- [__builtin_isinf_sign], [$1(0.0)],
- [__builtin_nan], [$1("")],
- [__builtin_nand128], [$1("")],
- [__builtin_nand32], [$1("")],
- [__builtin_nand64], [$1("")],
- [__builtin_nanf], [$1("")],
- [__builtin_nanl], [$1("")],
- [__builtin_nans], [$1("")],
- [__builtin_nansf], [$1("")],
- [__builtin_nansl], [$1("")],
- [__builtin_object_size], [$1("", 0)],
- [__builtin_parity], [$1(0)],
- [__builtin_parityl], [$1(0)],
- [__builtin_parityll], [$1(0)],
- [__builtin_popcount], [$1(0)],
- [__builtin_popcountl], [$1(0)],
- [__builtin_popcountll], [$1(0)],
- [__builtin_powi], [$1(0, 0)],
- [__builtin_powif], [$1(0, 0)],
- [__builtin_powil], [$1(0, 0)],
- [__builtin_prefetch], [$1("")],
- [__builtin_trap], [$1()],
- [__builtin_types_compatible_p], [$1(int, int)],
- [__builtin_unreachable], [$1()],
- [m4_warn([syntax], [Unsupported built-in $1, the test may fail])
- $1()]
- )
- ])],
- [AS_VAR_SET([ac_var], [yes])],
- [AS_VAR_SET([ac_var], [no])])
- ])
-
- AS_IF([test yes = AS_VAR_GET([ac_var])],
- [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1,
- [Define to 1 if the system has the `$1' built-in function])], [])
-
- AS_VAR_POPDEF([ac_var])
-])
diff --git a/protocols/Telegram/tgl/tl-parser/portable_endian.h b/protocols/Telegram/tgl/tl-parser/portable_endian.h
deleted file mode 100644
index b39a51ea63..0000000000
--- a/protocols/Telegram/tgl/tl-parser/portable_endian.h
+++ /dev/null
@@ -1,124 +0,0 @@
-// "License": Public Domain
-// I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like.
-// In case there are jurisdictions that don't support putting things in the public domain you can also consider it to
-// be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it
-// an example on how to get the endian conversion functions on different platforms.
-
-/* Originally cloned from https://gist.github.com/PkmX/63dd23f28ba885be53a5
- * Commit was: 1eca2ab34f2301b9641aa73d1016b951fff3fc39
- * Re-published at https://github.com/BenWiederhake/portable-endian.h to provide a means to submit patches and report issues. */
-
-#ifndef PORTABLE_ENDIAN_H__
-#define PORTABLE_ENDIAN_H__
-
-#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__)
-
-# define __WINDOWS__
-
-#endif
-
-#if defined(__linux__) || defined(__CYGWIN__)
-
-# include <endian.h>
-
-#elif defined(__APPLE__)
-
-# include <libkern/OSByteOrder.h>
-
-# define htobe16(x) OSSwapHostToBigInt16(x)
-# define htole16(x) OSSwapHostToLittleInt16(x)
-# define be16toh(x) OSSwapBigToHostInt16(x)
-# define le16toh(x) OSSwapLittleToHostInt16(x)
-
-# define htobe32(x) OSSwapHostToBigInt32(x)
-# define htole32(x) OSSwapHostToLittleInt32(x)
-# define be32toh(x) OSSwapBigToHostInt32(x)
-# define le32toh(x) OSSwapLittleToHostInt32(x)
-
-# define htobe64(x) OSSwapHostToBigInt64(x)
-# define htole64(x) OSSwapHostToLittleInt64(x)
-# define be64toh(x) OSSwapBigToHostInt64(x)
-# define le64toh(x) OSSwapLittleToHostInt64(x)
-
-# define __BYTE_ORDER BYTE_ORDER
-# define __BIG_ENDIAN BIG_ENDIAN
-# define __LITTLE_ENDIAN LITTLE_ENDIAN
-# define __PDP_ENDIAN PDP_ENDIAN
-
-#elif defined(__OpenBSD__)
-
-# include <sys/endian.h>
-
-#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
-
-# include <sys/endian.h>
-
-# define be16toh(x) betoh16(x)
-# define le16toh(x) letoh16(x)
-
-# define be32toh(x) betoh32(x)
-# define le32toh(x) letoh32(x)
-
-# define be64toh(x) betoh64(x)
-# define le64toh(x) letoh64(x)
-
-#elif defined(__WINDOWS__)
-
-# include <winsock2.h>
-# ifdef __MINGW32__
-# include <sys/param.h>
-# endif
-
-# if BYTE_ORDER == LITTLE_ENDIAN
-
-# define htobe16(x) htons(x)
-# define htole16(x) (x)
-# define be16toh(x) ntohs(x)
-# define le16toh(x) (x)
-
-# define htobe32(x) htonl(x)
-# define htole32(x) (x)
-# define be32toh(x) ntohl(x)
-# define le32toh(x) (x)
-
-# define htobe64(x) htonll(x)
-# define htole64(x) (x)
-# define be64toh(x) ntohll(x)
-# define le64toh(x) (x)
-
-# elif BYTE_ORDER == BIG_ENDIAN
-
- /* that would be xbox 360 */
-# define htobe16(x) (x)
-# define htole16(x) __builtin_bswap16(x)
-# define be16toh(x) (x)
-# define le16toh(x) __builtin_bswap16(x)
-
-# define htobe32(x) (x)
-# define htole32(x) __builtin_bswap32(x)
-# define be32toh(x) (x)
-# define le32toh(x) __builtin_bswap32(x)
-
-# define htobe64(x) (x)
-# define htole64(x) __builtin_bswap64(x)
-# define be64toh(x) (x)
-# define le64toh(x) __builtin_bswap64(x)
-
-# else
-
-# error byte order not supported
-
-# endif
-
-# define __BYTE_ORDER BYTE_ORDER
-# define __BIG_ENDIAN BIG_ENDIAN
-# define __LITTLE_ENDIAN LITTLE_ENDIAN
-# define __PDP_ENDIAN PDP_ENDIAN
-
-#else
-
-# error platform not supported
-
-#endif
-
-#endif
diff --git a/protocols/Telegram/tgl/tl-parser/tl-parser-tree.h b/protocols/Telegram/tgl/tl-parser/tl-parser-tree.h
deleted file mode 100644
index fba7c67521..0000000000
--- a/protocols/Telegram/tgl/tl-parser/tl-parser-tree.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- This file is part of tgl-library
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
- Copyright Vitaly Valtman 2013-2014
-*/
-#ifndef __TREE_H__
-#define __TREE_H__
-#include <stdio.h>
-
-#include <memory.h>
-#include <assert.h>
-
-#pragma pack(push,4)
-#define DEFINE_TREE(X_NAME, X_TYPE, X_CMP, X_UNSET) \
-struct tree_ ## X_NAME { \
- struct tree_ ## X_NAME *left, *right;\
- X_TYPE x;\
- int y;\
-};\
-\
-static struct tree_ ## X_NAME *new_tree_node_ ## X_NAME (X_TYPE x, int y) {\
- struct tree_ ## X_NAME *T = malloc (sizeof (*T));\
- T->x = x;\
- T->y = y;\
- T->left = T->right = 0;\
- return T;\
-}\
-\
-static void delete_tree_node_ ## X_NAME (struct tree_ ## X_NAME *T) {\
- free (T);\
-}\
-\
-static void tree_split_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, struct tree_ ## X_NAME **L, struct tree_ ## X_NAME **R) {\
- if (!T) {\
- *L = *R = 0;\
- } else {\
- int c = X_CMP (x, T->x);\
- if (c < 0) {\
- tree_split_ ## X_NAME (T->left, x, L, &T->left);\
- *R = T;\
- } else {\
- tree_split_ ## X_NAME (T->right, x, &T->right, R);\
- *L = T;\
- }\
- }\
-}\
-\
-static struct tree_ ## X_NAME *tree_insert_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, int y) __attribute__ ((warn_unused_result,unused));\
-static struct tree_ ## X_NAME *tree_insert_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, int y) {\
- if (!T) {\
- return new_tree_node_ ## X_NAME (x, y);\
- } else {\
- if (y > T->y) {\
- struct tree_ ## X_NAME *N = new_tree_node_ ## X_NAME (x, y);\
- tree_split_ ## X_NAME (T, x, &N->left, &N->right);\
- return N;\
- } else {\
- int c = X_CMP (x, T->x);\
- assert (c);\
- if (c < 0) { \
- T->left = tree_insert_ ## X_NAME (T->left, x, y);\
- } else { \
- T->right = tree_insert_ ## X_NAME (T->right, x, y);\
- } \
- return T; \
- }\
- }\
-}\
-\
-static struct tree_ ## X_NAME *tree_merge_ ## X_NAME (struct tree_ ## X_NAME *L, struct tree_ ## X_NAME *R) {\
- if (!L || !R) {\
- return L ? L : R;\
- } else {\
- if (L->y > R->y) {\
- L->right = tree_merge_ ## X_NAME (L->right, R);\
- return L;\
- } else {\
- R->left = tree_merge_ ## X_NAME (L, R->left);\
- return R;\
- }\
- }\
-}\
-\
-static struct tree_ ## X_NAME *tree_delete_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) __attribute__ ((warn_unused_result,unused));\
-static struct tree_ ## X_NAME *tree_delete_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) {\
- assert (T);\
- int c = X_CMP (x, T->x);\
- if (!c) {\
- struct tree_ ## X_NAME *N = tree_merge_ ## X_NAME (T->left, T->right);\
- delete_tree_node_ ## X_NAME (T);\
- return N;\
- } else {\
- if (c < 0) { \
- T->left = tree_delete_ ## X_NAME (T->left, x); \
- } else { \
- T->right = tree_delete_ ## X_NAME (T->right, x); \
- } \
- return T; \
- }\
-}\
-\
-static X_TYPE tree_get_min_ ## X_NAME (struct tree_ ## X_NAME *t) __attribute__ ((unused));\
-static X_TYPE tree_get_min_ ## X_NAME (struct tree_ ## X_NAME *T) {\
- if (!T) { return X_UNSET; } \
- while (T->left) { T = T->left; }\
- return T->x; \
-} \
-\
-static X_TYPE tree_lookup_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) __attribute__ ((unused));\
-static X_TYPE tree_lookup_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) {\
- int c;\
- while (T && (c = X_CMP (x, T->x))) {\
- T = (c < 0 ? T->left : T->right);\
- }\
- return T ? T->x : X_UNSET;\
-}\
-\
-static void tree_act_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE)) __attribute__ ((unused));\
-static void tree_act_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE)) {\
- if (!T) { return; } \
- tree_act_ ## X_NAME (T->left, act); \
- act (T->x); \
- tree_act_ ## X_NAME (T->right, act); \
-}\
-\
-static void tree_act_ex_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE, void *), void *extra) __attribute__ ((unused));\
-static void tree_act_ex_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE, void *), void *extra) {\
- if (!T) { return; } \
- tree_act_ex_ ## X_NAME (T->left, act, extra); \
- act (T->x, extra); \
- tree_act_ex_ ## X_NAME (T->right, act, extra); \
-}\
-\
-static int tree_count_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\
-static int tree_count_ ## X_NAME (struct tree_ ## X_NAME *T) { \
- if (!T) { return 0; }\
- return 1 + tree_count_ ## X_NAME (T->left) + tree_count_ ## X_NAME (T->right); \
-}\
-static void tree_check_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\
-static void tree_check_ ## X_NAME (struct tree_ ## X_NAME *T) { \
- if (!T) { return; }\
- if (T->left) { \
- assert (T->left->y <= T->y);\
- assert (X_CMP (T->left->x, T->x) < 0); \
- }\
- if (T->right) { \
- assert (T->right->y <= T->y);\
- assert (X_CMP (T->right->x, T->x) > 0); \
- }\
- tree_check_ ## X_NAME (T->left); \
- tree_check_ ## X_NAME (T->right); \
-}\
-static struct tree_ ## X_NAME *tree_clear_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\
-static struct tree_ ## X_NAME *tree_clear_ ## X_NAME (struct tree_ ## X_NAME *T) { \
- if (!T) { return 0; }\
- tree_clear_ ## X_NAME (T->left); \
- tree_clear_ ## X_NAME (T->right); \
- delete_tree_node_ ## X_NAME (T); \
- return 0; \
-} \
-
-#define int_cmp(a,b) ((a) - (b))
-#pragma pack(pop)
-#endif
diff --git a/protocols/Telegram/tgl/tl-parser/tl-parser.c b/protocols/Telegram/tgl/tl-parser/tl-parser.c
deleted file mode 100644
index 0076d6883b..0000000000
--- a/protocols/Telegram/tgl/tl-parser/tl-parser.c
+++ /dev/null
@@ -1,3111 +0,0 @@
-/*
- This file is part of tl-parser
-
- tl-parser is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- tl-parser is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this tl-parser. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright Vitaly Valtman 2014
-
- It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-
-*/
-
-#define _FILE_OFFSET_BITS 64
-#include "config.h"
-
-#if defined(_MSC_VER)
-#include <io.h>
-#include <stdint.h>
-#include <string.h>
-#else
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <time.h>
-#include "portable_endian.h"
-#include <zlib.h>
-#include "tl-parser-tree.h"
-#include "tl-parser.h"
-#include "tl-tl.h"
-
-extern int verbosity;
-extern int schema_version;
-extern int output_expressions;
-
-
-int total_types_num;
-int total_constructors_num;
-int total_functions_num;
-
-
-/*char *tstrdup (const char *s) {
- assert (s);
- char *r = talloc (strlen (s) + 1);
- memcpy (r, s, strlen (s) + 1);
- return r;
-}*/
-
-#define talloc(a) malloc(a)
-#define tfree(a,b) free (a)
-#define talloc0(a) calloc(a,1)
-#define tstrdup(a) strdup(a)
-
-typedef char error_int_must_be_4_byte[(sizeof (int) == 4) ? 1 : -1];
-typedef char error_long_long_must_be_8_byte[(sizeof (long long) == 8) ? 1 : -1];
-
-char curch;
-struct parse parse;
-
-struct tree *tree;
-
-struct tree *tree_alloc (void) {
- struct tree *T = talloc (sizeof (*T));
- assert (T);
- memset (T, 0, sizeof (*T));
- return T;
-}
-
-#define CRC32_INITIAL crc32 (0, 0, 0)
-
-void tree_add_child (struct tree *P, struct tree *C) {
- if (P->nc == P->size) {
- void **t = talloc (sizeof (void *) * (++P->size));
- memcpy (t, P->c, sizeof (void *) * (P->size - 1));
- if (P->c) {
- tfree (P->c, sizeof (void *) * (P->size - 1));
- }
- P->c = (void *)t;
- assert (P->c);
- }
- P->c[P->nc ++] = C;
-}
-
-void tree_delete (struct tree *T) {
- assert (T);
- int i;
- for (i = 0; i < T->nc; i++) {
- assert (T->c[i]);
- tree_delete (T->c[i]);
- }
- if (T->c) {
- tfree (T->c, sizeof (void *) * T->nc);
- }
- tfree (T, sizeof (*T));
-}
-
-void tree_del_child (struct tree *P) {
- assert (P->nc);
- tree_delete (P->c[--P->nc]);
-}
-
-
-char nextch (void) {
- if (parse.pos < parse.len - 1) {
- curch = parse.text[++parse.pos];
- } else {
- curch = 0;
- }
- if (curch == 10) {
- parse.line ++;
- parse.line_pos = 0;
- } else {
- if (curch) {
- parse.line_pos ++;
- }
- }
- return curch;
-}
-
-
-struct parse save_parse (void) {
- return parse;
-}
-
-void load_parse (struct parse _parse) {
- parse = _parse;
- curch = parse.pos > parse.len ? 0: parse.text[parse.pos] ;
-}
-
-int is_whitespace (char c) {
- return (c <= 32);
-}
-
-int is_uletter (char c) {
- return (c >= 'A' && c <= 'Z');
-}
-
-int is_lletter (char c) {
- return (c >= 'a' && c <= 'z');
-}
-
-int is_letter (char c) {
- return is_uletter (c) || is_lletter (c);
-}
-
-int is_digit (char c) {
- return (c >= '0' && c <= '9');
-}
-
-int is_hexdigit (char c) {
- return is_digit (c) || (c >= 'a' && c <= 'f');
-}
-
-int is_ident_char (char c) {
- return is_digit (c) || is_letter (c) || c == '_';
-}
-
-int last_error_pos;
-int last_error_line;
-int last_error_line_pos;
-char *last_error;
-
-void parse_error (const char *e) {
- if (parse.pos > last_error_pos) {
- last_error_pos = parse.pos;
- last_error_line = parse.line;
- last_error_line_pos = parse.line_pos;
- if (last_error) {
- tfree (last_error, strlen (last_error) + 1);
- }
- last_error = tstrdup (e);
- }
-}
-
-void tl_print_parse_error (void) {
- fprintf (stderr, "Error near line %d pos %d: `%s`\n", last_error_line + 1, last_error_line_pos + 1, last_error);
-}
-
-char *parse_lex (void) {
- while (1) {
- while (curch && is_whitespace (curch)) { nextch (); }
- if (curch == '/' && nextch () == '/') {
- while (nextch () != 10);
- nextch ();
- } else {
- break;
- }
- }
- if (!curch) {
- parse.lex.len = 0;
- parse.lex.type = lex_eof;
- return (parse.lex.ptr = 0);
- }
- char *p = parse.text + parse.pos;
- parse.lex.flags = 0;
- switch (curch) {
- case '-':
- if (nextch () != '-' || nextch () != '-') {
- parse_error ("Can not parse triple minus");
- parse.lex.type = lex_error;
- return (parse.lex.ptr = (void *)-1);
- } else {
- parse.lex.len = 3;
- parse.lex.type = lex_triple_minus;
- nextch ();
- return (parse.lex.ptr = p);
- }
- case ':':
- case ';':
- case '(':
- case ')':
- case '[':
- case ']':
- case '{':
- case '}':
- case '=':
- case '#':
- case '?':
- case '%':
- case '<':
- case '>':
- case '+':
- case ',':
- case '*':
- case '_':
- case '!':
- case '.':
- nextch ();
- parse.lex.len = 1;
- parse.lex.type = lex_char;
- return (parse.lex.ptr = p);
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- parse.lex.flags = 0;
- if (is_uletter (curch)) {
- while (is_ident_char (nextch ()));
- parse.lex.len = parse.text + parse.pos - p;
- parse.lex.ptr = p;
- if (parse.lex.len == 5 && !memcmp (parse.lex.ptr, "Final", 5)) {
- parse.lex.type = lex_final;
- } else if (parse.lex.len == 3 && !memcmp (parse.lex.ptr, "New", 3)) {
- parse.lex.type = lex_new;
- } else if (parse.lex.len == 5 && !memcmp (parse.lex.ptr, "Empty", 5)) {
- parse.lex.type = lex_empty;
- } else {
- parse.lex.type = lex_uc_ident;
- }
- return (parse.lex.ptr = p);
- }
- while (is_ident_char (nextch ()));
- if (curch == '.' && !is_letter (parse.text[parse.pos + 1])) {
- parse.lex.len = parse.text + parse.pos - p;
- parse.lex.type = lex_lc_ident;
- return (parse.lex.ptr = p);
- }
- if (curch == '.') {
- parse.lex.flags |= 1;
- nextch ();
- if (is_uletter (curch)) {
- while (is_ident_char (nextch ()));
- parse.lex.len = parse.text + parse.pos - p;
- parse.lex.type = lex_uc_ident;
- return (parse.lex.ptr = p);
- }
- if (is_lletter (curch)) {
- while (is_ident_char (nextch ()));
- } else {
- parse_error ("Expected letter");
- parse.lex.type = lex_error;
- return (parse.lex.ptr = (void *)-1);
- }
- }
- if (curch == '#') {
- parse.lex.flags |= 2;
- int i;
- int ok = 1;
- for (i = 0; i < 8; i++) {
- if (!is_hexdigit (nextch())) {
- if (curch == ' ' && i >= 5) {
- ok = 2;
- break;
- } else {
- parse_error ("Hex digit expected");
- parse.lex.type = lex_error;
- return (parse.lex.ptr = (void *)-1);
- }
- }
- }
- if (ok == 1) {
- nextch ();
- }
- }
- parse.lex.len = parse.text + parse.pos - p;
- parse.lex.type = lex_lc_ident;
- return (parse.lex.ptr = p);
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- while (is_digit (nextch ()));
- parse.lex.len = parse.text + parse.pos - p;
- parse.lex.type = lex_num;
- return (parse.lex.ptr = p);
- default:
- parse_error ("Unknown lexem");
- parse.lex.type = lex_error;
- return (parse.lex.ptr = (void *)-1);
- }
-
-}
-
-int expect (char *s) {
- if (!parse.lex.ptr || parse.lex.ptr == (void *)-1 || parse.lex.type == lex_error || parse.lex.type == lex_none || parse.lex.len != (int)strlen (s) || memcmp (s, parse.lex.ptr, parse.lex.len)) {
- static char buf[1000];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s(buf, 1000, "Expected %s", s);
-#else
- sprintf(buf, "Expected %s", s);
-#endif
- parse_error (buf);
- return -1;
- } else {
- parse_lex ();
- }
- return 1;
-}
-
-struct parse *tl_init_parse_file (const char *fname) {
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- int fd = 0;
- if (_sopen_s(&fd, fname, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0) {
- char errorStr[256] = { 0 };
- strerror_s(errorStr, 256, errno);
- fprintf(stderr, "Error %s\n", errorStr);
-#elif defined(WIN32) || defined(_WIN32)
- int fd = open(fname, O_RDONLY | O_BINARY);
- if (fd < 0) {
- fprintf(stderr, "Error %s\n", strerror(errno));
-#else
- int fd = open(fname, O_RDONLY);
- if (fd < 0) {
- fprintf(stderr, "Error %m\n");
-#endif
- assert (0);
- return 0;
- }
- long long size = lseek (fd, 0, SEEK_END);
- if (size <= 0) {
- fprintf (stderr, "size is %"_PRINTF_INT64_"d. Too small.\n", size);
- return 0;
- }
- static struct parse save;
- save.text = talloc (size);
- lseek (fd, 0, SEEK_SET);
- save.len = read (fd, save.text, size);
- assert (save.len == size);
- save.pos = 0;
- save.line = 0;
- save.line_pos = 0;
- save.lex.ptr = save.text;
- save.lex.len = 0;
- save.lex.type = lex_none;
- return &save;
-}
-
-#define PARSE_INIT(_type) struct parse save = save_parse (); struct tree *T = tree_alloc (); T->type = (_type); T->lex_line = parse.line; T->lex_line_pos = parse.line_pos; struct tree *S __attribute__ ((unused));
-#define PARSE_FAIL load_parse (save); tree_delete (T); return 0;
-#define PARSE_OK return T;
-#define PARSE_TRY_PES(x) if (!(S = x ())) { PARSE_FAIL; } { tree_add_child (T, S); }
-#define PARSE_TRY_OPT(x) if ((S = x ())) { tree_add_child (T, S); PARSE_OK }
-#define PARSE_TRY(x) S = x ();
-#define PARSE_ADD(_type) S = tree_alloc (); S->type = _type; tree_add_child (T, S);
-#define EXPECT(s) if (expect (s) < 0) { PARSE_FAIL; }
-#define LEX_CHAR(c) (parse.lex.type == lex_char && *parse.lex.ptr == c)
-struct tree *parse_args (void);
-struct tree *parse_expr (void);
-
-struct tree *parse_boxed_type_ident (void) {
- PARSE_INIT (type_boxed_type_ident);
- if (parse.lex.type != lex_uc_ident) {
- parse_error ("Can not parse boxed type");
- PARSE_FAIL;
- } else {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- }
-}
-
-struct tree *parse_full_combinator_id (void) {
- PARSE_INIT (type_full_combinator_id);
- if (parse.lex.type == lex_lc_ident || LEX_CHAR('_')) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else {
- parse_error ("Can not parse full combinator id");
- PARSE_FAIL;
- }
-}
-
-struct tree *parse_combinator_id (void) {
- PARSE_INIT (type_combinator_id);
- if (parse.lex.type == lex_lc_ident && !(parse.lex.flags & 2)) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else {
- parse_error ("Can not parse combinator id");
- PARSE_FAIL;
- }
-}
-
-struct tree *parse_var_ident (void) {
- PARSE_INIT (type_var_ident);
- if ((parse.lex.type == lex_lc_ident || parse.lex.type == lex_uc_ident) && !(parse.lex.flags & 3)) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else {
- parse_error ("Can not parse var ident");
- PARSE_FAIL;
- }
-}
-
-struct tree *parse_var_ident_opt (void) {
- PARSE_INIT (type_var_ident_opt);
- if ((parse.lex.type == lex_lc_ident || parse.lex.type == lex_uc_ident)&& !(parse.lex.flags & 3)) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else if (LEX_CHAR ('_')) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else {
- parse_error ("Can not parse var ident opt");
- PARSE_FAIL;
- }
-}
-
-struct tree *parse_nat_const (void) {
- PARSE_INIT (type_nat_const);
- if (parse.lex.type == lex_num) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else {
- parse_error ("Can not parse nat const");
- PARSE_FAIL;
- }
-}
-
-struct tree *parse_type_ident (void) {
- PARSE_INIT (type_type_ident);
- if (parse.lex.type == lex_uc_ident && !(parse.lex.flags & 2)) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else if (parse.lex.type == lex_lc_ident && !(parse.lex.flags & 2)) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else if (LEX_CHAR ('#')) {
- T->text = parse.lex.ptr;
- T->len = parse.lex.len;
- T->flags = parse.lex.flags;
- parse_lex ();
- PARSE_OK;
- } else {
- parse_error ("Can not parse type ident");
- PARSE_FAIL;
- }
-}
-
-struct tree *parse_term (void) {
- PARSE_INIT (type_term);
- while (LEX_CHAR ('%')) {
- EXPECT ("%")
- PARSE_ADD (type_percent);
- }
- if (LEX_CHAR ('(')) {
- EXPECT ("(");
- PARSE_TRY_PES (parse_expr);
- EXPECT (")");
- PARSE_OK;
- }
- PARSE_TRY (parse_type_ident);
- if (S) {
- tree_add_child (T, S);
- if (LEX_CHAR ('<')) {
- EXPECT ("<");
- while (1) {
- PARSE_TRY_PES (parse_expr);
- if (LEX_CHAR ('>')) { break; }
- EXPECT (",");
- }
- EXPECT (">");
- }
- PARSE_OK;
- }
- PARSE_TRY_OPT (parse_type_ident);
- PARSE_TRY_OPT (parse_var_ident);
- PARSE_TRY_OPT (parse_nat_const);
- PARSE_FAIL;
-}
-
-struct tree *parse_nat_term (void) {
- PARSE_INIT (type_nat_term);
- PARSE_TRY_PES (parse_term);
- PARSE_OK;
-}
-
-struct tree *parse_subexpr (void) {
- PARSE_INIT (type_subexpr);
- int was_term = 0;
- int cc = 0;
-
- while (1) {
- PARSE_TRY (parse_nat_const);
- if (S) {
- tree_add_child (T, S);
- } else if (!was_term) {
- was_term = 1;
- PARSE_TRY (parse_term);
- if (S) {
- tree_add_child (T, S);
- } else {
- break;
- }
- }
- cc ++;
- if (!LEX_CHAR ('+')) {
- break;
- }
- EXPECT ("+");
- }
- if (!cc) {
- PARSE_FAIL;
- } else {
- PARSE_OK;
- }
-}
-
-struct tree *parse_expr (void) {
- PARSE_INIT (type_expr);
- int cc = 0;
- while (1) {
- PARSE_TRY (parse_subexpr);
- if (S) {
- tree_add_child (T, S);
- cc ++;
- } else {
- if (cc < 1) { PARSE_FAIL; }
- else { PARSE_OK; }
- }
- }
-}
-
-
-
-struct tree *parse_final_empty (void) {
- PARSE_INIT (type_final_empty);
- EXPECT ("Empty");
- PARSE_TRY_PES (parse_boxed_type_ident);
- PARSE_OK;
-}
-
-struct tree *parse_final_new (void) {
- PARSE_INIT (type_final_new);
- EXPECT ("New");
- PARSE_TRY_PES (parse_boxed_type_ident);
- PARSE_OK;
-}
-
-struct tree *parse_final_final (void) {
- PARSE_INIT (type_final_final);
- EXPECT ("Final");
- PARSE_TRY_PES (parse_boxed_type_ident);
- PARSE_OK;
-}
-
-struct tree *parse_partial_comb_app_decl (void) {
- PARSE_INIT (type_partial_comb_app_decl);
- PARSE_TRY_PES (parse_combinator_id);
- while (1) {
- PARSE_TRY_PES (parse_subexpr);
- if (LEX_CHAR (';')) { break; }
- }
- PARSE_OK;
-}
-
-struct tree *parse_partial_type_app_decl (void) {
- PARSE_INIT (type_partial_type_app_decl);
- PARSE_TRY_PES (parse_boxed_type_ident);
- if (LEX_CHAR ('<')) {
- EXPECT ("<");
- while (1) {
- PARSE_TRY_PES (parse_expr);
- if (LEX_CHAR ('>')) { break; }
- EXPECT (",");
- }
- EXPECT (">");
- PARSE_OK;
- } else {
- while (1) {
- PARSE_TRY_PES (parse_subexpr);
- if (LEX_CHAR (';')) { break; }
- }
- PARSE_OK;
- }
-}
-
-
-
-
-struct tree *parse_multiplicity (void) {
- PARSE_INIT (type_multiplicity);
- PARSE_TRY_PES (parse_nat_term);
- PARSE_OK;
-}
-
-
-struct tree *parse_type_term (void) {
- PARSE_INIT (type_type_term);
- PARSE_TRY_PES (parse_term);
- PARSE_OK;
-}
-
-struct tree *parse_optional_arg_def (void) {
- PARSE_INIT (type_optional_arg_def);
- PARSE_TRY_PES (parse_var_ident);
- EXPECT (".");
- PARSE_TRY_PES (parse_nat_const);
- EXPECT ("?");
- PARSE_OK;
-}
-
-struct tree *parse_args4 (void) {
- PARSE_INIT (type_args4);
- struct parse so = save_parse ();
- PARSE_TRY (parse_optional_arg_def);
- if (S) {
- tree_add_child (T, S);
- } else {
- load_parse (so);
- }
- if (LEX_CHAR ('!')) {
- PARSE_ADD (type_exclam);
- EXPECT ("!");
- }
- PARSE_TRY_PES (parse_type_term);
- PARSE_OK;
-}
-
-struct tree *parse_args3 (void) {
- PARSE_INIT (type_args3);
- PARSE_TRY_PES (parse_var_ident_opt);
- EXPECT (":");
- struct parse so = save_parse ();
- PARSE_TRY (parse_optional_arg_def);
- if (S) {
- tree_add_child (T, S);
- } else {
- load_parse (so);
- }
- if (LEX_CHAR ('!')) {
- PARSE_ADD (type_exclam);
- EXPECT ("!");
- }
- PARSE_TRY_PES (parse_type_term);
- PARSE_OK;
-}
-
-struct tree *parse_args2 (void) {
- PARSE_INIT (type_args2);
- PARSE_TRY (parse_var_ident_opt);
- if (S && LEX_CHAR (':')) {
- tree_add_child (T, S);
- EXPECT (":");
- } else {
- load_parse (save);
- }
- struct parse so = save_parse ();
- PARSE_TRY (parse_optional_arg_def);
- if (S) {
- tree_add_child (T, S);
- } else {
- load_parse (so);
- }
- struct parse save2 = save_parse ();
- PARSE_TRY (parse_multiplicity);
- if (S && LEX_CHAR ('*')) {
- tree_add_child (T, S);
- EXPECT ("*");
- } else {
- load_parse (save2);
- }
- EXPECT ("[");
- while (1) {
- if (LEX_CHAR (']')) { break; }
- PARSE_TRY_PES (parse_args);
- }
- EXPECT ("]");
- PARSE_OK;
-}
-
-struct tree *parse_args1 (void) {
- PARSE_INIT (type_args1);
- EXPECT ("(");
- while (1) {
- PARSE_TRY_PES (parse_var_ident_opt);
- if (LEX_CHAR(':')) { break; }
- }
- EXPECT (":");
- struct parse so = save_parse ();
- PARSE_TRY (parse_optional_arg_def);
- if (S) {
- tree_add_child (T, S);
- } else {
- load_parse (so);
- }
- if (LEX_CHAR ('!')) {
- PARSE_ADD (type_exclam);
- EXPECT ("!");
- }
- PARSE_TRY_PES (parse_type_term);
- EXPECT (")");
- PARSE_OK;
-}
-
-struct tree *parse_args (void) {
- PARSE_INIT (type_args);
- PARSE_TRY_OPT (parse_args1);
- PARSE_TRY_OPT (parse_args2);
- PARSE_TRY_OPT (parse_args3);
- PARSE_TRY_OPT (parse_args4);
- PARSE_FAIL;
-}
-
-struct tree *parse_opt_args (void) {
- PARSE_INIT (type_opt_args);
- while (1) {
- PARSE_TRY_PES (parse_var_ident);
- if (parse.lex.type == lex_char && *parse.lex.ptr == ':') { break;}
- }
- EXPECT (":");
- PARSE_TRY_PES (parse_type_term);
- PARSE_OK;
-}
-
-struct tree *parse_final_decl (void) {
- PARSE_INIT (type_final_decl);
- PARSE_TRY_OPT (parse_final_new);
- PARSE_TRY_OPT (parse_final_final);
- PARSE_TRY_OPT (parse_final_empty);
- PARSE_FAIL;
-}
-
-struct tree *parse_partial_app_decl (void) {
- PARSE_INIT (type_partial_app_decl);
- PARSE_TRY_OPT (parse_partial_type_app_decl);
- PARSE_TRY_OPT (parse_partial_comb_app_decl);
- PARSE_FAIL;
-}
-
-struct tree *parse_result_type (void) {
- PARSE_INIT (type_result_type);
- PARSE_TRY_PES (parse_boxed_type_ident);
- if (LEX_CHAR ('<')) {
- EXPECT ("<");
- while (1) {
- PARSE_TRY_PES (parse_expr);
- if (LEX_CHAR ('>')) { break; }
- EXPECT (",");
- }
- EXPECT (">");
- PARSE_OK;
- } else {
- while (1) {
- if (LEX_CHAR (';')) { PARSE_OK; }
- PARSE_TRY_PES (parse_subexpr);
- }
- }
-}
-
-struct tree *parse_combinator_decl (void) {
- PARSE_INIT (type_combinator_decl);
- PARSE_TRY_PES (parse_full_combinator_id)
- while (1) {
- if (LEX_CHAR ('{')) {
- parse_lex ();
- PARSE_TRY_PES (parse_opt_args);
- EXPECT ("}");
- } else {
- break;
- }
- }
- while (1) {
- if (LEX_CHAR ('=')) { break; }
- PARSE_TRY_PES (parse_args);
- }
- EXPECT ("=");
- PARSE_ADD (type_equals);
-
- PARSE_TRY_PES (parse_result_type);
- PARSE_OK;
-}
-
-struct tree *parse_builtin_combinator_decl (void) {
- PARSE_INIT (type_builtin_combinator_decl);
- PARSE_TRY_PES (parse_full_combinator_id)
- EXPECT ("?");
- EXPECT ("=");
- PARSE_TRY_PES (parse_boxed_type_ident);
- PARSE_OK;
-}
-
-struct tree *parse_declaration (void) {
- PARSE_INIT (type_declaration);
- PARSE_TRY_OPT (parse_combinator_decl);
- PARSE_TRY_OPT (parse_partial_app_decl);
- PARSE_TRY_OPT (parse_final_decl);
- PARSE_TRY_OPT (parse_builtin_combinator_decl);
- PARSE_FAIL;
-}
-
-struct tree *parse_constr_declarations (void) {
- PARSE_INIT (type_constr_declarations);
- if (parse.lex.type == lex_triple_minus || parse.lex.type == lex_eof) { PARSE_OK; }
- while (1) {
- PARSE_TRY_PES (parse_declaration);
- EXPECT (";");
- if (parse.lex.type == lex_eof || parse.lex.type == lex_triple_minus) { PARSE_OK; }
- }
-}
-
-struct tree *parse_fun_declarations (void) {
- PARSE_INIT (type_fun_declarations);
- if (parse.lex.type == lex_triple_minus || parse.lex.type == lex_eof) { PARSE_OK; }
- while (1) {
- PARSE_TRY_PES (parse_declaration);
- EXPECT (";");
- if (parse.lex.type == lex_eof || parse.lex.type == lex_triple_minus) { PARSE_OK; }
- }
-}
-
-struct tree *parse_program (void) {
- PARSE_INIT (type_tl_program);
- while (1) {
- PARSE_TRY_PES (parse_constr_declarations);
- if (parse.lex.type == lex_eof) { PARSE_OK; }
- if (parse.lex.type == lex_error || expect ("---") < 0 || expect ("functions") < 0 || expect ("---") < 0) { PARSE_FAIL; }
-
- PARSE_TRY_PES (parse_fun_declarations);
- if (parse.lex.type == lex_eof) { PARSE_OK; }
- if (parse.lex.type == lex_error || expect ("---") < 0 || expect ("types") < 0 || expect ("---") < 0) { PARSE_FAIL; }
- }
-}
-
-struct tree *tl_parse_lex (struct parse *_parse) {
- assert (_parse);
- load_parse (*_parse);
- if (parse.lex.type == lex_none) {
- parse_lex ();
- }
- if (parse.lex.type == lex_error) {
- return 0;
- }
- return parse_program ();
-}
-
-int mystrcmp2 (const char *b, int len, const char *a) {
- int c = strncmp (b, a, len);
- return c ? a[len] ? -1 : 0 : c;
-}
-
-char *mystrdup (const char *a, int len) {
- char *z = talloc (len + 1);
- memcpy (z, a, len);
- z[len] = 0;
- return z;
-}
-
-struct tl_program *tl_program_cur;
-#define TL_TRY_PES(x) if (!(x)) { return 0; }
-
-#define tl_type_cmp(a,b) (strcmp (a->id, b->id))
-DEFINE_TREE (tl_type,struct tl_type *,tl_type_cmp,0)
-struct tree_tl_type *tl_type_tree;
-
-DEFINE_TREE (tl_constructor,struct tl_constructor *,tl_type_cmp,0)
-struct tree_tl_constructor *tl_constructor_tree;
-struct tree_tl_constructor *tl_function_tree;
-
-DEFINE_TREE (tl_var,struct tl_var *,tl_type_cmp,0)
-
-struct tl_var_value {
- struct tl_combinator_tree *ptr;
- struct tl_combinator_tree *val;
- int num_val;
-};
-
-#define tl_var_value_cmp(a,b) (((char *)a.ptr) - ((char *)b.ptr))
-struct tl_var_value empty;
-DEFINE_TREE (var_value, struct tl_var_value, tl_var_value_cmp, empty)
-//tree_tl_var_t *tl_var_tree;
-
-DEFINE_TREE (tl_field,char *,strcmp, 0)
-//tree_tl_field_t *tl_field_tree;
-#define TL_FAIL return 0;
-#define TL_INIT(x) struct tl_combinator_tree *x = 0;
-#define TL_TRY(f,x) { struct tl_combinator_tree *_t = f; if (!_t) { TL_FAIL;} x = tl_union (x, _t); if (!x) { TL_FAIL; }}
-#define TL_ERROR(...) fprintf (stderr, __VA_ARGS__);
-#define TL_WARNING(...) fprintf (stderr, __VA_ARGS__);
-
-void tl_set_var_value (struct tree_var_value **T, struct tl_combinator_tree *var, struct tl_combinator_tree *value) {
- struct tl_var_value t = {.ptr = var, .val = value, .num_val = 0};
- if (tree_lookup_var_value (*T, t).ptr) {
- *T = tree_delete_var_value (*T, t);
- }
- *T = tree_insert_var_value (*T, t, lrand48 ());
-}
-
-void tl_set_var_value_num (struct tree_var_value **T, struct tl_combinator_tree *var, struct tl_combinator_tree *value, long long num_value) {
- struct tl_var_value t = {.ptr = var, .val = value, .num_val = num_value};
- if (tree_lookup_var_value (*T, t).ptr) {
- *T = tree_delete_var_value (*T, t);
- }
- *T = tree_insert_var_value (*T, t, lrand48 ());
-}
-
-struct tl_combinator_tree *tl_get_var_value (struct tree_var_value **T, struct tl_combinator_tree *var) {
- struct tl_var_value t = {.ptr = var, .val = 0, .num_val = 0};
- struct tl_var_value r = tree_lookup_var_value (*T, t);
- return r.ptr ? r.val : 0;
-}
-
-int tl_get_var_value_num (struct tree_var_value **T, struct tl_combinator_tree *var) {
- struct tl_var_value t = {.ptr = var, .val = 0};
- struct tl_var_value r = tree_lookup_var_value (*T, t);
- return r.ptr ? r.num_val : 0;
-}
-
-int namespace_level;
-
-struct tree_tl_var *vars[10];
-struct tree_tl_field *fields[10];
-struct tl_var *last_num_var[10];
-
-int tl_is_type_name (const char *id, int len) {
- if (len == 1 && *id == '#') { return 1;}
- int ok = id[0] >= 'A' && id[0] <= 'Z';
- int i;
- for (i = 0; i < len - 1; i++) if (id[i] == '.') {
- ok = id[i + 1] >= 'A' && id[i + 1] <= 'Z';
- }
- return ok;
-}
-
-int tl_add_field (char *id) {
- assert (namespace_level < 10);
- assert (namespace_level >= 0);
- if (tree_lookup_tl_field (fields[namespace_level], id)) {
- return 0;
- }
- fields[namespace_level] = tree_insert_tl_field (fields[namespace_level], id, lrand48 ());
- return 1;
-}
-
-void tl_clear_fields (void) {
-// tree_act_tl_field (fields[namespace_level], (void *)free);
- fields[namespace_level] = tree_clear_tl_field (fields[namespace_level]);
-}
-
-struct tl_var *tl_add_var (char *id, struct tl_combinator_tree *ptr, int type) {
- struct tl_var *v = talloc (sizeof (*v));
- v->id = tstrdup (id);
- v->type = type;
- v->ptr = ptr;
- v->flags = 0;
- if (tree_lookup_tl_var (vars[namespace_level], v)) {
- return 0;
- }
- vars[namespace_level] = tree_insert_tl_var (vars[namespace_level], v, lrand48 ());
- if (type) {
- last_num_var[namespace_level] = v;
- }
- return v;
-}
-
-void tl_del_var (struct tl_var *v) {
-// free (v->id);
- tfree (v, sizeof (*v));
-}
-
-void tl_clear_vars (void) {
- tree_act_tl_var (vars[namespace_level], tl_del_var);
- vars[namespace_level] = tree_clear_tl_var (vars[namespace_level]);
- last_num_var[namespace_level] = 0;
-}
-
-struct tl_var *tl_get_last_num_var (void) {
- return last_num_var[namespace_level];
-}
-
-struct tl_var *tl_get_var (char *_id, int len) {
- char *id = mystrdup (_id, len);
- struct tl_var v = {.id = id};
- int i;
- for (i = namespace_level; i >= 0; i--) {
- struct tl_var *w = tree_lookup_tl_var (vars[i], &v);
- if (w) {
- tfree (id, len + 1);
- return w;
- }
- }
- tfree (id, len + 1);
- return 0;
-}
-
-void namespace_push (void) {
- namespace_level ++;
- assert (namespace_level < 10);
- tl_clear_vars ();
- tl_clear_fields ();
-}
-
-void namespace_pop (void) {
- namespace_level --;
- assert (namespace_level >= 0);
-}
-
-struct tl_type *tl_get_type (const char *_id, int len) {
- char *id = mystrdup (_id, len);
- struct tl_type _t = {.id = id};
- struct tl_type *r = tree_lookup_tl_type (tl_type_tree, &_t);
- tfree (id, len + 1);
- return r;
-}
-
-struct tl_type *tl_add_type (const char *_id, int len, int params_num, long long params_types) {
- char *id = talloc (len + 1);
- memcpy (id, _id, len);
- id[len] = 0;
- struct tl_type _t = {.id = id};
- struct tl_type *_r = 0;
- if ((_r = tree_lookup_tl_type (tl_type_tree, &_t))) {
- tfree (id, len + 1);
- if (params_num >= 0 && (_r->params_num != params_num || _r->params_types != params_types)) {
- TL_ERROR ("Wrong params_num or types for type %s\n", _r->id);
- return 0;
- }
- return _r;
- }
- struct tl_type *t = talloc (sizeof (*t));
- t->id = id;
- t->print_id = tstrdup (t->id);
- int i;
- for (i = 0; i < len; i++) if (t->print_id[i] == '.' || t->print_id[i] == '#' || t->print_id[i] == ' ') {
- t->print_id[i] = '$';
- }
- t->name = 0;
- t->constructors_num = 0;
- t->constructors = 0;
- t->flags = 0;
- t->real_id = 0;
- if (params_num >= 0) {
- assert (params_num <= 64);
- t->params_num = params_num;
- t->params_types = params_types;
- } else {
- t->flags |= 4;
- t->params_num = -1;
- }
- tl_type_tree = tree_insert_tl_type (tl_type_tree, t, lrand48 ());
- total_types_num ++;
- return t;
-}
-
-void tl_add_type_param (struct tl_type *t, int x) {
- assert (t->flags & 4);
- assert (t->params_num <= 64);
- if (x) {
- t->params_types |= (1ull << (t->params_num ++));
- } else {
- t->params_num ++;
- }
-}
-
-int tl_type_set_params (struct tl_type *t, int x, long long y) {
- if (t->flags & 4) {
- t->params_num = x;
- t->params_types = y;
- t->flags &= ~4;
- } else {
- if (t->params_num != x || t->params_types != y) {
- fprintf (stderr, "Wrong num of params (type %s)\n", t->id);
- return 0;
- }
- }
- return 1;
-}
-
-void tl_type_finalize (struct tl_type *t) {
- t->flags &= ~4;
-}
-
-struct tl_constructor *tl_get_constructor (const char *_id, int len) {
- char *id = mystrdup (_id, len);
- struct tl_constructor _t = {.id = id};
- struct tl_constructor *r = tree_lookup_tl_constructor (tl_constructor_tree, &_t);
- tfree (id, len + 1);
- return r;
-}
-
-struct tl_constructor *tl_add_constructor (struct tl_type *a, const char *_id, int len, int force_magic) {
- assert (a);
- if (a->flags & 1) {
- TL_ERROR ("New constructor for type `%s` after final statement\n", a->id);
- return 0;
- }
- int x = 0;
- while (x < len && (_id[x] != '#' || force_magic)) { x++; }
- char *id = talloc (x + 1);
- memcpy (id, _id, x);
- id[x] = 0;
-
- unsigned magic = 0;
- if (x < len) {
- assert (len - x >= 6 && len - x <= 9);
- int i;
- for (i = 1; i < len - x; i++) {
- magic = (magic << 4) + (_id[x + i] <= '9' ? _id[x + i] - '0' : _id[x + i] - 'a' + 10);
- }
- assert (magic && magic != (unsigned)-1);
- }
-
- len = x;
- if (*id != '_') {
- struct tl_constructor _t = {.id = id};
- if (tree_lookup_tl_constructor (tl_constructor_tree, &_t)) {
- TL_ERROR ("Duplicate constructor id `%s`\n", id);
- tfree (id, len + 1);
- return 0;
- }
- } else {
- assert (len == 1);
- }
-
- struct tl_constructor *t = talloc (sizeof (*t));
- t->type = a;
- t->name = magic;
- t->id = id;
- t->print_id = tstrdup (id);
- t->real_id = 0;
-
- int i;
- for (i = 0; i < len; i++) if (t->print_id[i] == '.' || t->print_id[i] == '#' || t->print_id[i] == ' ') {
- t->print_id[i] = '$';
- }
-
- t->left = t->right = 0;
- a->constructors = realloc (a->constructors, sizeof (void *) * (a->constructors_num + 1));
- assert (a->constructors);
- a->constructors[a->constructors_num ++] = t;
- if (*id != '_') {
- tl_constructor_tree = tree_insert_tl_constructor (tl_constructor_tree, t, lrand48 ());
- } else {
- a->flags |= FLAG_DEFAULT_CONSTRUCTOR;
- }
- total_constructors_num ++;
- return t;
-}
-
-struct tl_constructor *tl_get_function (const char *_id, int len) {
- char *id = mystrdup (_id, len);
- struct tl_constructor _t = {.id = id};
- struct tl_constructor *r = tree_lookup_tl_constructor (tl_function_tree, &_t);
- tfree (id, len + 1);
- return r;
-}
-
-struct tl_constructor *tl_add_function (struct tl_type *a, const char *_id, int len, int force_magic) {
-// assert (a);
- int x = 0;
- while (x < len && ((_id[x] != '#') || force_magic)) { x++; }
- char *id = talloc (x + 1);
- memcpy (id, _id, x);
- id[x] = 0;
-
- unsigned magic = 0;
- if (x < len) {
- assert (len - x >= 6 && len - x <= 9);
- int i;
- for (i = 1; i < len - x; i++) {
- magic = (magic << 4) + (_id[x + i] <= '9' ? _id[x + i] - '0' : _id[x + i] - 'a' + 10);
- }
- assert (magic && magic != (unsigned)-1);
- }
-
- len = x;
-
- struct tl_constructor _t = {.id = id};
- if (tree_lookup_tl_constructor (tl_function_tree, &_t)) {
- TL_ERROR ("Duplicate function id `%s`\n", id);
- tfree (id, len + 1);
- return 0;
- }
-
- struct tl_constructor *t = talloc (sizeof (*t));
- t->type = a;
- t->name = magic;
- t->id = id;
- t->print_id = tstrdup (id);
- t->real_id = 0;
-
- int i;
- for (i = 0; i < len; i++) if (t->print_id[i] == '.' || t->print_id[i] == '#' || t->print_id[i] == ' ') {
- t->print_id[i] = '$';
- }
-
- t->left = t->right = 0;
- tl_function_tree = tree_insert_tl_constructor (tl_function_tree, t, lrand48 ());
- total_functions_num ++;
- return t;
-}
-
-static char buf[(1 << 20)];
-int buf_pos;
-
-struct tl_combinator_tree *alloc_ctree_node (void) {
- struct tl_combinator_tree *T = talloc (sizeof (*T));
- assert (T);
- memset (T, 0, sizeof (*T));
- return T;
-}
-
-struct tl_combinator_tree *tl_tree_dup (struct tl_combinator_tree *T) {
- if (!T) { return 0; }
- struct tl_combinator_tree *S = talloc (sizeof (*S));
- memcpy (S, T, sizeof (*S));
- S->left = tl_tree_dup (T->left);
- S->right = tl_tree_dup (T->right);
- return S;
-}
-
-struct tl_type *tl_tree_get_type (struct tl_combinator_tree *T) {
- assert (T->type == type_type);
- if (T->act == act_array) { return 0;}
- while (T->left) {
- T = T->left;
- if (T->act == act_array) { return 0;}
- assert (T->type == type_type);
- }
- assert (T->act == act_type || T->act == act_var || T->act == act_array);
- return T->act == act_type ? T->data : 0;
-}
-
-void tl_tree_set_len (struct tl_combinator_tree *T) {
- TL_INIT (H);
- H = T;
- while (H->left) {
- H->left->type_len = H->type_len + 1;
- H = H->left;
- }
- assert (H->type == type_type);
- struct tl_type *t = H->data;
- assert (t);
- assert (H->type_len == t->params_num);
-}
-
-void tl_buf_reset (void) {
- buf_pos = 0;
-}
-
-void tl_buf_add_string (char *s, int len) {
- if (len < 0) { len = strlen (s); }
- buf[buf_pos ++] = ' ';
- memcpy (buf + buf_pos, s, len); buf_pos += len;
- buf[buf_pos] = 0;
-}
-
-void tl_buf_add_string_nospace (char *s, int len) {
- if (len < 0) { len = strlen (s); }
-// if (buf_pos) { buf[buf_pos ++] = ' '; }
- memcpy (buf + buf_pos, s, len); buf_pos += len;
- buf[buf_pos] = 0;
-}
-
-void tl_buf_add_string_q (char *s, int len, int x) {
- if (x) {
- tl_buf_add_string (s, len);
- } else {
- tl_buf_add_string_nospace (s, len);
- }
-}
-
-
-void tl_buf_add_tree (struct tl_combinator_tree *T, int x) {
- if (!T) { return; }
- assert (T != (void *)-1l && T != (void *)-2l);
- switch (T->act) {
- case act_question_mark:
- tl_buf_add_string_q ("?", -1, x);
- return;
- case act_type:
- if ((T->flags & 1) && !(T->flags & 4)) {
- tl_buf_add_string_q ("%", -1, x);
- x = 0;
- }
- if (T->flags & 2) {
- tl_buf_add_string_q ((char *)T->data, -1, x);
- } else {
- struct tl_type *t = T->data;
- if (T->flags & 4) {
- assert (t->constructors_num == 1);
- tl_buf_add_string_q (t->constructors[0]->real_id ? t->constructors[0]->real_id : t->constructors[0]->id, -1, x);
- } else {
- tl_buf_add_string_q (t->real_id ? t->real_id : t->id, -1, x);
- }
- }
- return;
- case act_field:
- if (T->data) {
- tl_buf_add_string_q ((char *)T->data, -1, x);
- x = 0;
- tl_buf_add_string_q (":", -1, 0);
- }
- tl_buf_add_tree (T->left, x);
- tl_buf_add_tree (T->right, 1);
- return;
- case act_union:
- tl_buf_add_tree (T->left, x);
- tl_buf_add_tree (T->right, 1);
- return;
- case act_var:
- {
- if (T->data == (void *)-1l) { return; }
- struct tl_combinator_tree *v = T->data;
- tl_buf_add_string_q ((char *)v->data, -1, x);
- if (T->type == type_num && T->type_flags) {
- static char _buf[30];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s(_buf, 30, "+%"_PRINTF_INT64_"d", T->type_flags);
-#else
- sprintf(_buf, "+%"_PRINTF_INT64_"d", T->type_flags);
-#endif
- tl_buf_add_string_q (_buf, -1, 0);
- }
- }
- return;
- case act_arg:
- tl_buf_add_tree (T->left, x);
- tl_buf_add_tree (T->right, 1);
- return;
- case act_array:
- if (T->left && !(T->left->flags & 128)) {
- tl_buf_add_tree (T->left, x);
- x = 0;
- tl_buf_add_string_q ("*", -1, x);
- }
- tl_buf_add_string_q ("[", -1, x);
- tl_buf_add_tree (T->right, 1);
- tl_buf_add_string_q ("]", -1, 1);
- return;
- case act_plus:
- tl_buf_add_tree (T->left, x);
- tl_buf_add_string_q ("+", -1, 0);
- tl_buf_add_tree (T->right, 0);
- return;
- case act_nat_const:
- {
- static char _buf[30];
- snprintf (_buf, 29, "%"_PRINTF_INT64_"d", T->type_flags);
- tl_buf_add_string_q (_buf, -1, x);
- return;
- }
- case act_opt_field:
- {
- struct tl_combinator_tree *v = T->left->data;
- tl_buf_add_string_q ((char *)v->data, -1, x);
- tl_buf_add_string_q (".", -1, 0);
- static char _buf[30];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s(_buf, 30, "%"_PRINTF_INT64_"d", T->left->type_flags);
-#else
- sprintf(_buf, "%"_PRINTF_INT64_"d", T->left->type_flags);
-#endif
- tl_buf_add_string_q (_buf, -1, 0);
- tl_buf_add_string_q ("?", -1, 0);
- tl_buf_add_tree (T->right, 0);
- return;
- }
-
- default:
- fprintf (stderr, "%s %s\n", TL_ACT (T->act), TL_TYPE (T->type));
- assert (0);
- return;
- }
-}
-
-int tl_count_combinator_name (struct tl_constructor *c) {
- assert (c);
- tl_buf_reset ();
- tl_buf_add_string_nospace (c->real_id ? c->real_id : c->id, -1);
- tl_buf_add_tree (c->left, 1);
- tl_buf_add_string ("=", -1);
- tl_buf_add_tree (c->right, 1);
- //fprintf (stderr, "%.*s\n", buf_pos, buf);
- if (!c->name) {
- c->name = crc32 (CRC32_INITIAL, (void *) buf, buf_pos);
- }
- return c->name;
-}
-
-int tl_print_combinator (struct tl_constructor *c) {
- tl_buf_reset ();
- tl_buf_add_string_nospace (c->real_id ? c->real_id : c->id, -1);
- static char _buf[10];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s(_buf, 10, "#%08x", c->name);
-#else
- sprintf(_buf, "#%08x", c->name);
-#endif
- tl_buf_add_string_nospace (_buf, -1);
- tl_buf_add_tree (c->left, 1);
- tl_buf_add_string ("=", -1);
- tl_buf_add_tree (c->right, 1);
- if (output_expressions >= 1) {
- fprintf (stderr, "%.*s\n", buf_pos, buf);
- }
-/* if (!c->name) {
- c->name = crc32 (CRC32_INITIAL, (void *) bbuf, buf_pos);
- }*/
- return c->name;
-}
-
-int _tl_finish_subtree (struct tl_combinator_tree *R, int x, long long y) {
- assert (R->type == type_type);
- assert (R->type_len < 0);
- assert (R->act == act_arg || R->act == act_type);
- R->type_len = x;
- R->type_flags = y;
- if (R->act == act_type) {
- struct tl_type *t = R->data;
- assert (t);
- return tl_type_set_params (t, x, y);
- }
- assert ((R->right->type == type_type && R->right->type_len == 0) || R->right->type == type_num || R->right->type == type_num_value);
- return _tl_finish_subtree (R->left, x + 1, y * 2 + (R->right->type == type_num || R->right->type == type_num_value));
-}
-
-int tl_finish_subtree (struct tl_combinator_tree *R) {
- assert (R);
- if (R->type != type_type) {
- return 1;
- }
- if (R->type_len >= 0) {
- if (R->type_len > 0) {
- TL_ERROR ("Not enough params\n");
- return 0;
- }
- return 1;
- }
- return _tl_finish_subtree (R, 0, 0);
-}
-
-struct tl_combinator_tree *tl_union (struct tl_combinator_tree *L, struct tl_combinator_tree *R) {
- if (!L) { return R; }
- if (!R) { return L; }
- TL_INIT (v);
- v = alloc_ctree_node ();
- v->left = L;
- v->right = R;
- switch (L->type) {
- case type_num:
- if (R->type != type_num_value) {
- TL_ERROR ("Union: type mistmatch\n");
- return 0;
- }
- tfree (v, sizeof (*v));
- L->type_flags += R->type_flags;
- return L;
- case type_num_value:
- if (R->type != type_num_value && R->type != type_num) {
- TL_ERROR ("Union: type mistmatch\n");
- return 0;
- }
- tfree (v, sizeof (*v));
- R->type_flags += L->type_flags;
- return R;
- case type_list_item:
- case type_list:
- if (R->type != type_list_item) {
- TL_ERROR ("Union: type mistmatch\n");
- return 0;
- }
- v->type = type_list;
- v->act = act_union;
- return v;
- case type_type:
- if (L->type_len == 0) {
- TL_ERROR ("Arguments number exceeds type arity\n");
- return 0;
- }
- if (R->type != type_num && R->type != type_type && R->type != type_num_value) {
- TL_ERROR ("Union: type mistmatch\n");
- return 0;
- }
- if (R->type_len < 0) {
- if (!tl_finish_subtree (R)) {
- return 0;
- }
- }
- if (R->type_len > 0) {
- TL_ERROR ("Argument type must have full number of arguments\n");
- return 0;
- }
- if (L->type_len > 0 && ((L->type_flags & 1) != (R->type == type_num || R->type == type_num_value))) {
- TL_ERROR ("Argument types mistmatch: L->type_flags = %"_PRINTF_INT64_"d, R->type = %s\n", L->flags, TL_TYPE (R->type));
- return 0;
- }
- v->type = type_type;
- v->act = act_arg;
- v->type_len = L->type_len > 0 ? L->type_len - 1 : -1;
- v->type_flags = L->type_flags >> 1;
- return v;
- default:
- assert (0);
- return 0;
- }
-}
-
-struct tl_combinator_tree *tl_parse_any_term (struct tree *T, int s);
-struct tl_combinator_tree *tl_parse_term (struct tree *T, int s) {
- assert (T->type == type_term);
- int i = 0;
- while (i < T->nc && T->c[i]->type == type_percent) { i ++; s ++; }
- assert (i < T->nc);
- TL_INIT (L);
- while (i < T->nc) {
- TL_TRY (tl_parse_any_term (T->c[i], s), L);
- s = 0;
- i ++;
- }
- return L;
-}
-
-
-struct tl_combinator_tree *tl_parse_type_term (struct tree *T, int s) {
- assert (T->type == type_type_term);
- assert (T->nc == 1);
- struct tl_combinator_tree *Z = tl_parse_term (T->c[0], s);
- if (!Z || Z->type != type_type) { if (Z) { TL_ERROR ("type_term: found type %s\n", TL_TYPE (Z->type)); } TL_FAIL; }
- return Z;
-}
-
-struct tl_combinator_tree *tl_parse_nat_term (struct tree *T, int s) {
- assert (T->type == type_nat_term);
- assert (T->nc == 1);
- struct tl_combinator_tree *Z = tl_parse_term (T->c[0], s);
- if (!Z || (Z->type != type_num && Z->type != type_num_value)) { if (Z) { TL_ERROR ("nat_term: found type %s\n", TL_TYPE (Z->type)); }TL_FAIL; }
- return Z;
-}
-
-struct tl_combinator_tree *tl_parse_subexpr (struct tree *T, int s) {
- assert (T->type == type_subexpr);
- assert (T->nc >= 1);
- int i;
- TL_INIT (L);
- for (i = 0; i < T->nc; i++) {
- TL_TRY (tl_parse_any_term (T->c[i], s), L);
- s = 0;
- }
- return L;
-}
-
-struct tl_combinator_tree *tl_parse_expr (struct tree *T, int s) {
- assert (T->type == type_expr);
- assert (T->nc >= 1);
- int i;
- TL_INIT (L);
- for (i = 0; i < T->nc; i++) {
- TL_TRY (tl_parse_subexpr (T->c[i], s), L);
- s = 0;
- }
- return L;
-}
-
-struct tl_combinator_tree *tl_parse_nat_const (struct tree *T, int s) {
- assert (T->type == type_nat_const);
- assert (!T->nc);
- if (s > 0) {
- TL_ERROR ("Nat const can not preceed with %%\n");
- TL_FAIL;
- }
- assert (T->type == type_nat_const);
- assert (!T->nc);
- TL_INIT (L);
- L = alloc_ctree_node ();
- L->act = act_nat_const;
- L->type = type_num_value;
- int i;
- long long x = 0;
- for (i = 0; i < T->len; i++) {
- x = x * 10 + T->text[i] - '0';
- }
- L->type_flags = x;
- return L;
-}
-
-struct tl_combinator_tree *tl_parse_ident (struct tree *T, int s) {
- assert (T->type == type_type_ident || T->type == type_var_ident || T->type == type_boxed_type_ident);
- assert (!T->nc);
- struct tl_var *v = tl_get_var (T->text, T->len);
- TL_INIT (L);
- if (v) {
- L = alloc_ctree_node ();
- L->act = act_var;
- L->type = v->type ? type_num : type_type;
- if (L->type == type_num && s) {
- TL_ERROR ("Nat var can not preceed with %%\n");
- TL_FAIL;
- } else {
- if (s) {
- L->flags |= 1;
- }
- }
- L->type_len = 0;
- L->type_flags = 0;
- L->data = v->ptr;
- return L;
- }
-
-/* if (!mystrcmp2 (T->text, T->len, "#") || !mystrcmp2 (T->text, T->len, "Type")) {
- L = alloc_ctree_node ();
- L->act = act_type;
- L->flags |= 2;
- L->data = tl_get_type (T->text, T->len);
- assert (L->data);
- L->type = type_type;
- L->type_len = 0;
- L->type_flags = 0;
- return L;
- }*/
-
- struct tl_constructor *c = tl_get_constructor (T->text, T->len);
- if (c) {
- assert (c->type);
- if (c->type->constructors_num != 1) {
- TL_ERROR ("Constructor can be used only if it is the only constructor of the type\n");
- return 0;
- }
- c->type->flags |= 1;
- L = alloc_ctree_node ();
- L->act = act_type;
- L->flags |= 5;
- L->data = c->type;
- L->type = type_type;
- L->type_len = c->type->params_num;
- L->type_flags = c->type->params_types;
- return L;
- }
- int x = tl_is_type_name (T->text, T->len);
- if (x) {
- struct tl_type *t = tl_add_type (T->text, T->len, -1, 0);
- L = alloc_ctree_node ();
- if (s) {
- L->flags |= 1;
- t->flags |= 8;
- }
- L->act = act_type;
- L->data = t;
- L->type = type_type;
- L->type_len = t->params_num;
- L->type_flags = t->params_types;
- return L;
- } else {
- TL_ERROR ("Not a type/var ident `%.*s`\n", T->len, T->text);
- return 0;
- }
-}
-
-struct tl_combinator_tree *tl_parse_any_term (struct tree *T, int s) {
- switch (T->type) {
- case type_type_term:
- return tl_parse_type_term (T, s);
- case type_nat_term:
- return tl_parse_nat_term (T, s);
- case type_term:
- return tl_parse_term (T, s);
- case type_expr:
- return tl_parse_expr (T, s);
- case type_subexpr:
- return tl_parse_subexpr (T, s);
- case type_nat_const:
- return tl_parse_nat_const (T, s);
- case type_type_ident:
- case type_var_ident:
- return tl_parse_ident (T, s);
- default:
- fprintf (stderr, "type = %d\n", T->type);
- assert (0);
- return 0;
- }
-}
-
-struct tl_combinator_tree *tl_parse_multiplicity (struct tree *T) {
- assert (T->type == type_multiplicity);
- assert (T->nc == 1);
- return tl_parse_nat_term (T->c[0], 0);
-}
-
-struct tl_combinator_tree *tl_parse_opt_args (struct tree *T) {
- assert (T);
- assert (T->type == type_opt_args);
- assert (T->nc >= 2);
- TL_INIT (R);
- TL_TRY (tl_parse_type_term (T->c[T->nc - 1], 0), R);
- assert (R->type == type_type && !R->type_len);
- assert (tl_finish_subtree (R));
- struct tl_type *t = tl_tree_get_type (R);
- //assert (t);
- int tt = -1;
- if (t && !strcmp (t->id, "#")) {
- tt = 1;
- } else if (t && !strcmp (t->id, "Type")) {
- tt = 0;
- }
- if (tt < 0) {
- TL_ERROR ("Optargs can be only of type # or Type\n");
- TL_FAIL;
- }
-
- int i;
- for (i = 0; i < T->nc - 1; i++) {
- if (T->c[i]->type != type_var_ident) {
- TL_ERROR ("Variable name expected\n");
- TL_FAIL;
- }
- if (T->c[i]->len == 1 && *T->c[i]->text == '_') {
- TL_ERROR ("Variables can not be unnamed\n");
- TL_FAIL;
- }
- }
- TL_INIT (H);
-// for (i = T->nc - 2; i >= (T->nc >= 2 ? 0 : -1); i--) {
- for (i = 0; i <= T->nc - 2; i++) {
- TL_INIT (S); S = alloc_ctree_node ();
- S->left = (i == T->nc - 2) ? R : tl_tree_dup (R) ; S->right = 0;
- S->type = type_list_item;
- S->type_len = 0;
- S->act = act_field;
- S->data = i >= 0 ? mystrdup (T->c[i]->text, T->c[i]->len) : 0;
- if (tt >= 0) {
- assert (S->data);
- tl_add_var (S->data, S, tt);
- }
- S->flags = 33;
- H = tl_union (H, S);
- }
- return H;
-}
-
-struct tl_combinator_tree *tl_parse_args (struct tree *T);
-struct tl_combinator_tree *tl_parse_args2 (struct tree *T) {
- assert (T);
- assert (T->type == type_args2);
- assert (T->nc >= 1);
- TL_INIT (R);
- TL_INIT (L);
- int x = 0;
- char *field_name = 0;
- if (T->c[x]->type == type_var_ident_opt || T->c[x]->type == type_var_ident) {
- field_name = mystrdup (T->c[x]->text, T->c[x]->len);
- if (!tl_add_field (field_name)) {
- TL_ERROR ("Duplicate field name %s\n", field_name);
- TL_FAIL;
- }
- x ++;
- }
- //fprintf (stderr, "%d %d\n", x, T->nc);
- if (T->c[x]->type == type_multiplicity) {
- L = tl_parse_multiplicity (T->c[x]);
- if (!L) { TL_FAIL;}
- x ++;
- } else {
- struct tl_var *v = tl_get_last_num_var ();
- if (!v) {
- TL_ERROR ("Expected multiplicity or nat var\n");
- TL_FAIL;
- }
- L = alloc_ctree_node ();
- L->act = act_var;
- L->type = type_num;
- L->flags |= 128;
- L->type_len = 0;
- L->type_flags = 0;
- L->data = v->ptr;
- ((struct tl_combinator_tree *)(v->ptr))->flags |= 256;
- }
- namespace_push ();
- while (x < T->nc) {
- TL_TRY (tl_parse_args (T->c[x]), R);
- x ++;
- }
- namespace_pop ();
- struct tl_combinator_tree *S = alloc_ctree_node ();
- S->type = type_type;
- S->type_len = 0;
- S->act = act_array;
- S->left = L;
- S->right = R;
- //S->data = field_name;
-
- struct tl_combinator_tree *H = alloc_ctree_node ();
- H->type = type_list_item;
- H->act = act_field;
- H->left = S;
- H->right = 0;
- H->data = field_name;
- H->type_len = 0;
-
- return H;
-}
-
-void tl_mark_vars (struct tl_combinator_tree *T);
-struct tl_combinator_tree *tl_parse_args134 (struct tree *T) {
- assert (T);
- assert (T->type == type_args1 || T->type == type_args3 || T->type == type_args4);
- assert (T->nc >= 1);
- TL_INIT (R);
- TL_TRY (tl_parse_type_term (T->c[T->nc - 1], 0), R);
- assert (tl_finish_subtree (R));
- assert (R->type == type_type && !R->type_len);
- struct tl_type *t = tl_tree_get_type (R);
- //assert (t);
- int tt = -1;
- if (t && !strcmp (t->id, "#")) {
- tt = 1;
- } else if (t && !strcmp (t->id, "Type")) {
- tt = 0;
- }
-
-/* if (tt >= 0 && T->nc == 1) {
- TL_ERROR ("Variables can not be unnamed (type %d)\n", tt);
- }*/
- int last = T->nc - 2;
- int excl = 0;
- if (last >= 0 && T->c[last]->type == type_exclam) {
- excl ++;
- tl_mark_vars (R);
- last --;
- }
- if (last >= 0 && T->c[last]->type == type_optional_arg_def) {
- assert (T->c[last]->nc == 2);
- TL_INIT (E); E = alloc_ctree_node ();
- E->type = type_type;
- E->act = act_opt_field;
- E->left = tl_parse_ident (T->c[last]->c[0], 0);
- int i;
- long long x = 0;
- for (i = 0; i < T->c[last]->c[1]->len; i++) {
- x = x * 10 + T->c[last]->c[1]->text[i] - '0';
- }
- E->left->type_flags = x;
- E->type_flags = R->type_flags;
- E->type_len = R->type_len;
- E->right = R;
- R = E;
- last --;
- }
- int i;
- for (i = 0; i < last; i++) {
- if (T->c[i]->type != type_var_ident && T->c[i]->type != type_var_ident_opt) {
- TL_ERROR ("Variable name expected\n");
- TL_FAIL;
- }
-/* if (tt >= 0 && (T->nc == 1 || (T->c[i]->len == 1 && *T->c[i]->text == '_'))) {
- TL_ERROR ("Variables can not be unnamed\n");
- TL_FAIL;
- }*/
- }
- TL_INIT (H);
-// for (i = T->nc - 2; i >= (T->nc >= 2 ? 0 : -1); i--) {
- for (i = (last >= 0 ? 0 : -1); i <= last; i++) {
- TL_INIT (S); S = alloc_ctree_node ();
- S->left = (i == last) ? R : tl_tree_dup (R) ; S->right = 0;
- S->type = type_list_item;
- S->type_len = 0;
- S->act = act_field;
- S->data = i >= 0 ? mystrdup (T->c[i]->text, T->c[i]->len) : 0;
- if (excl) {
- S->flags |= FLAG_EXCL;
- }
- if (S->data && (T->c[i]->len >= 2 || *T->c[i]->text != '_')) {
- if (!tl_add_field (S->data)) {
- TL_ERROR ("Duplicate field name %s\n", (char *)S->data);
- TL_FAIL;
- }
- }
- if (tt >= 0) {
- //assert (S->data);
- char *name = S->data;
- if (!name) {
- static char s[20];
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- sprintf_s(s, 20, "%"_PRINTF_INT64_"d", lrand48() * (1ll << 32) + lrand48());
-#else
- sprintf(s, "%"_PRINTF_INT64_"d", lrand48() * (1ll << 32) + lrand48());
-#endif
- name = s;
- }
- struct tl_var *v = tl_add_var (name, S, tt);
- if (!v) {TL_FAIL;}
- v->flags |= 2;
- }
-
- H = tl_union (H, S);
- }
- return H;
-}
-
-
-struct tl_combinator_tree *tl_parse_args (struct tree *T) {
- assert (T->type == type_args);
- assert (T->nc == 1);
- switch (T->c[0]->type) {
- case type_args1:
- return tl_parse_args134 (T->c[0]);
- case type_args2:
- return tl_parse_args2 (T->c[0]);
- case type_args3:
- return tl_parse_args134 (T->c[0]);
- case type_args4:
- return tl_parse_args134 (T->c[0]);
- default:
- assert (0);
- return 0;
- }
-}
-
-void tl_mark_vars (struct tl_combinator_tree *T) {
- if (!T) { return; }
- if (T->act == act_var) {
- char *id = ((struct tl_combinator_tree *)(T->data))->data;
- struct tl_var *v = tl_get_var (id, strlen (id));
- assert (v);
- v->flags |= 1;
- }
- tl_mark_vars (T->left);
- tl_mark_vars (T->right);
-}
-
-struct tl_combinator_tree *tl_parse_result_type (struct tree *T) {
- assert (T->type == type_result_type);
- assert (T->nc >= 1);
- assert (T->nc <= 64);
-
- TL_INIT (L);
-
- if (tl_get_var (T->c[0]->text, T->c[0]->len)) {
- if (T->nc != 1) {
- TL_ERROR ("Variable can not take params\n");
- TL_FAIL;
- }
- L = alloc_ctree_node ();
- L->act = act_var;
- L->type = type_type;
- struct tl_var *v = tl_get_var (T->c[0]->text, T->c[0]->len);
- if (v->type) {
- TL_ERROR ("Type mistmatch\n");
- TL_FAIL;
- }
- L->data = v->ptr;
-// assert (v->ptr);
- } else {
- L = alloc_ctree_node ();
- L->act = act_type;
- L->type = type_type;
- struct tl_type *t = tl_add_type (T->c[0]->text, T->c[0]->len, -1, 0);
- assert (t);
- L->type_len = t->params_num;
- L->type_flags = t->params_types;
- L->data = t;
-
- int i;
- for (i = 1; i < T->nc; i++) {
- TL_TRY (tl_parse_any_term (T->c[i], 0), L);
- assert (L->right);
- assert (L->right->type == type_num || L->right->type == type_num_value || (L->right->type == type_type && L->right->type_len == 0));
- }
- }
-
- if (!tl_finish_subtree (L)) {
- TL_FAIL;
- }
-
- tl_mark_vars (L);
- return L;
-}
-
-int __ok;
-void tl_var_check_used (struct tl_var *v) {
- __ok = __ok && (v->flags & 3);
-}
-
-int tl_parse_combinator_decl (struct tree *T, int fun) {
- assert (T->type == type_combinator_decl);
- assert (T->nc >= 3);
- namespace_level = 0;
- tl_clear_vars ();
- tl_clear_fields ();
- TL_INIT (L);
- TL_INIT (R);
-
- int i = 1;
- while (i < T->nc - 2 && T->c[i]->type == type_opt_args) {
- TL_TRY (tl_parse_opt_args (T->c[i]), L);
- i++;
- }
- while (i < T->nc - 2 && T->c[i]->type == type_args) {
- TL_TRY (tl_parse_args (T->c[i]), L);
- i++;
- }
- assert (i == T->nc - 2 && T->c[i]->type == type_equals);
- i ++;
-
- R = tl_parse_result_type (T->c[i]);
- if (!R) { TL_FAIL; }
-
- struct tl_type *t = tl_tree_get_type (R);
- if (!fun && !t) {
- TL_ERROR ("Only functions can return variables\n");
- }
- assert (t || fun);
-
- assert (namespace_level == 0);
- __ok = 1;
- tree_act_tl_var (vars[0], tl_var_check_used);
- if (!__ok) {
- TL_ERROR ("Not all variables are used in right side\n");
- TL_FAIL;
- }
-
- if (tl_get_constructor (T->c[0]->text, T->c[0]->len) || tl_get_function (T->c[0]->text, T->c[0]->len)) {
- TL_ERROR ("Duplicate combinator id %.*s\n", T->c[0]->len, T->c[0]->text);
- return 0;
- }
- struct tl_constructor *c = !fun ? tl_add_constructor (t, T->c[0]->text, T->c[0]->len, 0) : tl_add_function (t, T->c[0]->text, T->c[0]->len, 0);
- if (!c) { TL_FAIL; }
- c->left = L;
- c->right = R;
-
- if (!c->name) {
- tl_count_combinator_name (c);
- }
- tl_print_combinator (c);
-
- return 1;
-}
-
-void change_var_ptrs (struct tl_combinator_tree *O, struct tl_combinator_tree *D, struct tree_var_value **V) {
- if (!O || !D) {
- assert (!O && !D);
- return;
- }
- if (O->act == act_field) {
- struct tl_type *t = tl_tree_get_type (O->left);
- if (t && (!strcmp (t->id, "#") || !strcmp (t->id, "Type"))) {
- tl_set_var_value (V, O, D);
- }
- }
- if (O->act == act_var) {
- assert (D->data == O->data);
- D->data = tl_get_var_value (V, O->data);
- assert (D->data);
- }
- change_var_ptrs (O->left, D->left, V);
- change_var_ptrs (O->right, D->right, V);
-}
-
-struct tl_combinator_tree *change_first_var (struct tl_combinator_tree *O, struct tl_combinator_tree **X, struct tl_combinator_tree *Y) {
- if (!O) { return (void *)-2l; };
- if (O->act == act_field && !*X) {
- struct tl_type *t = tl_tree_get_type (O->left);
- if (t && !strcmp (t->id, "#")) {
- if (Y->type != type_num && Y->type != type_num_value) {
- TL_ERROR ("change_var: Type mistmatch\n");
- return 0;
- } else {
- *X = O;
- return (void *)-1l;
- }
- }
- if (t && !strcmp (t->id, "Type")) {
- if (Y->type != type_type || Y->type_len != 0) {
- TL_ERROR ("change_var: Type mistmatch\n");
- return 0;
- } else {
- *X = O;
- return (void *)-1l;
- }
- }
- }
- if (O->act == act_var) {
- if (O->data == *X) {
- struct tl_combinator_tree *R = tl_tree_dup (Y);
- if (O->type == type_num || O->type == type_num_value) { R->type_flags += O->type_flags; }
- return R;
- }
- }
- struct tl_combinator_tree *t;
- t = change_first_var (O->left, X, Y);
- if (!t) { return 0;}
- if (t == (void *)-1l) {
- t = change_first_var (O->right, X, Y);
- if (!t) { return 0;}
- if (t == (void *)-1l) { return (void *)-1l; }
- if (t != (void *)-2l) { return t;}
- return (void *)-1l;
- }
- if (t != (void *)-2l) {
- O->left = t;
- }
- t = change_first_var (O->right, X, Y);
- if (!t) { return 0;}
- if (t == (void *)-1l) {
- return O->left;
- }
- if (t != (void *)-2l) {
- O->right = t;
- }
- return O;
-}
-
-
-int uniformize (struct tl_combinator_tree *L, struct tl_combinator_tree *R, struct tree_var_value **T);
-struct tree_var_value **_T;
-int __tok;
-void check_nat_val (struct tl_var_value v) {
- if (!__tok) { return; }
- long long x = v.num_val;
- struct tl_combinator_tree *L = v.val;
- if (L->type == type_type) { return;}
- while (1) {
- if (L->type == type_num_value) {
- if (x + L->type_flags < 0) {
- __tok = 0;
- return;
- } else {
- return;
- }
- }
- assert (L->type == type_num);
- x += L->type_flags;
- x += tl_get_var_value_num (_T, L->data);
- L = tl_get_var_value (_T, L->data);
- if (!L) { return;}
- }
-}
-
-int check_constructors_equal (struct tl_combinator_tree *L, struct tl_combinator_tree *R, struct tree_var_value **T) {
- if (!uniformize (L, R, T)) { return 0; }
- __tok = 1;
- _T = T;
- tree_act_var_value (*T, check_nat_val);
- return __tok;
-}
-
-struct tl_combinator_tree *reduce_type (struct tl_combinator_tree *A, struct tl_type *t) {
- assert (A);
- if (A->type_len == t->params_num) {
- assert (A->type_flags == t->params_types);
- A->act = act_type;
- A->type = type_type;
- A->left = A->right = 0;
- A->data = t;
- return A;
- }
- A->left = reduce_type (A->left, t);
- return A;
-}
-
-struct tl_combinator_tree *change_value_var (struct tl_combinator_tree *O, struct tree_var_value **X) {
- if (!O) { return (void *)-2l; };
- while (O->act == act_var) {
- assert (O->data);
- if (!tl_get_var_value (X, O->data)) {
- break;
- }
- if (O->type == type_type) {
- O = tl_tree_dup (tl_get_var_value (X, O->data));
- } else {
- long long n = tl_get_var_value_num (X, O->data);
- struct tl_combinator_tree *T = tl_get_var_value (X, O->data);
- O->data = T->data;
- O->type = T->type;
- O->act = T->act;
- O->type_flags = O->type_flags + n + T->type_flags;
- }
- }
- if (O->act == act_field) {
- if (tl_get_var_value (X, O)) { return (void *)-1l; }
- }
- struct tl_combinator_tree *t;
- t = change_value_var (O->left, X);
- if (!t) { return 0;}
- if (t == (void *)-1l) {
- t = change_value_var (O->right, X);
- if (!t) { return 0;}
- if (t == (void *)-1l) { return (void *)-1l; }
- if (t != (void *)-2l) { return t;}
- return (void *)-1l;
- }
- if (t != (void *)-2l) {
- O->left = t;
- }
- t = change_value_var (O->right, X);
- if (!t) { return 0;}
- if (t == (void *)-1l) {
- return O->left;
- }
- if (t != (void *)-2l) {
- O->right = t;
- }
- return O;
-}
-
-int tl_parse_partial_type_app_decl (struct tree *T) {
- assert (T->type == type_partial_type_app_decl);
- assert (T->nc >= 1);
-
- assert (T->c[0]->type == type_boxed_type_ident);
- struct tl_type *t = tl_get_type (T->c[0]->text, T->c[0]->len);
- if (!t) {
- TL_ERROR ("Can not make partial app for unknown type\n");
- return 0;
- }
-
- tl_type_finalize (t);
-
- struct tl_combinator_tree *L = tl_parse_ident (T->c[0], 0);
- assert (L);
- int i;
- tl_buf_reset ();
- int cc = T->nc - 1;
- for (i = 1; i < T->nc; i++) {
- TL_TRY (tl_parse_any_term (T->c[i], 0), L);
- tl_buf_add_tree (L->right, 1);
- }
-
- while (L->type_len) {
- struct tl_combinator_tree *C = alloc_ctree_node ();
- C->act = act_var;
- C->type = (L->type_flags & 1) ? type_num : type_type;
- C->type_len = 0;
- C->type_flags = 0;
- C->data = (void *)-1l;
- L = tl_union (L, C);
- if (!L) { return 0; }
- }
-
-
- static char _buf[100000];
- snprintf (_buf, 100000, "%s%.*s", t->id, buf_pos, buf);
- struct tl_type *nt = tl_add_type (_buf, strlen (_buf), t->params_num - cc, t->params_types >> cc);
- assert (nt);
- //snprintf (_buf, 100000, "%s #", t->id);
- //nt->real_id = strdup (_buf);
-
- for (i = 0; i < t->constructors_num; i++) {
- struct tl_constructor *c = t->constructors[i];
- struct tree_var_value *V = 0;
- TL_INIT (A);
- TL_INIT (B);
- A = tl_tree_dup (c->left);
- B = tl_tree_dup (c->right);
-
- struct tree_var_value *W = 0;
- change_var_ptrs (c->left, A, &W);
- change_var_ptrs (c->right, B, &W);
-
-
- if (!check_constructors_equal (B, L, &V)) { continue; }
- B = reduce_type (B, nt);
- A = change_value_var (A, &V);
- if (A == (void *)-1l) { A = 0;}
- B = change_value_var (B, &V);
- assert (B != (void *)-1l);
- snprintf (_buf, 100000, "%s%.*s", c->id, buf_pos, buf);
-
- struct tl_constructor *r = tl_add_constructor (nt, _buf, strlen (_buf), 1);
- snprintf (_buf, 100000, "%s", c->id);
- r->real_id = tstrdup (_buf);
-
- r->left = A;
- r->right = B;
- if (!r->name) {
- tl_count_combinator_name (r);
- }
- tl_print_combinator (r);
- }
-
- return 1;
-}
-
-int tl_parse_partial_comb_app_decl (struct tree *T, int fun) {
- assert (T->type == type_partial_comb_app_decl);
-
- struct tl_constructor *c = !fun ? tl_get_constructor (T->c[0]->text, T->c[0]->len) : tl_get_function (T->c[0]->text, T->c[0]->len);
- if (!c) {
- TL_ERROR ("Can not make partial app for undefined combinator\n");
- return 0;
- }
-
- //TL_INIT (K);
- //static char buf[1000];
- //int x = sprintf (buf, "%s", c->id);
- TL_INIT (L);
- TL_INIT (R);
- L = tl_tree_dup (c->left);
- R = tl_tree_dup (c->right);
-
-
- struct tree_var_value *V = 0;
- change_var_ptrs (c->left, L, &V);
- change_var_ptrs (c->right, R, &V);
- V = tree_clear_var_value (V);
-
- int i;
- tl_buf_reset ();
- for (i = 1; i < T->nc; i++) {
- TL_INIT (X);
- TL_INIT (Z);
- X = tl_parse_any_term (T->c[i], 0);
- struct tl_combinator_tree *K = 0;
- if (!(Z = change_first_var (L, &K, X))) {
- TL_FAIL;
- }
- L = Z;
- if (!K) {
- TL_ERROR ("Partial app: not enougth variables (i = %d)\n", i);
- TL_FAIL;
- }
- if (!(Z = change_first_var (R, &K, X))) {
- TL_FAIL;
- }
- assert (Z == R);
- tl_buf_add_tree (X, 1);
- }
-
- static char _buf[100000];
- snprintf (_buf, 100000, "%s%.*s", c->id, buf_pos, buf);
-// fprintf (stderr, "Local id: %s\n", _buf);
-
- struct tl_constructor *r = !fun ? tl_add_constructor (c->type, _buf, strlen (_buf), 1) : tl_add_function (c->type, _buf, strlen (_buf), 1);
- r->left = L;
- r->right = R;
- snprintf (_buf, 100000, "%s", c->id);
- r->real_id = tstrdup (_buf);
- if (!r->name) {
- tl_count_combinator_name (r);
- }
- tl_print_combinator (r);
- return 1;
-}
-
-
-int tl_parse_partial_app_decl (struct tree *T, int fun) {
- assert (T->type == type_partial_app_decl);
- assert (T->nc == 1);
- if (T->c[0]->type == type_partial_comb_app_decl) {
- return tl_parse_partial_comb_app_decl (T->c[0], fun);
- } else {
- if (fun) {
- TL_ERROR ("Partial type app in functions block\n");
- TL_FAIL;
- }
- return tl_parse_partial_type_app_decl (T->c[0]);
- }
-}
-
-int tl_parse_final_final (struct tree *T) {
- assert (T->type == type_final_final);
- assert (T->nc == 1);
- struct tl_type *R;
- if ((R = tl_get_type (T->c[0]->text, T->c[0]->len))) {
- R->flags |= 1;
- return 1;
- } else {
- TL_ERROR ("Final statement for type `%.*s` before declaration\n", T->c[0]->len, T->c[0]->text);
- TL_FAIL;
- }
-}
-
-int tl_parse_final_new (struct tree *T) {
- assert (T->type == type_final_new);
- assert (T->nc == 1);
- if (tl_get_type (T->c[0]->text, T->c[0]->len)) {
- TL_ERROR ("New statement: type `%.*s` already declared\n", T->c[0]->len, T->c[0]->text);
- TL_FAIL;
- } else {
- return 1;
- }
-}
-
-int tl_parse_final_empty (struct tree *T) {
- assert (T->type == type_final_empty);
- assert (T->nc == 1);
- if (tl_get_type (T->c[0]->text, T->c[0]->len)) {
- TL_ERROR ("New statement: type `%.*s` already declared\n", T->c[0]->len, T->c[0]->text);
- TL_FAIL;
- }
- struct tl_type *t = tl_add_type (T->c[0]->text, T->c[0]->len, 0, 0);
- assert (t);
- t->flags |= 1 | FLAG_EMPTY;
- return 1;
-}
-
-int tl_parse_final_decl (struct tree *T, int fun) {
- assert (T->type == type_final_decl);
- assert (!fun);
- assert (T->nc == 1);
- switch (T->c[0]->type) {
- case type_final_new:
- return tl_parse_final_new (T->c[0]);
- case type_final_final:
- return tl_parse_final_final (T->c[0]);
- case type_final_empty:
- return tl_parse_final_empty (T->c[0]);
- default:
- assert (0);
- return 0;
- }
-}
-
-int tl_parse_builtin_combinator_decl (struct tree *T, int fun) {
- if (fun) {
- TL_ERROR ("Builtin type can not be described in function block\n");
- return -1;
- }
- assert (T->type == type_builtin_combinator_decl);
- assert (T->nc == 2);
- assert (T->c[0]->type == type_full_combinator_id);
- assert (T->c[1]->type == type_boxed_type_ident);
-
-
- if ((!mystrcmp2 (T->c[0]->text, T->c[0]->len, "int") && !mystrcmp2 (T->c[1]->text, T->c[1]->len, "Int")) ||
- (!mystrcmp2 (T->c[0]->text, T->c[0]->len, "long") && !mystrcmp2 (T->c[1]->text, T->c[1]->len, "Long")) ||
- (!mystrcmp2 (T->c[0]->text, T->c[0]->len, "double") && !mystrcmp2 (T->c[1]->text, T->c[1]->len, "Double")) ||
- (!mystrcmp2 (T->c[0]->text, T->c[0]->len, "string") && !mystrcmp2 (T->c[1]->text, T->c[1]->len, "String"))) {
- struct tl_type *t = tl_add_type (T->c[1]->text, T->c[1]->len, 0, 0);
- if (!t) {
- return 0;
- }
- struct tl_constructor *c = tl_add_constructor (t, T->c[0]->text, T->c[0]->len, 0);
- if (!c) {
- return 0;
- }
-
- c->left = alloc_ctree_node ();
- c->left->act = act_question_mark;
- c->left->type = type_list_item;
-
- c->right = alloc_ctree_node ();
- c->right->act = act_type;
- c->right->data = t;
- c->right->type = type_type;
-
- if (!c->name) {
- tl_count_combinator_name (c);
- }
- tl_print_combinator (c);
- } else {
- TL_ERROR ("Unknown builting type `%.*s`\n", T->c[0]->len, T->c[0]->text);
- return 0;
- }
-
- return 1;
-}
-
-int tl_parse_declaration (struct tree *T, int fun) {
- assert (T->type == type_declaration);
- assert (T->nc == 1);
- switch (T->c[0]->type) {
- case type_combinator_decl:
- return tl_parse_combinator_decl (T->c[0], fun);
- case type_partial_app_decl:
- return tl_parse_partial_app_decl (T->c[0], fun);
- case type_final_decl:
- return tl_parse_final_decl (T->c[0], fun);
- case type_builtin_combinator_decl:
- return tl_parse_builtin_combinator_decl (T->c[0], fun);
- default:
- assert (0);
- return 0;
- }
-}
-
-int tl_parse_constr_declarations (struct tree *T) {
- assert (T->type == type_constr_declarations);
- int i;
- for (i = 0; i < T->nc; i++) {
- TL_TRY_PES (tl_parse_declaration (T->c[i], 0));
- }
- return 1;
-}
-
-int tl_parse_fun_declarations (struct tree *T) {
- assert (T->type == type_fun_declarations);
- int i;
- for (i = 0; i < T->nc; i++) {
- TL_TRY_PES (tl_parse_declaration (T->c[i], 1));
- }
- return 1;
-}
-
-int tl_tree_lookup_value (struct tl_combinator_tree *L, void *var, struct tree_var_value **T) {
- if (!L) {
- return -1;
- }
- if (L->act == act_var && L->data == var) {
- return 0;
- }
- if (L->act == act_var) {
- struct tl_combinator_tree *E = tl_get_var_value (T, L->data);
- if (!E) { return -1;}
- else { return tl_tree_lookup_value (E, var, T); }
- }
- if (tl_tree_lookup_value (L->left, var, T) >= 0) { return 1; }
- if (tl_tree_lookup_value (L->right, var, T) >= 0) { return 1; }
- return -1;
-}
-
-int tl_tree_lookup_value_nat (struct tl_combinator_tree *L, void *var, long long x, struct tree_var_value **T) {
- assert (L);
- if (L->type == type_num_value) { return -1; }
- assert (L->type == type_num);
- assert (L->act == act_var);
- if (L->data == var) {
- return x == L->type_flags ? 0 : 1;
- } else {
- if (!tl_get_var_value (T, L->data)) {
- return -1;
- }
- return tl_tree_lookup_value_nat (tl_get_var_value (T, L->data), var, x + tl_get_var_value_num (T, L->data), T);
- }
-
-}
-
-int uniformize (struct tl_combinator_tree *L, struct tl_combinator_tree *R, struct tree_var_value **T) {
- if (!L || !R) {
- assert (!L && !R);
- return 1;
- }
- if (R->act == act_var) {
- struct tl_combinator_tree *_ = R; R = L; L = _;
- }
-
- if (L->type == type_type) {
- if (R->type != type_type || L->type_len != R->type_len || L->type_flags != R->type_flags) {
- return 0;
- }
- if (R->data == (void *)-1l || L->data == (void *)-1l) { return 1;}
- if (L->act == act_var) {
- int x = tl_tree_lookup_value (R, L->data, T);
- if (x > 0) {
-// if (tl_tree_lookup_value (R, L->data, T) > 0) {
- return 0;
- }
- if (x == 0) {
- return 1;
- }
- struct tl_combinator_tree *E = tl_get_var_value (T, L->data);
- if (!E) {
- tl_set_var_value (T, L->data, R);
- return 1;
- } else {
- return uniformize (E, R, T);
- }
- } else {
- if (L->act != R->act || L->data != R->data) {
- return 0;
- }
- return uniformize (L->left, R->left, T) && uniformize (L->right, R->right, T);
- }
- } else {
- assert (L->type == type_num || L->type == type_num_value);
- if (R->type != type_num && R->type != type_num_value) {
- return 0;
- }
- assert (R->type == type_num || R->type == type_num_value);
- if (R->data == (void *)-1l || L->data == (void *)-1l) { return 1;}
- long long x = 0;
- struct tl_combinator_tree *K = L;
- while (1) {
- x += K->type_flags;
- if (K->type == type_num_value) {
- break;
- }
- if (!tl_get_var_value (T, K->data)) {
- int s = tl_tree_lookup_value_nat (R, K->data, K->type_flags, T);
- if (s > 0) {
- return 0;
- }
- if (s == 0) {
- return 1;
- }
- /*tl_set_var_value_num (T, K->data, R, -x);
- return 1;*/
- break;
- }
- x += tl_get_var_value_num (T, K->data);
- K = tl_get_var_value (T, K->data);
- }
- long long y = 0;
- struct tl_combinator_tree *M = R;
- while (1) {
- y += M->type_flags;
- if (M->type == type_num_value) {
- break;
- }
- if (!tl_get_var_value (T, M->data)) {
- int s = tl_tree_lookup_value_nat (L, M->data, M->type_flags, T);
- if (s > 0) {
- return 0;
- }
- if (s == 0) {
- return 1;
- }
- /*tl_set_var_value_num (T, M->data, L, -y);
- return 1;*/
- break;
- }
- y += tl_get_var_value_num (T, M->data);
- M = tl_get_var_value (T, M->data);
- }
- if (K->type == type_num_value && M->type == type_num_value) {
- return x == y;
- }
- if (M->type == type_num_value) {
- tl_set_var_value_num (T, K->data, M, -(x - y + M->type_flags));
- return 1;
- } else if (K->type == type_num_value) {
- tl_set_var_value_num (T, M->data, K, -(y - x + K->type_flags));
- return 1;
- } else {
- if (x >= y) {
- tl_set_var_value_num (T, K->data, M, -(x - y + M->type_flags));
- } else {
- tl_set_var_value_num (T, M->data, K, -(y - x + K->type_flags));
- }
- return 1;
- }
- }
- return 0;
-}
-
-
-void tl_type_check (struct tl_type *t) {
- if (!__ok) return;
- if (!strcmp (t->id, "#")) { t->name = 0x70659eff; return; }
- if (!strcmp (t->id, "Type")) { t->name = 0x2cecf817; return; }
- if (t->constructors_num <= 0 && !(t->flags & FLAG_EMPTY)) {
- TL_ERROR ("Type %s has no constructors\n", t->id);
- __ok = 0;
- return;
- }
- int i, j;
- t->name = 0;
- for (i = 0; i < t->constructors_num; i++) {
- t->name ^= t->constructors[i]->name;
- }
- for (i = 0; i < t->constructors_num; i++) {
- for (j = i + 1; j < t->constructors_num; j++) {
- struct tree_var_value *v = 0;
- if (check_constructors_equal (t->constructors[i]->right, t->constructors[j]->right, &v)) {
- t->flags |= 16;
- }
- }
- }
- if ((t->flags & 24) == 24) {
- TL_WARNING ("Warning: Type %s has overlapping costructors, but it is used with `%%`\n", t->id);
- }
- int z = 0;
- int sid = 0;
- for (i = 0; i < t->constructors_num; i++) if (*t->constructors[i]->id == '_') {
- z ++;
- sid = i;
- }
- if (z > 1) {
- TL_ERROR ("Type %s has %d default constructors\n", t->id, z);
- __ok = 0;
- return;
- }
- if (z == 1 && (t->flags & 8)) {
- TL_ERROR ("Type %s has default constructors and used bare\n", t->id);
- __ok = 0;
- return;
- }
- if (z) {
- struct tl_constructor *c;
- c = t->constructors[sid];
- t->constructors[sid] = t->constructors[t->constructors_num - 1];
- t->constructors[t->constructors_num - 1] = c;
- }
-}
-
-struct tl_program *tl_parse (struct tree *T) {
- assert (T);
- assert (T->type == type_tl_program);
- int i;
- tl_program_cur = talloc (sizeof (*tl_program_cur));
- tl_add_type ("#", 1, 0, 0);
- tl_add_type ("Type", 4, 0, 0);
- for (i = 0; i < T->nc; i++) {
- if (T->c[i]->type == type_constr_declarations) { TL_TRY_PES (tl_parse_constr_declarations (T->c[i])); }
- else { TL_TRY_PES (tl_parse_fun_declarations (T->c[i])) }
- }
- __ok = 1;
- tree_act_tl_type (tl_type_tree, tl_type_check);
- if (!__ok) {
- return 0;
- }
- return tl_program_cur;
-}
-
-int __f;
-int num = 0;
-
-void wint (int a) {
-// printf ("%d ", a);
- a = htole32 (a);
- assert (write (__f, &a, 4) == 4);
-}
-
-void wdata (const void *x, int len) {
- assert (write (__f, x, len) == len);
-}
-
-void wstr (const char *s) {
- if (s) {
-// printf ("\"%s\" ", s);
- int x = strlen (s);
- if (x <= 254) {
- unsigned char x_c = (unsigned char)x;
- assert (write (__f, &x_c, 1) == 1);
- } else {
- fprintf (stderr, "String is too big...\n");
- assert (0);
- }
- wdata (s, x);
- x ++; // The header, containing the length, which is 1 byte
- int t = 0;
- if (x & 3) {
- // Let's hope it's truly zero on every platform
- wdata (&t, 4 - (x & 3));
- }
- } else {
-// printf ("<none> ");
- wint (0);
- }
-}
-
-void wll (long long a) {
-// printf ("%lld ", a);
- a = htole64 (a);
- assert (write (__f, &a, 8) == 8);
-}
-
-int count_list_size (struct tl_combinator_tree *T) {
- assert (T->type == type_list || T->type == type_list_item);
- if (T->type == type_list_item) {
- return 1;
- } else {
- return count_list_size (T->left) + count_list_size (T->right);
- }
-}
-
-void write_type_flags (long long flags) {
- int new_flags = 0;
- if (flags & 1) {
- new_flags |= FLAG_BARE;
- }
- if (flags & FLAG_DEFAULT_CONSTRUCTOR) {
- new_flags |= FLAG_DEFAULT_CONSTRUCTOR;
- }
- wint (new_flags);
-}
-
-void write_field_flags (long long flags) {
- int new_flags = 0;
- //fprintf (stderr, "%lld\n", flags);
- if (flags & 1) {
- new_flags |= FLAG_BARE;
- }
- if (flags & 32) {
- new_flags |= FLAG_OPT_VAR;
- }
- if (flags & FLAG_EXCL) {
- new_flags |= FLAG_EXCL;
- }
- if (flags & FLAG_OPT_FIELD) {
- // new_flags |= FLAG_OPT_FIELD;
- new_flags |= 2;
- }
- if (flags & (1 << 21)) {
- new_flags |= 4;
- }
- wint (new_flags);
-}
-
-void write_var_type_flags (long long flags) {
- int new_flags = 0;
- if (flags & 1) {
- new_flags |= FLAG_BARE;
- }
- if (new_flags & FLAG_BARE) {
- TL_ERROR ("Sorry, bare vars are not (yet ?) supported.\n");
- assert (!(new_flags & FLAG_BARE));
- }
- wint (new_flags);
-}
-
-void write_tree (struct tl_combinator_tree *T, int extra, struct tree_var_value **v, int *last_var);
-void write_args (struct tl_combinator_tree *T, struct tree_var_value **v, int *last_var) {
- assert (T->type == type_list || T->type == type_list_item);
- if (T->type == type_list) {
- assert (T->act == act_union);
- assert (T->left);
- assert (T->right);
- write_args (T->left, v, last_var);
- write_args (T->right, v, last_var);
- return;
- }
- wint (TLS_ARG_V2);
- assert (T->act == act_field);
- assert (T->left);
- wstr (T->data && strcmp (T->data, "_") ? T->data : 0);
- long long f = T->flags;
- if (T->left->act == act_opt_field) {
- f |= (1 << 20);
- }
- if (T->left->act == act_type && T->left->data && (!strcmp (((struct tl_type *)T->left->data)->id, "#") || !strcmp (((struct tl_type *)T->left->data)->id, "Type"))) {
- write_field_flags (f | (1 << 21));
- wint (*last_var);
- *last_var = (*last_var) + 1;
- tl_set_var_value_num (v, T, 0, (*last_var) - 1);
- } else {
- write_field_flags (f);
- }
- write_tree (T->left, 0, v, last_var);
-}
-
-void write_array (struct tl_combinator_tree *T, struct tree_var_value **v, int *last_var) {
- wint (TLS_ARRAY);
- write_tree (T->left, 0, v, last_var);
- write_tree (T->right, 0, v, last_var);
-}
-
-void write_type_rec (struct tl_combinator_tree *T, int cc, struct tree_var_value **v, int *last_var) {
- if (T->act == act_arg) {
- write_type_rec (T->left, cc + 1, v, last_var);
- if (T->right->type == type_num_value || T->right->type == type_num) {
- wint (TLS_EXPR_NAT);
- } else {
- wint (TLS_EXPR_TYPE);
- }
- write_tree (T->right, 0, v, last_var);
- } else {
- assert (T->act == act_var || T->act == act_type);
- if (T->act == act_var) {
- assert (!cc);
- wint (TLS_TYPE_VAR);
- wint (tl_get_var_value_num (v, T->data));
- write_var_type_flags (T->flags);
- //wint (T->flags);
- } else {
- wint (TLS_TYPE_EXPR);
- struct tl_type *t = T->data;
- wint (t->name);
- write_type_flags (T->flags);
-// wint (T->flags);
- wint (cc);
-// fprintf (stderr, "cc = %d\n", cc);
- }
- }
-}
-
-void write_opt_type (struct tl_combinator_tree *T, struct tree_var_value **v, int *last_var) {
- wint (tl_get_var_value_num (v, T->left->data));
- wint (T->left->type_flags);
-// write_tree (T->right, 0, v, last_var);
- assert (T);
- T = T->right;
- switch (T->type) {
- case type_type:
- if (T->act == act_array) {
- write_array (T, v, last_var);
- } else if (T->act == act_type || T->act == act_var || T->act == act_arg) {
- write_type_rec (T, 0, v, last_var);
- } else {
- assert (0);
- }
- break;
- default:
- assert (0);
- }
-}
-
-void write_tree (struct tl_combinator_tree *T, int extra, struct tree_var_value **v, int *last_var) {
- assert (T);
- switch (T->type) {
- case type_list_item:
- case type_list:
- if (extra) {
- wint (TLS_COMBINATOR_RIGHT_V2);
- }
- wint (count_list_size (T));
- write_args (T, v, last_var);
- break;
- case type_num_value:
- wint ((int)TLS_NAT_CONST);
- wint (T->type_flags);
- break;
- case type_num:
- wint ((int)TLS_NAT_VAR);
- wint (T->type_flags);
- wint (tl_get_var_value_num (v, T->data));
- break;
- case type_type:
- if (T->act == act_array) {
- write_array (T, v, last_var);
- } else if (T->act == act_type || T->act == act_var || T->act == act_arg) {
- write_type_rec (T, 0, v, last_var);
- } else {
- assert (T->act == act_opt_field);
- write_opt_type (T, v, last_var);
- }
- break;
- default:
- assert (0);
- }
-}
-
-void write_type (struct tl_type *t) {
- wint (TLS_TYPE);
- wint (t->name);
- wstr (t->id);
- wint (t->constructors_num);
- wint (t->flags);
- wint (t->params_num);
- wll (t->params_types);
-}
-
-int is_builtin_type (const char *id) {
- return !strcmp (id, "int") || !strcmp (id, "long") || !strcmp (id, "double") || !strcmp (id, "string");
-}
-
-void write_combinator (struct tl_constructor *c) {
- wint (c->name);
- wstr (c->id);
- wint (c->type ? c->type->name : 0);
- struct tree_var_value *T = 0;
- int x = 0;
- assert (c->right);
- if (c->left) {
- if (is_builtin_type (c->id)) {
- wint (TLS_COMBINATOR_LEFT_BUILTIN);
- } else {
- wint (TLS_COMBINATOR_LEFT);
- // FIXME: What is that?
-// wint (count_list_size (c->left));
- write_tree (c->left, 0, &T, &x);
- }
- } else {
- wint (TLS_COMBINATOR_LEFT);
- wint (0);
- }
- wint (TLS_COMBINATOR_RIGHT_V2);
- write_tree (c->right, 1, &T, &x);
-}
-
-void write_constructor (struct tl_constructor *c) {
- wint (TLS_COMBINATOR);
- write_combinator (c);
-}
-
-void write_function (struct tl_constructor *c) {
- wint (TLS_COMBINATOR);
- write_combinator (c);
-}
-
-void write_type_constructors (struct tl_type *t) {
- int i;
- for (i = 0; i < t->constructors_num; i++) {
- write_constructor (t->constructors[i]);
- }
-}
-
-void write_types (int f) {
- __f = f;
- wint (TLS_SCHEMA_V2);
- wint (0);
-#ifdef TL_PARSER_NEED_TIME
- wint (time (0));
-#else
- /* Make the tlo reproducible by default. Rationale: https://wiki.debian.org/ReproducibleBuilds/Howto#Introduction */
- wint (0);
-#endif
- num = 0;
- wint (total_types_num);
- tree_act_tl_type (tl_type_tree, write_type);
- wint (total_constructors_num);
- tree_act_tl_type (tl_type_tree, write_type_constructors);
- wint (total_functions_num);
- tree_act_tl_constructor (tl_function_tree, write_function);
-}
diff --git a/protocols/Telegram/tgl/tl-parser/tl-parser.h b/protocols/Telegram/tgl/tl-parser/tl-parser.h
deleted file mode 100644
index 7eb7524787..0000000000
--- a/protocols/Telegram/tgl/tl-parser/tl-parser.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- This file is part of tgl-libary/tlc
-
- Tgl-library/tlc is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- Tgl-library/tlc is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this tgl-library/tlc. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright Vitaly Valtman 2014
-
- It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-
-*/
-
-#ifndef __TL_PARSER_NEW_H__
-#define __TL_PARSER_NEW_H__
-#if defined(WIN32) || defined(_WIN32)
-#define lrand48() rand()
-#define _PRINTF_INT64_ "I64"
-#if defined(_MSC_VER) && _MSC_VER >= 1400
-#define read _read
-#define write _write
-#define close _close
-#define lseek _lseek
-#define strdup _strdup
-#define __attribute__(x)
-#endif
-#else
-#define _PRINTF_INT64_ "ll"
-#endif
-
-enum lex_type {
- lex_error,
- lex_char,
- lex_triple_minus,
- lex_uc_ident,
- lex_lc_ident,
- lex_eof,
- lex_final,
- lex_new,
- lex_none,
- lex_num,
- lex_empty
-};
-
-
-struct curlex {
- char *ptr;
- int len;
- enum lex_type type;
- int flags;
-};
-
-struct parse {
- char *text;
- int pos;
- int len;
- int line;
- int line_pos;
- struct curlex lex;
-};
-
-
-enum tree_type {
- type_tl_program,
- type_fun_declarations,
- type_constr_declarations,
- type_declaration,
- type_combinator_decl,
- type_equals,
- type_partial_app_decl,
- type_final_decl,
- type_full_combinator_id,
- type_opt_args,
- type_args,
- type_args1,
- type_args2,
- type_args3,
- type_args4,
- type_boxed_type_ident,
- type_subexpr,
- type_partial_comb_app_decl,
- type_partial_type_app_decl,
- type_final_new,
- type_final_final,
- type_final_empty,
-// type_type,
- type_var_ident,
- type_var_ident_opt,
- type_multiplicity,
- type_type_term,
- type_term,
- type_percent,
- type_result_type,
- type_expr,
- type_nat_term,
- type_combinator_id,
- type_nat_const,
- type_type_ident,
- type_builtin_combinator_decl,
- type_exclam,
- type_optional_arg_def
-};
-
-struct tree {
- char *text;
- int len;
- enum tree_type type;
- int lex_line;
- int lex_line_pos;
- int flags;
- int size;
- int nc;
- struct tree **c;
-};
-
-
-#define TL_ACT(x) (x == act_var ? "act_var" : x == act_field ? "act_field" : x == act_plus ? "act_plus" : x == act_type ? "act_type" : x == act_nat_const ? "act_nat_const" : x == act_array ? "act_array" : x == act_question_mark ? "act_question_mark" : \
- x == act_union ? "act_union" : x == act_arg ? "act_arg" : x == act_opt_field ? "act_opt_field" : "act_unknown")
-
-#define TL_TYPE(x) (x == type_num ? "type_num" : x == type_type ? "type_type" : x == type_list_item ? "type_list_item" : x == type_list ? "type_list" : x == type_num_value ? "type_num_value" : "type_unknown")
-enum combinator_tree_action {
- act_var,
- act_field,
- act_plus,
- act_type,
- act_nat_const,
- act_array,
- act_question_mark,
- act_union,
- act_arg,
- act_opt_field
-};
-
-enum combinator_tree_type {
- type_num,
- type_num_value,
- type_type,
- type_list_item,
- type_list
-};
-
-struct tl_combinator_tree {
- enum combinator_tree_action act;
- struct tl_combinator_tree *left, *right;
- char *name;
- void *data;
- long long flags;
- enum combinator_tree_type type;
- int type_len;
- long long type_flags;
-};
-
-
-struct tl_program {
- int types_num;
- int functions_num;
- int constructors_num;
- struct tl_type **types;
- struct tl_function **functions;
-// struct tl_constuctor **constructors;
-};
-
-struct tl_type {
- char *id;
- char *print_id;
- char *real_id;
- unsigned name;
- int flags;
-
- int params_num;
- long long params_types;
-
- int constructors_num;
- struct tl_constructor **constructors;
-};
-
-struct tl_constructor {
- char *id;
- char *print_id;
- char *real_id;
- unsigned name;
- struct tl_type *type;
-
- struct tl_combinator_tree *left;
- struct tl_combinator_tree *right;
-};
-
-struct tl_var {
- char *id;
- struct tl_combinator_tree *ptr;
- int type;
- int flags;
-};
-
-struct parse *tl_init_parse_file (const char *fname);
-struct tree *tl_parse_lex (struct parse *P);
-void tl_print_parse_error (void);
-struct tl_program *tl_parse (struct tree *T);
-
-void write_types (int f);
-
-#define FLAG_BARE 1
-#define FLAG_OPT_VAR (1 << 17)
-#define FLAG_EXCL (1 << 18)
-#define FLAG_OPT_FIELD (1 << 20)
-#define FLAG_IS_VAR (1 << 21)
-#define FLAG_DEFAULT_CONSTRUCTOR (1 << 25)
-#define FLAG_EMPTY (1 << 10)
-
-#endif
diff --git a/protocols/Telegram/tgl/tl-parser/tl-tl.h b/protocols/Telegram/tgl/tl-parser/tl-tl.h
deleted file mode 100644
index 8bc0a707bc..0000000000
--- a/protocols/Telegram/tgl/tl-parser/tl-tl.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- This file is part of VK/KittenPHP-DB-Engine.
-
- VK/KittenPHP-DB-Engine is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- VK/KittenPHP-DB-Engine is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with VK/KittenPHP-DB-Engine. If not, see <http://www.gnu.org/licenses/>.
-
- This program is released under the GPL with the additional exemption
- that compiling, linking, and/or using OpenSSL is allowed.
- You are free to remove this exemption from derived works.
-
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-*/
-
-#ifndef __TL_TL_H__
-#define __TL_TL_H__
-
-// Current tl-tl schema is V2
-// See https://core.telegram.org/mtproto/TL-tl
-
-#define TLS_SCHEMA_V2 0x3a2f9be2
-#define TLS_TYPE 0x12eb4386
-#define TLS_COMBINATOR 0x5c0a1ed5
-#define TLS_COMBINATOR_LEFT_BUILTIN 0xcd211f63
-#define TLS_COMBINATOR_LEFT 0x4c12c6d9
-#define TLS_COMBINATOR_RIGHT_V2 0x2c064372
-#define TLS_ARG_V2 0x29dfe61b
-
-#define TLS_EXPR_TYPE 0xecc9da78
-#define TLS_EXPR_NAT 0xdcb49bd8
-
-#define TLS_NAT_CONST 0xdcb49bd8
-#define TLS_NAT_VAR 0x4e8a14f0
-#define TLS_TYPE_VAR 0x0142ceae
-#define TLS_ARRAY 0xd9fb20de
-#define TLS_TYPE_EXPR 0xc1863d08
-
-/* Deprecated (old versions), read-only */
-#define TLS_TREE_NAT_CONST 0xc09f07d7
-#define TLS_TREE_NAT_VAR 0x90ea6f58
-#define TLS_TREE_TYPE_VAR 0x1caa237a
-#define TLS_TREE_ARRAY 0x80479360
-#define TLS_TREE_TYPE 0x10f32190
-
-#endif
diff --git a/protocols/Telegram/tgl/tl-parser/tlc.c b/protocols/Telegram/tgl/tl-parser/tlc.c
deleted file mode 100644
index d0edd20889..0000000000
--- a/protocols/Telegram/tgl/tl-parser/tlc.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- This file is part of tl-parser
-
- tl-parser is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- tl-parser is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this tl-parser. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright Vitaly Valtman 2014
-
- It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-
-*/
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#if defined(_MSC_VER)
-#include <io.h>
-#include <stdint.h>
-#include <string.h>
-#include "wingetopt.h"
-#else
-#include <unistd.h>
-#endif
-#include "tl-parser.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <signal.h>
-#include "config.h"
-
-#ifdef HAVE_EXECINFO_H
-#include <execinfo.h>
-#endif
-#include <stdarg.h>
-
-int verbosity;
-int output_expressions;
-void usage (void) {
- printf ("usage: tl-parser [-v] [-h] <TL-schema-file>\n"
- "\tTL compiler\n"
- "\t-v\toutput statistical and debug information into stderr\n"
- "\t-E\twhenever is possible output to stdout expressions\n"
- "\t-e <file>\texport serialized schema to file\n"
- );
- exit (2);
-}
-
-int vkext_write (const char *filename) {
-#if defined(_MSC_VER) && _MSC_VER >= 1400
- int f = 0;
- assert(_sopen_s(&f, filename, _O_CREAT | _O_WRONLY | _O_TRUNC | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE) == 0);
-#elif defined(WIN32) || defined(_WIN32)
- int f = open(filename, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0640);
- assert(f >= 0);
-#else
- int f = open (filename, O_CREAT | O_WRONLY | O_TRUNC, 0640);
- assert (f >= 0);
-#endif
- write_types (f);
- close (f);
- return 0;
-}
-
-void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2)));
-void logprintf (const char *format __attribute__ ((unused)), ...) {
- va_list ap;
- va_start (ap, format);
- vfprintf (stderr, format, ap);
- va_end (ap);
-}
-
-void hexdump (int *in_ptr, int *in_end) {
- int *ptr = in_ptr;
- while (ptr < in_end) { printf (" %08x", *(ptr ++)); }
- printf ("\n");
-}
-
-#ifdef HAVE_EXECINFO_H
-void print_backtrace (void) {
- void *buffer[255];
- const int calls = backtrace (buffer, sizeof (buffer) / sizeof (void *));
- backtrace_symbols_fd (buffer, calls, 1);
-}
-#else
-void print_backtrace (void) {
- if (write (1, "No libexec. Backtrace disabled\n", 32) < 0) {
- // Sad thing
- }
-}
-#endif
-
-void sig_segv_handler (int signum __attribute__ ((unused))) {
- if (write (1, "SIGSEGV received\n", 18) < 0) {
- // Sad thing
- }
- print_backtrace ();
- exit (EXIT_FAILURE);
-}
-
-void sig_abrt_handler (int signum __attribute__ ((unused))) {
- if (write (1, "SIGABRT received\n", 18) < 0) {
- // Sad thing
- }
- print_backtrace ();
- exit (EXIT_FAILURE);
-}
-
-int main (int argc, char **argv) {
- signal (SIGSEGV, sig_segv_handler);
- signal (SIGABRT, sig_abrt_handler);
- int i;
- char *vkext_file = 0;
- while ((i = getopt (argc, argv, "Ehve:w:")) != -1) {
- switch (i) {
- case 'E':
- output_expressions++;
- break;
- case 'h':
- usage ();
- return 2;
- case 'e':
- vkext_file = optarg;
- break;
- case 'v':
- verbosity++;
- break;
- }
- }
-
- if (argc != optind + 1) {
- usage ();
- }
-
-
- struct parse *P = tl_init_parse_file (argv[optind]);
- if (!P) {
- return 0;
- }
- struct tree *T;
- if (!(T = tl_parse_lex (P))) {
- fprintf (stderr, "Error in parse:\n");
- tl_print_parse_error ();
- return 0;
- } else {
- if (verbosity) {
- fprintf (stderr, "Parse ok\n");
- }
- if (!tl_parse (T)) {
- if (verbosity) {
- fprintf (stderr, "Fail\n");
- }
- return 1;
- } else {
- if (verbosity) {
- fprintf (stderr, "Ok\n");
- }
- }
- }
- if (vkext_file) {
- vkext_write (vkext_file);
- }
- return 0;
-}