diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2016-03-11 20:16:27 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2016-03-11 20:16:27 +0000 |
commit | ec639ecbdf49731a0bec26240efb76eb203087bc (patch) | |
tree | 0e44e371fa9c25209ef3fe035856a63b385a5817 /libs | |
parent | 7c63d57169b30a5397fb8e1d0929eec600372652 (diff) |
tgl cleanup
git-svn-id: http://svn.miranda-ng.org/main/trunk@16467 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'libs')
-rw-r--r-- | libs/tgl/docs/auto-static-fetch-ds.c (renamed from libs/tgl/src/auto-static-fetch-ds.c) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/auto-static-free-ds.c (renamed from libs/tgl/src/auto-static-free-ds.c) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/auto-static-skip.c (renamed from libs/tgl/src/auto-static-skip.c) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/auto-static-store-ds.c (renamed from libs/tgl/src/auto-static-store-ds.c) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/auto-static.c (renamed from libs/tgl/src/auto-static.c) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/binlog.tl (renamed from libs/tgl/src/binlog.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/encrypted_scheme.tl (renamed from libs/tgl/src/encrypted_scheme.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/encrypted_scheme16.tl (renamed from libs/tgl/src/encrypted_scheme16.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/encrypted_scheme17.tl (renamed from libs/tgl/src/encrypted_scheme17.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/encrypted_scheme18.tl (renamed from libs/tgl/src/encrypted_scheme18.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/encrypted_scheme23.tl (renamed from libs/tgl/src/encrypted_scheme23.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/errors (renamed from libs/tgl/src/errors) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/event-old.h (renamed from libs/tgl/src/event-old.h) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/mtproto.tl (renamed from libs/tgl/src/mtproto.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme.tl (renamed from libs/tgl/src/scheme.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme.tlo (renamed from libs/tgl/src/auto/scheme.tlo) | bin | 85572 -> 85572 bytes | |||
-rw-r--r-- | libs/tgl/docs/scheme12.tl (renamed from libs/tgl/src/scheme12.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme15.tl (renamed from libs/tgl/src/scheme15.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme16.tl (renamed from libs/tgl/src/scheme16.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme17.tl (renamed from libs/tgl/src/scheme17.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme18.tl (renamed from libs/tgl/src/scheme18.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme19.tl (renamed from libs/tgl/src/scheme19.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme2.tl (renamed from libs/tgl/src/auto/scheme2.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme22.tl (renamed from libs/tgl/src/scheme22.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme25.tl (renamed from libs/tgl/src/scheme25.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme28.tl (renamed from libs/tgl/src/scheme28.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme30.tl (renamed from libs/tgl/src/scheme30.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/scheme31.tl (renamed from libs/tgl/src/scheme31.tl) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/wingetopt.c (renamed from libs/tgl/src/wingetopt.c) | 0 | ||||
-rw-r--r-- | libs/tgl/docs/wingetopt.h (renamed from libs/tgl/src/wingetopt.h) | 0 | ||||
-rw-r--r-- | libs/tgl/generate_12.vcxproj | 155 | ||||
-rw-r--r-- | libs/tgl/generate_12.vcxproj.filters | 39 | ||||
-rw-r--r-- | libs/tgl/generate_14.vcxproj | 155 | ||||
-rw-r--r-- | libs/tgl/generate_14.vcxproj.filters | 39 | ||||
-rw-r--r-- | libs/tgl/openssl/lib/x86/Release/2015/libeay32MD.lib | bin | 0 -> 830392 bytes | |||
-rw-r--r-- | libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib | bin | 0 -> 77968 bytes | |||
-rw-r--r-- | libs/tgl/src/auto/auto-fetch-ds.c | 1 | ||||
-rw-r--r-- | libs/tgl/src/auto/auto-free-ds.c | 1 | ||||
-rw-r--r-- | libs/tgl/src/auto/auto-skip.c | 1 | ||||
-rw-r--r-- | libs/tgl/src/auto/auto-store-ds.c | 1 | ||||
-rw-r--r-- | libs/tgl/src/auto/scheme.tl | 829 | ||||
-rw-r--r-- | libs/tgl/src/generate.c | 3219 | ||||
-rw-r--r-- | libs/tgl/src/generate.h | 173 | ||||
-rw-r--r-- | libs/tgl/tgl_12.vcxproj | 23 | ||||
-rw-r--r-- | libs/tgl/tgl_12.vcxproj.filters | 3 | ||||
-rw-r--r-- | libs/tgl/tgl_14.vcxproj | 15 | ||||
-rw-r--r-- | libs/tgl/tgl_14.vcxproj.filters | 3 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/LICENSE | 339 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/Makefile.in | 48 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/README.md | 1 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/config.bat | 107 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/config.h.in | 96 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/configure | 5018 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/configure.ac | 33 | ||||
-rw-r--r-- | libs/tgl/tl-parser/docs/m4-ax_gcc_builtin.m4 | 168 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/config.h | 96 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/portable_endian.h | 124 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/tl-parser-tree.h | 178 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/tl-parser.c | 3112 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/tl-parser.h | 221 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/tl-tl.h | 55 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/tlc.c | 180 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/wingetopt.c | 82 | ||||
-rw-r--r-- | libs/tgl/tl-parser/src/wingetopt.h | 32 | ||||
-rw-r--r-- | libs/tgl/tl-parser/tl-parser_12.vcxproj | 150 | ||||
-rw-r--r-- | libs/tgl/tl-parser/tl-parser_12.vcxproj.filters | 48 | ||||
-rw-r--r-- | libs/tgl/tl-parser/tl-parser_14.vcxproj | 150 | ||||
-rw-r--r-- | libs/tgl/tl-parser/tl-parser_14.vcxproj.filters | 48 |
68 files changed, 4 insertions, 14939 deletions
diff --git a/libs/tgl/src/auto-static-fetch-ds.c b/libs/tgl/docs/auto-static-fetch-ds.c index e69de29bb2..e69de29bb2 100644 --- a/libs/tgl/src/auto-static-fetch-ds.c +++ b/libs/tgl/docs/auto-static-fetch-ds.c diff --git a/libs/tgl/src/auto-static-free-ds.c b/libs/tgl/docs/auto-static-free-ds.c index e69de29bb2..e69de29bb2 100644 --- a/libs/tgl/src/auto-static-free-ds.c +++ b/libs/tgl/docs/auto-static-free-ds.c diff --git a/libs/tgl/src/auto-static-skip.c b/libs/tgl/docs/auto-static-skip.c index e69de29bb2..e69de29bb2 100644 --- a/libs/tgl/src/auto-static-skip.c +++ b/libs/tgl/docs/auto-static-skip.c diff --git a/libs/tgl/src/auto-static-store-ds.c b/libs/tgl/docs/auto-static-store-ds.c index e69de29bb2..e69de29bb2 100644 --- a/libs/tgl/src/auto-static-store-ds.c +++ b/libs/tgl/docs/auto-static-store-ds.c diff --git a/libs/tgl/src/auto-static.c b/libs/tgl/docs/auto-static.c index 89a0a176bf..89a0a176bf 100644 --- a/libs/tgl/src/auto-static.c +++ b/libs/tgl/docs/auto-static.c diff --git a/libs/tgl/src/binlog.tl b/libs/tgl/docs/binlog.tl index a0c52424d7..a0c52424d7 100644 --- a/libs/tgl/src/binlog.tl +++ b/libs/tgl/docs/binlog.tl diff --git a/libs/tgl/src/encrypted_scheme.tl b/libs/tgl/docs/encrypted_scheme.tl index 6fff5b6a55..6fff5b6a55 100644 --- a/libs/tgl/src/encrypted_scheme.tl +++ b/libs/tgl/docs/encrypted_scheme.tl diff --git a/libs/tgl/src/encrypted_scheme16.tl b/libs/tgl/docs/encrypted_scheme16.tl index eb58ed4475..eb58ed4475 100644 --- a/libs/tgl/src/encrypted_scheme16.tl +++ b/libs/tgl/docs/encrypted_scheme16.tl diff --git a/libs/tgl/src/encrypted_scheme17.tl b/libs/tgl/docs/encrypted_scheme17.tl index 95e661bda5..95e661bda5 100644 --- a/libs/tgl/src/encrypted_scheme17.tl +++ b/libs/tgl/docs/encrypted_scheme17.tl diff --git a/libs/tgl/src/encrypted_scheme18.tl b/libs/tgl/docs/encrypted_scheme18.tl index 134f719973..134f719973 100644 --- a/libs/tgl/src/encrypted_scheme18.tl +++ b/libs/tgl/docs/encrypted_scheme18.tl diff --git a/libs/tgl/src/encrypted_scheme23.tl b/libs/tgl/docs/encrypted_scheme23.tl index ae31312de1..ae31312de1 100644 --- a/libs/tgl/src/encrypted_scheme23.tl +++ b/libs/tgl/docs/encrypted_scheme23.tl diff --git a/libs/tgl/src/errors b/libs/tgl/docs/errors index 481a144737..481a144737 100644 --- a/libs/tgl/src/errors +++ b/libs/tgl/docs/errors diff --git a/libs/tgl/src/event-old.h b/libs/tgl/docs/event-old.h index b920e68f02..b920e68f02 100644 --- a/libs/tgl/src/event-old.h +++ b/libs/tgl/docs/event-old.h diff --git a/libs/tgl/src/mtproto.tl b/libs/tgl/docs/mtproto.tl index 2f02c49ae8..2f02c49ae8 100644 --- a/libs/tgl/src/mtproto.tl +++ b/libs/tgl/docs/mtproto.tl diff --git a/libs/tgl/src/scheme.tl b/libs/tgl/docs/scheme.tl index a38980aea4..a38980aea4 100644 --- a/libs/tgl/src/scheme.tl +++ b/libs/tgl/docs/scheme.tl diff --git a/libs/tgl/src/auto/scheme.tlo b/libs/tgl/docs/scheme.tlo Binary files differindex 02d3ca415e..02d3ca415e 100644 --- a/libs/tgl/src/auto/scheme.tlo +++ b/libs/tgl/docs/scheme.tlo diff --git a/libs/tgl/src/scheme12.tl b/libs/tgl/docs/scheme12.tl index 7d37a6fdc5..7d37a6fdc5 100644 --- a/libs/tgl/src/scheme12.tl +++ b/libs/tgl/docs/scheme12.tl diff --git a/libs/tgl/src/scheme15.tl b/libs/tgl/docs/scheme15.tl index 4e18fad21b..4e18fad21b 100644 --- a/libs/tgl/src/scheme15.tl +++ b/libs/tgl/docs/scheme15.tl diff --git a/libs/tgl/src/scheme16.tl b/libs/tgl/docs/scheme16.tl index b1e1f196d8..b1e1f196d8 100644 --- a/libs/tgl/src/scheme16.tl +++ b/libs/tgl/docs/scheme16.tl diff --git a/libs/tgl/src/scheme17.tl b/libs/tgl/docs/scheme17.tl index c564155c19..c564155c19 100644 --- a/libs/tgl/src/scheme17.tl +++ b/libs/tgl/docs/scheme17.tl diff --git a/libs/tgl/src/scheme18.tl b/libs/tgl/docs/scheme18.tl index 6b7fdd5fc4..6b7fdd5fc4 100644 --- a/libs/tgl/src/scheme18.tl +++ b/libs/tgl/docs/scheme18.tl diff --git a/libs/tgl/src/scheme19.tl b/libs/tgl/docs/scheme19.tl index 732093a02a..732093a02a 100644 --- a/libs/tgl/src/scheme19.tl +++ b/libs/tgl/docs/scheme19.tl diff --git a/libs/tgl/src/auto/scheme2.tl b/libs/tgl/docs/scheme2.tl index 1867166cb2..1867166cb2 100644 --- a/libs/tgl/src/auto/scheme2.tl +++ b/libs/tgl/docs/scheme2.tl diff --git a/libs/tgl/src/scheme22.tl b/libs/tgl/docs/scheme22.tl index 1ed65373e0..1ed65373e0 100644 --- a/libs/tgl/src/scheme22.tl +++ b/libs/tgl/docs/scheme22.tl diff --git a/libs/tgl/src/scheme25.tl b/libs/tgl/docs/scheme25.tl index 89447c4ff2..89447c4ff2 100644 --- a/libs/tgl/src/scheme25.tl +++ b/libs/tgl/docs/scheme25.tl diff --git a/libs/tgl/src/scheme28.tl b/libs/tgl/docs/scheme28.tl index 302731ef77..302731ef77 100644 --- a/libs/tgl/src/scheme28.tl +++ b/libs/tgl/docs/scheme28.tl diff --git a/libs/tgl/src/scheme30.tl b/libs/tgl/docs/scheme30.tl index d6c9b7cf87..d6c9b7cf87 100644 --- a/libs/tgl/src/scheme30.tl +++ b/libs/tgl/docs/scheme30.tl diff --git a/libs/tgl/src/scheme31.tl b/libs/tgl/docs/scheme31.tl index 83a2084170..83a2084170 100644 --- a/libs/tgl/src/scheme31.tl +++ b/libs/tgl/docs/scheme31.tl diff --git a/libs/tgl/src/wingetopt.c b/libs/tgl/docs/wingetopt.c index 09dac17a4f..09dac17a4f 100644 --- a/libs/tgl/src/wingetopt.c +++ b/libs/tgl/docs/wingetopt.c diff --git a/libs/tgl/src/wingetopt.h b/libs/tgl/docs/wingetopt.h index 4372c66011..4372c66011 100644 --- a/libs/tgl/src/wingetopt.h +++ b/libs/tgl/docs/wingetopt.h diff --git a/libs/tgl/generate_12.vcxproj b/libs/tgl/generate_12.vcxproj deleted file mode 100644 index 99a488007d..0000000000 --- a/libs/tgl/generate_12.vcxproj +++ /dev/null @@ -1,155 +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>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{03A484BF-4CF0-4290-9BD2-D649F0797703}</ProjectGuid>
- <ProjectName>generate</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </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>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <IgnoreImportLibrary>true</IgnoreImportLibrary>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>openssl\lib\x86\Debug\2013;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MTd.lib;ssleay32MTd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>openssl\lib\x64\Debug\2013;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MTd.lib;ssleay32MTd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>openssl\lib\x86\Release\2013;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MT.lib;ssleay32MT.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>openssl\lib\x64\Release\2013;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MT.lib;ssleay32MT.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="src\generate.h" />
- <ClInclude Include="src\tools.h" />
- <ClInclude Include="src\wingetopt.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="src\generate.c" />
- <ClCompile Include="src\tools.c" />
- <ClCompile Include="src\wingetopt.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\zlib\zlib.vcxproj">
- <Project>{e2a369cd-eda3-414f-8ad0-e732cd7ee68c}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file diff --git a/libs/tgl/generate_12.vcxproj.filters b/libs/tgl/generate_12.vcxproj.filters deleted file mode 100644 index d0100c59d2..0000000000 --- a/libs/tgl/generate_12.vcxproj.filters +++ /dev/null @@ -1,39 +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="src\wingetopt.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\generate.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tools.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> - <ItemGroup> - <ClCompile Include="src\wingetopt.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\generate.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\tools.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/libs/tgl/generate_14.vcxproj b/libs/tgl/generate_14.vcxproj deleted file mode 100644 index a6b49e8fed..0000000000 --- a/libs/tgl/generate_14.vcxproj +++ /dev/null @@ -1,155 +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>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{03A484BF-4CF0-4290-9BD2-D649F0797703}</ProjectGuid>
- <ProjectName>generate</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v140_xp</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">
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v140_xp</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v140_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </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>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <IgnoreImportLibrary>true</IgnoreImportLibrary>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>openssl\lib\x86\Debug\2015;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MTd.lib;ssleay32MTd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>openssl\lib\x64\Debug\2015;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MTd.lib;ssleay32MTd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>openssl\lib\x86\Release\2015;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MT.lib;ssleay32MT.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>HAVE_CONFIG_H;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>openssl\lib\x64\Release\2015;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>libeay32MT.lib;ssleay32MT.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="src\generate.h" />
- <ClInclude Include="src\tools.h" />
- <ClInclude Include="src\wingetopt.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="src\generate.c" />
- <ClCompile Include="src\tools.c" />
- <ClCompile Include="src\wingetopt.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\zlib\zlib.vcxproj">
- <Project>{e2a369cd-eda3-414f-8ad0-e732cd7ee68c}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file diff --git a/libs/tgl/generate_14.vcxproj.filters b/libs/tgl/generate_14.vcxproj.filters deleted file mode 100644 index d0100c59d2..0000000000 --- a/libs/tgl/generate_14.vcxproj.filters +++ /dev/null @@ -1,39 +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="src\wingetopt.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\generate.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tools.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> - <ItemGroup> - <ClCompile Include="src\wingetopt.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\generate.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\tools.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/libs/tgl/openssl/lib/x86/Release/2015/libeay32MD.lib b/libs/tgl/openssl/lib/x86/Release/2015/libeay32MD.lib Binary files differnew file mode 100644 index 0000000000..874dc6e693 --- /dev/null +++ b/libs/tgl/openssl/lib/x86/Release/2015/libeay32MD.lib diff --git a/libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib b/libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib Binary files differnew file mode 100644 index 0000000000..3c7fa2bdec --- /dev/null +++ b/libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib diff --git a/libs/tgl/src/auto/auto-fetch-ds.c b/libs/tgl/src/auto/auto-fetch-ds.c index da360323a0..0ad9035f0c 100644 --- a/libs/tgl/src/auto/auto-fetch-ds.c +++ b/libs/tgl/src/auto/auto-fetch-ds.c @@ -3,7 +3,6 @@ #include "auto-fetch-ds.h"
#include "auto-skip.h"
#include "auto-types.h"
-#include "..\auto-static-fetch-ds.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/auto-free-ds.c b/libs/tgl/src/auto/auto-free-ds.c index 1538633aff..bf5fcc7f4d 100644 --- a/libs/tgl/src/auto/auto-free-ds.c +++ b/libs/tgl/src/auto/auto-free-ds.c @@ -3,7 +3,6 @@ #include "auto-free-ds.h"
#include "auto-skip.h"
#include "auto-types.h"
-#include "..\auto-static-free-ds.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/auto-skip.c b/libs/tgl/src/auto/auto-skip.c index 9ff28a1de2..fe91ddde00 100644 --- a/libs/tgl/src/auto/auto-skip.c +++ b/libs/tgl/src/auto/auto-skip.c @@ -1,7 +1,6 @@ #ifdef _MSC_VER
#include "..\auto.h"
#include "auto-skip.h"
-#include "..\auto-static-skip.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/auto-store-ds.c b/libs/tgl/src/auto/auto-store-ds.c index 1a5356e4d0..3b963b6ef3 100644 --- a/libs/tgl/src/auto/auto-store-ds.c +++ b/libs/tgl/src/auto/auto-store-ds.c @@ -3,7 +3,6 @@ #include "auto-store-ds.h"
#include "auto-skip.h"
#include "auto-types.h"
-#include "..\auto-static-store-ds.c"
#include "..\mtproto-common.h"
#else
#include "auto.h"
diff --git a/libs/tgl/src/auto/scheme.tl b/libs/tgl/src/auto/scheme.tl deleted file mode 100644 index e95425f435..0000000000 --- a/libs/tgl/src/auto/scheme.tl +++ /dev/null @@ -1,829 +0,0 @@ -int ?= Int; -long ?= Long; -double ?= Double; -string ?= String; - -bytes string = Bytes; - -int128 long long = Int128; -int256 long long long long = Int256; - -boolFalse#bc799737 = Bool; -boolTrue#997275b5 = Bool; - -vector#1cb5c415 {t:Type} # [ t ] = Vector t; - -error#c4b9f9bb code:int text:string = Error; - -null#56730bcc = Null; - -inputPeerEmpty#7f3b18ea = InputPeer; -inputPeerSelf#7da07ec9 = InputPeer; -inputPeerContact#1023dbe8 user_id:int = InputPeer; -inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; -inputPeerChat#179be863 chat_id:int = InputPeer; - -inputUserEmpty#b98886cf = InputUser; -inputUserSelf#f7c1b13f = InputUser; -inputUserContact#86e94f65 user_id:int = InputUser; -inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; - -inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; - -inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; - -inputMediaEmpty#9664f57f = InputMedia; -inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia; -inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia; -inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; -inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; -inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia; -inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia; -inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia; - -inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; -inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; -inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; - -inputGeoPointEmpty#e4c123d6 = InputGeoPoint; -inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; - -inputPhotoEmpty#1cd7bf0d = InputPhoto; -inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; - -inputVideoEmpty#5508ec75 = InputVideo; -inputVideo#ee579652 id:long access_hash:long = InputVideo; - -inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; -inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; - -inputPhotoCropAuto#ade6b004 = InputPhotoCrop; -inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; - -inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; - -peerUser#9db1bc6d user_id:int = Peer; -peerChat#bad0e5bb chat_id:int = Peer; - -storage.fileUnknown#aa963b05 = storage.FileType; -storage.fileJpeg#7efe0e = storage.FileType; -storage.fileGif#cae1aadf = storage.FileType; -storage.filePng#a4f63c0 = storage.FileType; -storage.filePdf#ae1e508d = storage.FileType; -storage.fileMp3#528a0677 = storage.FileType; -storage.fileMov#4b09ebbc = storage.FileType; -storage.filePartial#40bc6f52 = storage.FileType; -storage.fileMp4#b3cea0e4 = storage.FileType; -storage.fileWebp#1081464c = storage.FileType; - -fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; -fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; - -userEmpty#200250ba id:int = User; - -userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; -userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; - -userStatusEmpty#9d05049 = UserStatus; -userStatusOnline#edb93949 expires:int = UserStatus; -userStatusOffline#8c703f was_online:int = UserStatus; - -chatEmpty#9ba2d800 id:int = Chat; -chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; -chatForbidden#fb0ccc41 id:int title:string date:int = Chat; - -chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> = ChatFull; - - -chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; - -chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; -chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants; - -chatPhotoEmpty#37c1011c = ChatPhoto; -chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; - -messageEmpty#83e5de54 id:int = Message; -message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message; -messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; - -messageMediaEmpty#3ded6320 = MessageMedia; -messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia; -messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia; -messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; -messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; -messageMediaUnsupported#9f84f49e = MessageMedia; - -messageActionEmpty#b6aef7b0 = MessageAction; -messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction; -messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; -messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; -messageActionChatDeletePhoto#95e3fbef = MessageAction; -messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; -messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; - -dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog; - -photoEmpty#2331b22d id:long = Photo; -photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo; -photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo; - -photoSizeEmpty#e17e23c type:string = PhotoSize; -photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; -photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; - -videoEmpty#c10658a8 id:long = Video; -video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video; -videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; - -geoPointEmpty#1117dd5f = GeoPoint; -geoPoint#2049d70c longitude:double latitude:double = GeoPoint; - -auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone; - -auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; - -auth.authorization#ff036af1 user:User = auth.Authorization; - -auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; - -inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; -inputNotifyUsers#193b4417 = InputNotifyPeer; -inputNotifyChats#4a95e84e = InputNotifyPeer; -inputNotifyAll#a429b886 = InputNotifyPeer; - -inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; -inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; - -inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; - -peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; -peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; - -peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; -peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; - -wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper; - -userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull; - -contact#f911c994 user_id:int mutual:Bool = Contact; - -importedContact#d0028438 user_id:int client_id:long = ImportedContact; - -contactBlocked#561bc879 user_id:int date:int = ContactBlocked; - -contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; - -contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; - -chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; - -contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link; - -contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; -contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts; - -contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts; - -contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked; -contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked; - -contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested; - -messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs; -messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs; - -messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages; -messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages; - -messages.messageEmpty#3f4e0648 = messages.Message; - -messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage; - -messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats; - -messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull; - -messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory; - -inputMessagesFilterEmpty#57e2f66c = MessagesFilter; -inputMessagesFilterPhotos#9609a51c = MessagesFilter; -inputMessagesFilterVideo#9fc00e65 = MessagesFilter; -inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; -inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter; -inputMessagesFilterDocument#9eddf188 = MessagesFilter; -inputMessagesFilterAudio#cfc87522 = MessagesFilter; - -updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; -updateMessageID#4e90bfd6 id:int random_id:long = Update; -updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update; -updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; -updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; -updateChatParticipants#7761198 participants:ChatParticipants = Update; -updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; -updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; -updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; -updateContactRegistered#2575bbb9 user_id:int date:int = Update; -updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update; -updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; - -updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; - -updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; -updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference; -updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference; - -updatesTooLong#e317af7e = Updates; -updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; -updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; -updateShort#78d4dec1 update:Update date:int = Updates; -updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates; -updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates; - -photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos; -photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos; - -photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo; - -upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; - -dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; -dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption; - -config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config; - -nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; - -help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; -help.noAppUpdate#c45a6536 = help.AppUpdate; - -help.inviteText#18cb9f78 message:string = help.InviteText; - -messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage; - -inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; - -inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; - -geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; - -geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; -geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; -geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; - -geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage; - -geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located; - -geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages; -geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages; - -messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; -messageActionGeoChatCheckin#c7d53de = MessageAction; - -updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; - -wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; - -updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; -updateEncryptedChatTyping#1710f156 chat_id:int = Update; -updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; -updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; - -encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; -encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; -encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; -encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; -encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; - -inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; - -encryptedFileEmpty#c21f497e = EncryptedFile; -encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; - -inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; -inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; -inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; - -inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; - -encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; -encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; - -messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; -messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; - -messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; -messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; - -inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; - -inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; - -updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; -updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; -updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update; - -inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; -inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; -inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia; -inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia; -inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; - -messageMediaDocument#2fda2204 document:Document = MessageMedia; -messageMediaAudio#c6b68300 audio:Audio = MessageMedia; - -inputAudioEmpty#d95adc84 = InputAudio; -inputAudio#77d440ff id:long access_hash:long = InputAudio; - -inputDocumentEmpty#72f0eaae = InputDocument; -inputDocument#18798952 id:long access_hash:long = InputDocument; - -inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; -inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; - -audioEmpty#586988d8 id:long = Audio; -audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; - -documentEmpty#36f8c871 id:long = Document; -document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document; -document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; - -help.support#17c6b5f6 phone_number:string user:User = help.Support; - -notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; -notifyUsers#b4c83b4c = NotifyPeer; -notifyChats#c007cec3 = NotifyPeer; -notifyAll#74d07c60 = NotifyPeer; - -updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; -updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update; - -auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; - -sendMessageTypingAction#16bf744e = SendMessageAction; -sendMessageCancelAction#fd5ec8f5 = SendMessageAction; -sendMessageRecordVideoAction#a187d66f = SendMessageAction; -sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction; -sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction; -sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; -sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction; -sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction; -sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction; -sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction; -sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction; -sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; -sendMessageChooseContactAction#628cbc6f = SendMessageAction; - -contactFound#ea879f95 user_id:int = ContactFound; - -contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found; - -updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; - -userStatusRecently#e26f42f1 = UserStatus; -userStatusLastWeek#7bf09fc = UserStatus; -userStatusLastMonth#77ebc742 = UserStatus; - -updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update; - -inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; - -privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; - -inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; -inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; -inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule; -inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; -inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; -inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule; - -privacyValueAllowContacts#fffe1bac = PrivacyRule; -privacyValueAllowAll#65427b82 = PrivacyRule; -privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule; -privacyValueDisallowContacts#f888fa1a = PrivacyRule; -privacyValueDisallowAll#8b73e763 = PrivacyRule; -privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule; - -account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules; - -accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; - -account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; - -updateUserPhone#12b9417b user_id:int phone:string = Update; - -documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; -documentAttributeAnimated#11b58939 = DocumentAttribute; -documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute; -documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute; -documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; -documentAttributeAudio#51448e5 duration:int = DocumentAttribute; -documentAttributeFilename#15590068 file_name:string = DocumentAttribute; - -messages.stickersNotModified#f1749a22 = messages.Stickers; -messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers; - -stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack; - -messages.allStickersNotModified#e86602c3 = messages.AllStickers; -messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers; - -disabledFeature#ae636f24 feature:string description:string = DisabledFeature; - -updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update; -updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update; - -messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages; - -contactLinkUnknown#5f4f9247 = ContactLink; -contactLinkNone#feedd3ad = ContactLink; -contactLinkHasPhone#268f3f59 = ContactLink; -contactLinkContact#d502c2d0 = ContactLink; - -updateWebPage#2cc36971 webpage:WebPage = Update; - -webPageEmpty#eb1477e8 id:long = WebPage; -webPagePending#c586da1c id:long date:int = WebPage; -webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage; - -messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia; - -authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization; - -account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations; - -account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password; -account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password; - -account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings; - -account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings; - -auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery; - -inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia; - -messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia; - -receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage; - -chatInviteEmpty#69df3769 = ExportedChatInvite; -chatInviteExported#fc2e05bc link:string = ExportedChatInvite; - -chatInviteAlready#5a686d7c chat:Chat = ChatInvite; -chatInvite#ce917dcd title:string = ChatInvite; - -messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction; - -updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update; - -inputStickerSetEmpty#ffb62b95 = InputStickerSet; -inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet; -inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet; - -stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet; - -messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet; - -user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User; - -botCommand#c27ac8c7 command:string description:string = BotCommand; -botCommandOld#b79d22ab command:string params:string description:string = BotCommand; - -botInfoEmpty#bb2e37ce = BotInfo; -botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector<BotCommand> = BotInfo; - -keyboardButton#a2fa4880 text:string = KeyboardButton; - -keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow; - -replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup; -replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup; -replyKeyboardMarkup#3502758c flags:int rows:Vector<KeyboardButtonRow> = ReplyMarkup; - ----functions--- - -invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; - -invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X; - -auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; -auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; -auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; -auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; -auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; -auth.logOut#5717da40 = Bool; -auth.resetAuthorizations#9fab0d1a = Bool; -auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool; -auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; -auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; -auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; - -account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; -account.unregisterDevice#65c55b40 token_type:int token:string = Bool; -account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; -account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; -account.resetNotifySettings#db7e1747 = Bool; -account.updateProfile#f0888d68 first_name:string last_name:string = User; -account.updateStatus#6628562c offline:Bool = Bool; -account.getWallPapers#c04cfac2 = Vector<WallPaper>; - -users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>; -users.getFullUser#ca30a5b1 id:InputUser = UserFull; - -contacts.getStatuses#c4a353ee = Vector<ContactStatus>; -contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; -contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts; -contacts.getSuggested#cd773428 limit:int = contacts.Suggested; -contacts.deleteContact#8e953744 id:InputUser = contacts.Link; -contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool; -contacts.block#332b49fc id:InputUser = Bool; -contacts.unblock#e54100bd id:InputUser = Bool; -contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; -contacts.exportCard#84e53737 = Vector<int>; -contacts.importCard#4fe196fe export_card:Vector<int> = User; - -messages.getMessages#4222fa74 id:Vector<int> = messages.Messages; -messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; -messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; -messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; -messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; -messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; -messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages; -messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>; -messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; -messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage; -messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates; -messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates; -messages.getChats#3c6aa187 id:Vector<int> = messages.Chats; -messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; -messages.editChatTitle#dc452855 chat_id:int title:string = Updates; -messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates; -messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates; -messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates; -messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates; - -updates.getState#edd4882a = updates.State; -updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; - -photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; -photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; -photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>; - -upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; -upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; - -help.getConfig#c4f9186b = Config; -help.getNearestDc#1fb33026 = NearestDc; -help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; -help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool; -help.getInviteText#a4a95186 lang_code:string = help.InviteText; - -photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; - -messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates; -messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates; - -geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; -geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; -geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; -geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; -geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; -geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; -geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; -geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; -geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; -geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; -geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; -geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; - -messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; -messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; -messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; -messages.discardEncryption#edd923c5 chat_id:int = Bool; -messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; -messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; -messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; -messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; -messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; -messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>; - -upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; - -initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; - -help.getSupport#9cdf08cd = help.Support; - -auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; - -messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages; - -account.checkUsername#2714d86c username:string = Bool; -account.updateUsername#3e0bdd7c username:string = User; - -contacts.search#11f812d8 q:string limit:int = contacts.Found; - -account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; -account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules; -account.deleteAccount#418d4e0b reason:string = Bool; -account.getAccountTTL#8fc711d = AccountDaysTTL; -account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; - -invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; - -contacts.resolveUsername#bf0131c username:string = User; - -account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; -account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; - -messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; -messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; - -account.updateDeviceLocked#38df3532 period:int = Bool; - -auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization; - -messages.getWebPagePreview#25223e24 message:string = MessageMedia; - -account.getAuthorizations#e320c158 = account.Authorizations; -account.resetAuthorization#df77f3bc hash:long = Bool; -account.getPassword#548a30f5 = account.Password; -account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings; -account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool; - -auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; -auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery; -auth.recoverPassword#4ea56e92 code:string = auth.Authorization; - -invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X; - -messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite; -messages.checkChatInvite#3eadb1bb hash:string = ChatInvite; -messages.importChatInvite#6c50051c hash:string = Updates; -messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet; -messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool; -messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool; -messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates; ----types--- -decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; -decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia; -decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; -decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; -decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction; -decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction; -decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction; -decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; - -decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage; -decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage; -decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer; -decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction; -decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; -decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction; - -decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction; -decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction; -decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction; -decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction; -decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction; - -decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia; ----functions--- ----types--- - -binlog.encrKey key:64*[int] = binlog.EncrKey; - -binlog.start = binlog.Update; - -binlog.dcOption dc:int name:string ip:string port:int = binlog.Update; -binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update; - -binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update; -binlog.defaultDc dc:int = binlog.Update; -binlog.dcSigned dc:int = binlog.Update; - -binlog.ourId id:int = binlog.Update; - -binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update; - -binlog.setPts pts:int = binlog.Update; -binlog.setQts qts:int = binlog.Update; -binlog.setDate date:int = binlog.Update; -binlog.setSeq seq:int = binlog.Update; - -binlog.encrChatDelete id:int = binlog.Update; -binlog.encrChatNew#84977251 flags:# id:int - access_hash:flags.17?long - date:flags.18?int - admin:flags.19?int - user_id:flags.20?int - key:flags.21?%binlog.EncrKey - g_key:flags.22?%binlog.EncrKey - state:flags.23?int - ttl:flags.24?int - layer:flags.25?int - in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int - key_fingerprint:flags.27?long - = binlog.Update; - -binlog.encrChatExchangeNew#9d49488d flags:# id:int - exchange_id:flags.17?long - key:flags.18?%binlog.EncrKey - state:flags.19?int - = binlog.Update; - -binlog.userDelete id:int = binlog.Update; -binlog.userNew#127cf2f9 flags:# id:int - access_hash:flags.17?long - first_name:flags.18?string last_name:flags.18?string - phone:flags.19?string - username:flags.20?string - photo:flags.21?Photo - real_first_name:flags.22?string real_last_name:flags.22?string - user_photo:flags.23?UserProfilePhoto - last_read_in:flags.24?int - last_read_out:flags.25?int - bot_info:flags.26?BotInfo - = binlog.Update; - -binlog.chatNew#0a10aa92 flags:# id:int - title:flags.17?string - user_num:flags.18?int - date:flags.19?int - version:flags.20?int participants:flags.20?(Vector ChatParticipant) - chat_photo:flags.21?ChatPhoto - photo:flags.22?Photo - admin:flags.23?int - last_read_in:flags.24?int - last_read_out:flags.25?int - = binlog.Update; - -binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update; -binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update; - -binlog.setMsgId old_id:long new_id:int = binlog.Update; -binlog.messageDelete lid:long = binlog.Update; - -binlog.messageNew#427cfcdb flags:# lid:long - from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int - fwd_from_id:flags.18?int fwd_date:flags.18?int - date:flags.19?int - message:flags.20?string - media:flags.21?MessageMedia - action:flags.22?MessageAction - reply_id:flags.23?int - reply_markup:flags.24?ReplyMarkup - = binlog.Update; - -binlog.messageEncrNew#6cf7cabc flags:# lid:long - from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int - //empty 18 bit - date:flags.19?int - message:flags.20?string - encr_media:flags.21?DecryptedMessageMedia - encr_action:flags.22?DecryptedMessageAction - file:flags.23?EncryptedFile - = binlog.Update; - -binlog.msgUpdate#6dd4d85f lid:long = binlog.Update; - -binlog.resetAuthorization = binlog.Update; - - ----functions--- ----types--- -resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ; -server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params; -server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params; - -p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data; -p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data; -client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data; - -dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer; -dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer; -dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer; - -server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data; - ----functions--- -req_pq#60469778 nonce:int128 = ResPQ; -req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params; -set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer; ----types--- -decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia; - -updateMsgUpdate id:int pts:int pts_count:int = Update; - -messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia; -messageMediaVideoL27#a2d24290 video:Video = MessageMedia; -//messageMediaDocumentL27#2fda2204 document:Document = MessageMedia; -//messageMediaAudioL27#c6b68300 audio:Audio = MessageMedia; ----functions--- diff --git a/libs/tgl/src/generate.c b/libs/tgl/src/generate.c deleted file mode 100644 index 68bf30272d..0000000000 --- a/libs/tgl/src/generate.c +++ /dev/null @@ -1,3219 +0,0 @@ -/* - This file is part of tgl-libary/generate - - Tgl-library/generate 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/generate 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/generate. If not, see <http://www.gnu.org/licenses/>. - - Copyright Vitaly Valtman 2014-2015 - - 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 _GNU_SOURCE - -#include "config.h" -#include <stdio.h> -#include <signal.h> -#ifdef HAVE_EXECINFO_H -#include <execinfo.h> -#endif -#if defined(WIN32) || defined(_WIN32) -#include <io.h> -#include <stdint.h> -#include <string.h> -#ifndef __MINGW32__ -#include "wingetopt.h" -#endif -#else -#include <unistd.h> -#endif -#include <stdlib.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <share.h> -#include <assert.h> -#include <string.h> - -#include "..\tl-parser\src\tl-tl.h" -#include "generate.h" - -#include "tree.h" - -int header; - -#if defined(WIN32) || defined(_WIN32) -char* strndup(const char* str, size_t n) { - size_t len = n; - const char *end = memchr(str, '\0', n); - if (end) - len = end - str; - - char* dupstr = malloc(len + 1); - if (dupstr != NULL) { - memcpy(dupstr, str, len); - dupstr[len] = '\0'; - } - return dupstr; -} - -#define lrand48() rand() -#define _PRINTF_INT64_ "I64" -#else -#define _PRINTF_INT64_ "ll" -#endif - -#define tl_type_name_cmp(a,b) (a->name > b->name ? 1 : a->name < b->name ? -1 : 0) - -DEFINE_TREE (tl_type, struct tl_type *, tl_type_name_cmp, 0) -DEFINE_TREE (tl_combinator, struct tl_combinator *, tl_type_name_cmp, 0) - -struct tree_tl_type *type_tree; -struct tree_tl_combinator *function_tree; - -void tl_function_insert_by_name (struct tl_combinator *c) { - function_tree = tree_insert_tl_combinator (function_tree, c, lrand48 ()); -} - -struct tl_type *tl_type_get_by_name (int name) { - static struct tl_type t; - t.name = name; - - return tree_lookup_tl_type (type_tree, &t); -} - -void tl_type_insert_by_name (struct tl_type *t) { - type_tree = tree_insert_tl_type (type_tree, t, lrand48 ()); -} - -int is_empty (struct tl_type *t) { - if (t->name == NAME_INT || t->name == NAME_LONG || t->name == NAME_DOUBLE || t->name == NAME_STRING) { return 1; } - if (t->constructors_num != 1) { return 0; } - int count = 0; - int i; - struct tl_combinator *c = t->constructors[0]; - for (i = 0; i < c->args_num; i++) { - if (!(c->args[i]->flags & FLAG_OPT_VAR)) { count ++; } - } - return count == 1; -} - - -static char buf[1 << 20]; -int buf_size; -int *buf_ptr = (int *)buf; -int *buf_end; -#ifndef DISABLE_EXTF -int skip_only = 0; -#else -int skip_only = 1; -#endif - -int verbosity; - -int get_int (void) { - assert (buf_ptr < buf_end); - return *(buf_ptr ++); -} - -long long get_long (void) { - assert (buf_ptr + 1 < buf_end); - long long r = *(long long *)buf_ptr; - buf_ptr += 2; - return r; -} - -static void *malloc0 (int size) { - void *r = malloc (size); - assert (r); - memset (r, 0, size); - return r; -} - -char *get_string (void) { - int l = *(unsigned char *)buf_ptr; - assert (l != 0xff); - - char *res; - int tlen = 0; - if (l == 0xfe) { - l = ((unsigned)get_int ()) >> 8; - res = (char *)buf_ptr; - tlen = l; - } else { - res = ((char *)buf_ptr) + 1; - tlen = 1 + l; - } - - int len = l; - - tlen += ((-tlen) & 3); - assert (!(tlen & 3)); - - buf_ptr += tlen / 4; - assert (buf_ptr <= buf_end); - - char *r = strndup (res, len); - assert (r); - return r; -} - - -int tn, fn, cn; -struct tl_type **tps; -struct tl_combinator **fns; - -struct tl_tree *read_tree (int *var_num); -struct tl_tree *read_nat_expr (int *var_num); -struct tl_tree *read_type_expr (int *var_num); -int read_args_list (struct arg **args, int args_num, int *var_num); - -#define use_var_nat_full_form(x) 0 - -void *int_to_var_nat_const_init (long long x) { - if (use_var_nat_full_form (x)) { - struct tl_tree_nat_const *T = malloc (sizeof (*T)); - assert (T); - T->self.flags = 0; - T->self.methods = &tl_pnat_const_full_methods; - T->value = x; - return T; - } else { - return (void *)(long)(x * 2 - 0x80000001l); - } -} - -long long var_nat_const_to_int (void *x) { - if (((long)x) & 1) { - return (((long)x) + 0x80000001l) / 2; - } else { - return ((struct tl_tree_nat_const *)x)->value; - } -} - -int tl_tree_type_type (struct tl_tree *x) { - return NODE_TYPE_TYPE; -} - -int tl_tree_type_array (struct tl_tree *x) { - return NODE_TYPE_ARRAY; -} - -int tl_tree_type_nat_const (struct tl_tree *x) { - return NODE_TYPE_NAT_CONST; -} - -int tl_tree_type_var_num (struct tl_tree *x) { - return NODE_TYPE_VAR_NUM; -} - -int tl_tree_type_var_type (struct tl_tree *x) { - return NODE_TYPE_VAR_TYPE; -} - -struct tl_tree_methods tl_var_num_methods = { - .type = tl_tree_type_var_num -}; - -struct tl_tree_methods tl_var_type_methods = { - .type = tl_tree_type_var_type -}; - -struct tl_tree_methods tl_type_methods = { - .type = tl_tree_type_type -}; - -struct tl_tree_methods tl_nat_const_methods = { - .type = tl_tree_type_nat_const -}; - -struct tl_tree_methods tl_array_methods = { - .type = tl_tree_type_array -}; - -struct tl_tree_methods tl_ptype_methods = { - .type = tl_tree_type_type -}; - -struct tl_tree_methods tl_parray_methods = { - .type = tl_tree_type_array -}; - -struct tl_tree_methods tl_pvar_num_methods = { - .type = tl_tree_type_var_num -}; - -struct tl_tree_methods tl_pvar_type_methods = { - .type = tl_tree_type_var_type -}; - -struct tl_tree_methods tl_nat_const_full_methods = { - .type = tl_tree_type_nat_const -}; - -struct tl_tree_methods tl_pnat_const_full_methods = { - .type = tl_tree_type_nat_const -}; - -struct tl_tree *read_num_const (int *var_num) { - return (void *)int_to_var_nat_const_init (get_int ()); -} - - -void print_c_type_name (struct tl_tree *t, char *offset, int in) { - int x = TL_TREE_METHODS(t)->type (t); - - if (x == NODE_TYPE_VAR_TYPE) { - printf ("void *"); - return; - } - - if (x == NODE_TYPE_ARRAY) { - struct tl_tree_array *a = (void *)t; - assert (a->args_num == 1); - print_c_type_name (a->args[0]->type, offset, in); - printf ("*"); - return; - } - - struct tl_type *T = ((struct tl_tree_type *)t)->type; - if (!strcmp (T->id, "Vector") && in) { - printf ("struct {\n"); - printf ("%s int *cnt;\n", offset); - printf ("%s ", offset); - print_c_type_name (((struct tl_tree_type *)t)->children[0], offset, in); - printf ("*data;\n"); - printf ("%s} *", offset); - return; - } - if (!strcmp (T->id, "Long")) { - printf ("long long *"); - return; - } - if (!strcmp (T->id, "#") || !strcmp (T->id, "Int")) { - printf ("int *"); - return; - } - if (!strcmp (T->id, "Double")) { - printf ("double *"); - return; - } - if (!strcmp (T->id, "String") || !strcmp (T->id, "Bytes")) { - /*printf ("struct {\n"); - printf ("%s int len;\n", offset); - printf ("%s char *data;\n", offset); - printf ("%s} *", offset); - return;*/ - - printf ("struct tl_ds_string *"); - return; - } - printf ("struct tl_ds_%s *", T->print_id); -} - -int gen_uni_skip (struct tl_tree *t, char *cur_name, int *vars, int first, int fun) { - assert (t); - int x = TL_TREE_METHODS (t)->type (t); - int l = 0; - int i; - int j; - struct tl_tree_type *t1; - struct tl_tree_array *t2; - int y; - int L = strlen (cur_name); - char *fail = fun == 1 ? "return 0;" : fun == -1 ? "return;" : "return -1;"; - switch (x) { - case NODE_TYPE_TYPE: - t1 = (void *)t; - if (!first) { - printf (" if (ODDP(%s) || %s->type->name != 0x%08x) { %s }\n", cur_name, cur_name, t1->type->name, fail); - } else { - printf (" if (ODDP(%s) || (%s->type->name != 0x%08x && %s->type->name != 0x%08x)) { %s }\n", cur_name, cur_name, t1->type->name, cur_name, ~t1->type->name, fail); - } - for (i = 0; i < t1->children_num; i++) { -#if defined(_MSC_VER) -#pragma warning(disable : 4996) -#endif - sprintf (cur_name + L, "->params[%d]", i); -#if defined(_MSC_VER) -#pragma warning(default : 4996) -#endif - gen_uni_skip (t1->children[i], cur_name, vars, 0, fun); - cur_name[L] = 0; - } - return 0; - case NODE_TYPE_NAT_CONST: - printf (" if (EVENP(%s) || ((long)%s) != %"_PRINTF_INT64_"d) { %s }\n", cur_name, cur_name, var_nat_const_to_int (t) * 2 + 1, fail); - return 0; - case NODE_TYPE_ARRAY: - printf (" if (ODDP(%s) || %s->type->name != TL_TYPE_ARRAY) { %s }\n", cur_name, cur_name, fail); - t2 = (void *)t; - -#if defined(_MSC_VER) -#pragma warning(disable : 4996) -#endif - sprintf (cur_name + L, "->params[0]"); -#if defined(_MSC_VER) -#pragma warning(default : 4996) -#endif - y = gen_uni_skip (t2->multiplicity, cur_name, vars, 0, fun); - cur_name[L] = 0; - -#if defined(_MSC_VER) -#pragma warning(disable : 4996) -#endif - sprintf (cur_name + L, "->params[1]"); -#if defined(_MSC_VER) -#pragma warning(default : 4996) -#endif - y += gen_uni_skip (t2->args[0]->type, cur_name, vars, 0, fun); - cur_name[L] = 0; - return 0; - case NODE_TYPE_VAR_TYPE: - printf (" if (ODDP(%s)) { %s }\n", cur_name, fail); - i = ((struct tl_tree_var_type *)t)->var_num; - if (!vars[i]) { - printf (" struct paramed_type *var%d = %s; assert (var%d);\n", i, cur_name, i); - vars[i] = 1; - } else if (vars[i] == 1) { - printf (" if (compare_types (var%d, %s) < 0) { %s }\n", i, cur_name, fail); - } else { - assert (0); - return -1; - } - return l; - case NODE_TYPE_VAR_NUM: - printf (" if (EVENP(%s)) { %s }\n", cur_name, fail); - i = ((struct tl_tree_var_num *)t)->var_num; - j = ((struct tl_tree_var_num *)t)->dif; - if (!vars[i]) { - printf (" struct paramed_type *var%d = ((void *)%s) + %d; assert (var%d);\n", i, cur_name, 2 * j, i); - vars[i] = 2; - } else if (vars[i] == 2) { - printf (" if (var%d != ((void *)%s) + %d) { %s }\n", i, cur_name, 2 * j, fail); - } else { - assert (0); - return -1; - } - return 0; - default: - assert (0); - return -1; - } -} - -void print_offset (int len) { - int i; - for (i = 0; i < len; i++) { printf (" "); } -} - -int gen_create (struct tl_tree *t, int *vars, int offset) { - int x = TL_TREE_METHODS (t)->type (t); - int i; - struct tl_tree_type *t1; - struct tl_tree_array *t2; - switch (x) { - case NODE_TYPE_TYPE: - print_offset (offset); - printf ("&(struct paramed_type){\n"); - print_offset (offset + 2); - t1 = (void *)t; - if (t1->self.flags & FLAG_BARE) { - printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"Bare_%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", ~t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types); - } else { - printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types); - } - if (t1->children_num) { - print_offset (offset + 2); - printf (".params = (struct paramed_type *[]){\n"); - for (i = 0; i < t1->children_num; i++) { - assert (gen_create (t1->children[i], vars, offset + 4) >= 0); - printf (",\n"); - } - print_offset (offset + 2); - printf ("}\n"); - } else { - print_offset (offset + 2); - printf (".params = 0,\n"); - } - print_offset (offset); - printf ("}"); - return 0; - case NODE_TYPE_NAT_CONST: - print_offset (offset); - printf ("INT2PTR (%d)", (int)var_nat_const_to_int (t)); - return 0; - case NODE_TYPE_ARRAY: - print_offset (offset); - printf ("&(struct paramed_type){\n"); - print_offset (offset + 2); - t2 = (void *)t; - printf (".type = &(struct tl_type_descr) {.name = NAME_ARRAY, .id = \"array\", .params_num = 2, .params_types = 1},\n"); - print_offset (offset + 2); - printf (".params = (struct paramed_type **){\n"); - gen_create (t2->multiplicity, vars, offset + 4); - printf (",\n"); - gen_create (t2->args[0]->type, vars, offset + 4); - printf (",\n"); - print_offset (offset + 2); - printf ("}\n"); - print_offset (offset); - printf ("}"); - return 0; - case NODE_TYPE_VAR_TYPE: - print_offset (offset); - printf ("var%d", ((struct tl_tree_var_type *)t)->var_num); - return 0; - case NODE_TYPE_VAR_NUM: - print_offset (offset); - printf ("((void *)var%d) + %d", ((struct tl_tree_var_type *)t)->var_num, 2 * ((struct tl_tree_var_num *)t)->dif); - return 0; - default: - assert (0); - return -1; - } -} - -int gen_field_skip (struct arg *arg, int *vars, int num) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - if (arg->var_num >= 0) { - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - if (vars[arg->var_num] == 0) { - printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); - printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); - printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num); - } else { - assert (0); - return -1; - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - if (!bare) { - printf ("%sif (skip_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); - } else { - printf ("%sif (skip_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); - } - } else { - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); - printf ("%s if (skip_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num); - printf ("%s}\n", offset); - } - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_fetch (struct arg *arg, int *vars, int num, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - if (!empty) { - printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset); - } - if (arg->id && strlen (arg->id) && !empty) { - printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id); - } - if (arg->var_num >= 0) { - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - if (vars[arg->var_num] == 0) { - printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); - printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset); - printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); - printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset); - printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num); - } else { - assert (0); - return -1; - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - if (!bare) { - printf ("%sif (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); - } else { - printf ("%sif (fetch_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); - } - } else { - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%seprintf (\" [\");\n", offset); - printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); - printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset); - printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); - printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset); - printf ("%s if (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num); - printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); - printf ("%s}\n", offset); - printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset); - printf ("%seprintf (\" ]\");\n", offset); - } - } - if (!empty) { - printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset); - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_store (struct arg *arg, int *vars, int num, int from_func, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - char *fail = from_func ? "0" : "-1"; - char *expect = from_func ? "expect_token_ptr" : "expect_token"; - if (arg->id && strlen (arg->id) > 0 && !empty) { - printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); - printf ("%s local_next_token ();\n", offset); - printf ("%s %s (\":\", 1);\n", offset, expect); - printf ("%s}\n", offset); - } - if (arg->var_num >= 0) { - printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail); - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - if (vars[arg->var_num] == 0) { - printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); - printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num); - printf ("%sout_int (get_int ());\n", offset); - printf ("%sassert (var%d);\n", offset, arg->var_num); - printf ("%slocal_next_token ();\n", offset); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); - printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail); - printf ("%sout_int (get_int ());\n", offset); - printf ("%slocal_next_token ();\n", offset); - } else { - assert (0); - return -1; - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - if (!bare) { - printf ("%sif (store_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); - } else { - printf ("%sif (store_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); - } - } else { - printf ("%s%s (\"[\", 1);\n", offset, expect); - - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); - printf ("%s if (store_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail); - printf ("%s}\n", offset); - - printf ("%s%s (\"]\", 1);\n", offset, expect); - } - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_autocomplete (struct arg *arg, int *vars, int num, int from_func, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - char *fail = from_func ? "0" : "-1"; - char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete"; - if (arg->id && strlen (arg->id) > 0 && !empty) { - printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); - printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id); - printf ("%s return %s;\n", offset, fail); - printf ("%s}\n", offset); - - printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); - printf ("%s local_next_token ();\n", offset); - printf ("%s %s (\":\", 1);\n", offset, expect); - printf ("%s}\n", offset); - } - if (arg->var_num >= 0) { - printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail); - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - if (vars[arg->var_num] == 0) { - printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); - printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num); - printf ("%sassert (var%d);\n", offset, arg->var_num); - printf ("%slocal_next_token ();\n", offset); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); - printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail); - printf ("%slocal_next_token ();\n", offset); - } else { - assert (0); - return -1; - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - if (!bare) { - printf ("%sif (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); - } else { - printf ("%sif (autocomplete_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); - } - } else { - printf ("%s%s (\"[\", 1);\n", offset, expect); - - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); - printf ("%s if (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail); - printf ("%s}\n", offset); - - printf ("%s%s (\"]\", 1);\n", offset, expect); - } - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_fetch_ds (struct arg *arg, int *vars, int num, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - if (arg->var_num >= 0) { - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - printf ("%sassert (in_remaining () >= 4);\n", offset); - if (arg->id && strlen (arg->id)) { - printf ("%sresult->%s = talloc (4);", offset, arg->id); - printf ("%s*result->%s = prefetch_int ();", offset, arg->id); - } else { - printf ("%sresult->f%d = talloc (4);", offset, num - 1); - printf ("%s*result->f%d = prefetch_int ();", offset, num - 1); - } - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == INT2PTR (fetch_int ()));\n", offset, arg->var_num); - } else { - assert (0); - return -1; - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - if (arg->id && strlen (arg->id)) { - printf ("%sresult->%s = ", offset, arg->id); - } else { - printf ("%sresult->f%d = ", offset, num - 1); - } - if (t == NODE_TYPE_TYPE && !strcmp (((struct tl_tree_type *)arg->type)->type->id, "Vector")) { - printf ("(void *)"); - } - if (!bare) { - printf ("fetch_ds_type_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); - } else { - printf ("fetch_ds_type_bare_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); - } - } else { - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - if (arg->id && strlen (arg->id)) { - printf ("%sresult->%s = ", offset, arg->id); - } else { - printf ("%sresult->f%d = ", offset, num - 1); - } - printf ("talloc0 (multiplicity%d * sizeof (void *));\n", num); - printf ("%s{\n", offset); - printf ("%s int i = 0;\n", offset); - printf ("%s while (i < multiplicity%d) {\n", offset, num); - if (arg->id && strlen (arg->id)) { - printf ("%s result->%s[i ++] =", offset, arg->id); - } else { - printf ("%s result->f%d[i ++] = ", offset, num - 1); - } - printf ("fetch_ds_type_%s (field%d);\n", "any", num); - printf ("%s }\n", offset); - printf ("%s}\n", offset); - } - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_free_ds (struct arg *arg, int *vars, int num, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - if (arg->var_num >= 0) { - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - if (arg->id && strlen (arg->id)) { - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id); - } - printf ("%stfree (D->%s, sizeof (*D->%s));\n", offset, arg->id, arg->id); - } else { - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1); - } - printf ("%stfree (D->f%d, sizeof (*D->f%d));\n", offset, num - 1, num - 1); - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int any = (t == NODE_TYPE_VAR_TYPE) || ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR; - if (arg->id && strlen (arg->id)) { - printf ("%sfree_ds_type_%s (D->%s, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, arg->id, num); - } else { - printf ("%sfree_ds_type_%s (D->f%d, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num - 1, num); - } - } else { - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%s{\n", offset); - printf ("%s int i = 0;\n", offset); - printf ("%s while (i < multiplicity%d) {\n", offset, num); - if (arg->id && strlen (arg->id)) { - printf ("%s free_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num); - } else { - printf ("%s free_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num); - } - printf ("%s }\n", offset); - printf ("%s}\n", offset); - if (arg->id && strlen (arg->id)) { - printf ("%stfree (D->%s, sizeof (void *) * multiplicity%d);\n", offset, arg->id, num); - } else { - printf ("%stfree (D->f%d, sizeof (void *) * multiplicity%d);\n", offset, num - 1, num); - } - } - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_store_ds (struct arg *arg, int *vars, int num, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - if (arg->var_num >= 0) { - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - assert (t == NAME_VAR_NUM); - if (arg->id && strlen (arg->id)) { - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id); - } - printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num); - } else { - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1); - } - printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num); - } - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int any = (t == NODE_TYPE_VAR_TYPE); - int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR; - if (arg->id && strlen (arg->id)) { - printf ("%sstore_ds_type_%s%s (%sD->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num); - } else { - printf ("%sstore_ds_type_%s%s (%sD->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num); - } - } else { - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%s{\n", offset); - printf ("%s int i = 0;\n", offset); - printf ("%s while (i < multiplicity%d) {\n", offset, num); - if (arg->id && strlen (arg->id)) { - printf ("%s store_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num); - } else { - printf ("%s store_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num); - } - printf ("%s }\n", offset); - printf ("%s}\n", offset); - } - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_print_ds (struct arg *arg, int *vars, int num, int empty) { - assert (arg); - char *offset = " "; - int o = 0; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - o = 2; - } - if (!empty) { - printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset); - } - if (arg->id && strlen (arg->id) && !empty) { - printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id); - } - if (arg->var_num >= 0) { - assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); - int t = ((struct tl_tree_type *)arg->type)->type->name; - if (t == NAME_VAR_TYPE) { - fprintf (stderr, "Not supported yet\n"); - assert (0); - } else { - if (arg->id && strlen (arg->id)) { - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->%s);\n", offset, arg->var_num, arg->id); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == INT2PTR (*DS->%s));\n", offset, arg->var_num, arg->id); - } - } else { - if (vars[arg->var_num] == 0) { - printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->f%d);\n", offset, arg->var_num, num - 1); - vars[arg->var_num] = 2; - } else if (vars[arg->var_num] == 2) { - printf ("%sassert (vars%d == *DS->f%d);\n", offset, arg->var_num, num - 1); - } - } - printf ("%seprintf (\" %%d\", (int)PTR2INT (var%d));\n", offset, arg->var_num); - } - } else { - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (arg->type, vars, 2 + o) >= 0); - printf (";\n"); - int bare = arg->flags & FLAG_BARE; - if (!bare && t == NODE_TYPE_TYPE) { - bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; - } - int any = (t == NODE_TYPE_VAR_TYPE); - int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR; - if (arg->id && strlen (arg->id)) { - printf ("%sprint_ds_type_%s%s (%sDS->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num); - } else { - printf ("%sprint_ds_type_%s%s (%sDS->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num); - } - } else { - assert (t == NODE_TYPE_ARRAY); - printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); - printf ("%s);\n", offset); - printf ("%sstruct paramed_type *field%d = \n", offset, num); - assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); - printf (";\n"); - printf ("%seprintf (\" [\");\n", offset); - printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); - printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset); - printf ("%s{\n", offset); - printf ("%s int i = 0;\n", offset); - printf ("%s while (i < multiplicity%d) {\n", offset, num); - printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset); - if (arg->id && strlen (arg->id)) { - printf ("%s print_ds_type_%s (DS->%s[i ++], field%d);\n", offset, "any", arg->id, num); - } else { - printf ("%s print_ds_type_%s (DS->f%d[i ++], field%d);\n", offset, "any", num - 1, num); - } - printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); - printf ("%s }\n", offset); - printf ("%s}\n", offset); - printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset); - printf ("%seprintf (\" ]\");\n", offset); - } - } - if (!empty) { - printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset); - } - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_autocomplete_excl (struct arg *arg, int *vars, int num, int from_func) { - assert (arg); - assert (arg->var_num < 0); - char *offset = " "; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - } - char *fail = from_func ? "0" : "-1"; - char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete"; - if (arg->id && strlen (arg->id) > 0) { - printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); - printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id); - printf ("%s return %s;\n", offset, fail); - printf ("%s}\n", offset); - - printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); - printf ("%s local_next_token ();\n", offset); - printf ("%s %s (\":\", 1);\n", offset, expect); - printf ("%s}\n", offset); - } - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE); - printf ("%sstruct paramed_type *field%d = autocomplete_function_any ();\n", offset, num); - printf ("%sif (!field%d) { return 0; }\n", offset, num); - printf ("%sadd_var_to_be_freed (field%d);\n", offset, num); - static char s[20]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 20, "field%d", num); -#else - sprintf (s, "field%d", num); -#endif - gen_uni_skip (arg->type, s, vars, 1, 1); - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -int gen_field_store_excl (struct arg *arg, int *vars, int num, int from_func) { - assert (arg); - assert (arg->var_num < 0); - char *offset = " "; - if (arg->exist_var_num >= 0) { - printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); - offset = " "; - } - char *expect = from_func ? "expect_token_ptr" : "expect_token"; - if (arg->id && strlen (arg->id) > 0) { - printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); - printf ("%s local_next_token ();\n", offset); - printf ("%s %s (\":\", 1);\n", offset, expect); - printf ("%s}\n", offset); - } - int t = TL_TREE_METHODS (arg->type)->type (arg->type); - assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE); - printf ("%sstruct paramed_type *field%d = store_function_any ();\n", offset, num); - printf ("%sif (!field%d) { return 0; }\n", offset, num); - static char s[20]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 20, "field%d", num); -#else - sprintf (s, "field%d", num); -#endif - gen_uni_skip (arg->type, s, vars, 1, 1); - if (arg->exist_var_num >= 0) { - printf (" }\n"); - } - return 0; -} - -void gen_constructor_skip (struct tl_combinator *c) { - printf ("int skip_constructor_%s (struct paramed_type *T) {\n", c->print_id); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" return -1;\n"); - printf ("}\n"); - return; - } - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - gen_uni_skip (c->result, s, vars, 1, 0); - - if (c->name == NAME_INT) { - printf (" if (in_remaining () < 4) { return -1;}\n"); - printf (" fetch_int ();\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" if (in_remaining () < 8) { return -1;}\n"); - printf (" fetch_long ();\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING) { - printf (" int l = prefetch_strlen ();\n"); - printf (" if (l < 0) { return -1;}\n"); - printf (" fetch_str (l);\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" if (in_remaining () < 8) { return -1;}\n"); - printf (" fetch_double ();\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } - - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_skip (c->args[i], vars, i + 1) >= 0); - } - free (vars); - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_constructor_fetch (struct tl_combinator *c) { - printf ("int fetch_constructor_%s (struct paramed_type *T) {\n", c->print_id); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" return -1;\n"); - printf ("}\n"); - return; - } - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - gen_uni_skip (c->result, s, vars, 1, 0); - - if (c->name == NAME_INT) { - printf (" if (in_remaining () < 4) { return -1;}\n"); - printf (" eprintf (\" %%d\", fetch_int ());\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" if (in_remaining () < 8) { return -1;}\n"); - printf (" eprintf (\" %%"_PRINTF_INT64_"d\", fetch_long ());\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING) { - printf (" static char buf[1 << 22];\n"); - printf (" int l = prefetch_strlen ();\n"); - printf (" if (l < 0 || (l >= (1 << 22) - 2)) { return -1; }\n"); - printf (" memcpy (buf, fetch_str (l), l);\n"); - printf (" buf[l] = 0;\n"); - printf (" print_escaped_string (buf, l);\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" if (in_remaining () < 8) { return -1;}\n"); - printf (" eprintf (\" %%lf\", fetch_double ());\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } - - assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - if (!empty) { - printf (" eprintf (\" %s\");\n", c->id); - printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n"); - } - - - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_fetch (c->args[i], vars, i + 1, empty) >= 0); - } - free (vars); - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_constructor_store (struct tl_combinator *c) { - printf ("int store_constructor_%s (struct paramed_type *T) {\n", c->print_id); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" return -1;\n"); - printf ("}\n"); - return; - } - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - assert (c->var_num <= 10); - gen_uni_skip (c->result, s, vars, 1, 0); - - if (c->name == NAME_INT) { - printf (" if (is_int ()) {\n"); - printf (" out_int (get_int ());\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" if (is_int ()) {\n"); - printf (" out_long (get_int ());\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING) { - printf (" if (cur_token_len >= 0) {\n"); - printf (" out_cstring (cur_token, cur_token_len);\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" if (is_double ()) {\n"); - printf (" out_double (get_double());\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } - - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_store (c->args[i], vars, i + 1, 0, empty) >= 0); - } - - free (vars); - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_constructor_autocomplete (struct tl_combinator *c) { - printf ("int autocomplete_constructor_%s (struct paramed_type *T) {\n", c->print_id); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" return -1;\n"); - printf ("}\n"); - return; - } - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - assert (c->var_num <= 10); - gen_uni_skip (c->result, s, vars, 1, 0); - - if (c->name == NAME_INT) { - printf (" if (is_int ()) {\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" if (is_int ()) {\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING) { - printf (" if (cur_token_len >= 0) {\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" if (is_double ()) {\n"); - printf (" local_next_token ();\n"); - printf (" return 0;\n"); - printf (" } else {\n"); - printf (" return -1;\n"); - printf (" }\n"); - printf ("}\n"); - return; - } - - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_autocomplete (c->args[i], vars, i + 1, 0, empty) >= 0); - } - - free (vars); - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_constructor_fetch_ds (struct tl_combinator *c) { - print_c_type_name (c->result, "", 0); - printf ("fetch_ds_constructor_%s (struct paramed_type *T) {\n", c->print_id); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" assert (0);\n"); - printf ("}\n"); - return; - } - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - gen_uni_skip (c->result, s, vars, 1, 1); - - printf (" "); - print_c_type_name (c->result, " ", 0); - printf (" result = talloc0 (sizeof (*result));\n"); - - struct tl_type *T = ((struct tl_tree_type *)c->result)->type; - if (T->constructors_num > 1) { - printf (" result->magic = 0x%08x;\n", c->name); - } - - if (c->name == NAME_INT) { - printf (" assert (in_remaining () >= 4);\n"); - printf (" *result = fetch_int ();\n"); - printf (" return result;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" assert (in_remaining () >= 8);\n"); - printf (" *result = fetch_long ();\n"); - printf (" return result;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { - printf (" assert (in_remaining () >= 4);\n"); - printf (" int l = prefetch_strlen ();\n"); - printf (" assert (l >= 0);\n"); - printf (" result->len = l;\n"); - printf (" result->data = talloc (l + 1);\n"); - printf (" result->data[l] = 0;\n"); - printf (" memcpy (result->data, fetch_str (l), l);\n"); - printf (" return result;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" assert (in_remaining () >= 8);\n"); - printf (" *result = fetch_double ();\n"); - printf (" return result;\n"); - printf ("}\n"); - return; - } - - assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_fetch_ds (c->args[i], vars, i + 1, empty) >= 0); - } - free (vars); - printf (" return result;\n"); - printf ("}\n"); -} - -void gen_constructor_free_ds (struct tl_combinator *c) { - printf ("void free_ds_constructor_%s (", c->print_id); - print_c_type_name (c->result, "", 0); - printf ("D, struct paramed_type *T) {\n"); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" assert (0);\n"); - printf ("}\n"); - return; - } - - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - gen_uni_skip (c->result, s, vars, 1, -1); - - //printf (" "); - //print_c_type_name (c->result, " ", 0); - //printf (" result = talloc0 (sizeof (*result));\n"); - - //struct tl_type *T = ((struct tl_tree_type *)c->result)->type; - - if (c->name == NAME_INT) { - printf (" tfree (D, sizeof (*D));\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" tfree (D, sizeof (*D));\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { - printf (" tfree (D->data, D->len + 1);\n"); - printf (" tfree (D, sizeof (*D));\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" tfree (D, sizeof (*D));\n"); - printf ("}\n"); - return; - } - - assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_free_ds (c->args[i], vars, i + 1, empty) >= 0); - } - free (vars); - printf ("}\n"); -} - -void gen_constructor_store_ds (struct tl_combinator *c) { - printf ("void store_ds_constructor_%s (", c->print_id); - print_c_type_name (c->result, "", 0); - printf ("D, struct paramed_type *T) {\n"); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" assert (0);\n"); - printf ("}\n"); - return; - } - - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - gen_uni_skip (c->result, s, vars, 1, -1); - - //printf (" "); - //print_c_type_name (c->result, " ", 0); - //printf (" result = talloc0 (sizeof (*result));\n"); - - //struct tl_type *T = ((struct tl_tree_type *)c->result)->type; - - if (c->name == NAME_INT) { - printf (" out_int (*D);\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" out_long (*D);\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { - printf (" out_cstring (D->data, D->len);\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" out_double (*D);\n"); - printf ("}\n"); - return; - } - - assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_store_ds (c->args[i], vars, i + 1, empty) >= 0); - } - free (vars); - printf ("}\n"); -} - -void gen_constructor_print_ds (struct tl_combinator *c) { - printf ("int print_ds_constructor_%s (", c->print_id); - print_c_type_name (c->result, "", 0); - printf ("DS, struct paramed_type *T) {\n"); - int i; - for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { - printf (" return -1;\n"); - printf ("}\n"); - return; - } - static char s[10000]; -#if defined(_MSC_VER) && _MSC_VER >= 1400 - sprintf_s (s, 10000, "T"); -#else - sprintf (s, "T"); -#endif - - int *vars = malloc0 (c->var_num * 4);; - gen_uni_skip (c->result, s, vars, 1, 0); - - if (c->name == NAME_INT) { - printf (" eprintf (\" %%d\", *DS);\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_LONG) { - printf (" eprintf (\" %%"_PRINTF_INT64_"d\", *DS);\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { - printf (" print_escaped_string (DS->data, DS->len);\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } else if (c->name == NAME_DOUBLE) { - printf (" eprintf (\" %%lf\", *DS);\n"); - printf (" return 0;\n"); - printf ("}\n"); - return; - } - - assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); - int empty = is_empty (((struct tl_tree_type *)c->result)->type); - if (!empty) { - printf (" eprintf (\" %s\");\n", c->id); - printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n"); - } - - - for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { - assert (gen_field_print_ds (c->args[i], vars, i + 1, empty) >= 0); - } - free (vars); - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_type_skip (struct tl_type *t) { - printf ("int skip_type_%s (struct paramed_type *T) {\n", t->print_id); - printf (" if (in_remaining () < 4) { return -1;}\n"); - printf (" int magic = fetch_int ();\n"); - printf (" switch (magic) {\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" case 0x%08x: return skip_constructor_%s (T);\n", t->constructors[i]->name, t->constructors[i]->print_id); - } - printf (" default: return -1;\n"); - printf (" }\n"); - printf ("}\n"); - printf ("int skip_type_bare_%s (struct paramed_type *T) {\n", t->print_id); - if (t->constructors_num > 1) { - printf (" int *save_in_ptr = in_ptr;\n"); - for (i = 0; i < t->constructors_num; i++) { - printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id); - printf (" in_ptr = save_in_ptr;\n"); - } - } else { - for (i = 0; i < t->constructors_num; i++) { - printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id); - } - } - printf (" return -1;\n"); - printf ("}\n"); -} - -void gen_type_fetch (struct tl_type *t) { - int empty = is_empty (t);; - printf ("int fetch_type_%s (struct paramed_type *T) {\n", t->print_id); - printf (" if (in_remaining () < 4) { return -1;}\n"); - if (!empty) { - printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); - printf (" eprintf (\" (\");\n"); - } - printf (" int magic = fetch_int ();\n"); - printf (" int res = -1;\n"); - printf (" switch (magic) {\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" case 0x%08x: res = fetch_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id); - } - printf (" default: return -1;\n"); - printf (" }\n"); - if (!empty) { - printf (" if (res >= 0) {\n"); - printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n"); - printf (" eprintf (\" )\");\n"); - //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n"); - printf (" }\n"); - } - printf (" return res;\n"); - printf ("}\n"); - printf ("int fetch_type_bare_%s (struct paramed_type *T) {\n", t->print_id); - if (t->constructors_num > 1) { - printf (" int *save_in_ptr = in_ptr;\n"); - - if (!empty) { - printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); - } - for (i = 0; i < t->constructors_num; i++) { - printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; %sassert (!fetch_constructor_%s (T)); %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "eprintf (\" (\"); ", t->constructors[i]->print_id , empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");"); - printf (" in_ptr = save_in_ptr;\n"); - } - } else { - for (i = 0; i < t->constructors_num; i++) { - if (!empty) { - printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); - printf (" eprintf (\" (\");\n"); - } - printf (" if (fetch_constructor_%s (T) >= 0) { %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");" ); - } - } - printf (" return -1;\n"); - printf ("}\n"); -} - -void gen_type_store (struct tl_type *t) { - int empty = is_empty (t);; - int k = 0; - for (k = 0; k < 2; k++) { - printf ("int store_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id); - if (empty) { - if (!k) { - printf (" out_int (0x%08x);\n", t->constructors[0]->name); - } - printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); - printf (" return 0;\n"); - printf ("}\n"); - } else { - printf (" expect_token (\"(\", 1);\n"); - printf (" if (cur_token_len < 0) { return -1; }\n"); - printf (" if (cur_token_len < 0) { return -1; }\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id); - if (!k) { - printf (" out_int (0x%08x);\n", t->constructors[i]->name); - } - printf (" local_next_token ();\n"); - printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id); - printf (" expect_token (\")\", 1);\n"); - printf (" return 0;\n"); - printf (" }\n"); - } - /*if (t->constructors_num == 1) { - printf (" if (!force) {\n"); - if (!k) { - printf (" out_int (0x%08x);\n", t->constructors[0]->name); - } - printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); - printf (" expect_token (\")\", 1);\n"); - printf (" return 0;\n"); - printf (" }\n"); - }*/ - printf (" return -1;\n"); - printf ("}\n"); - } - } -} - -void gen_type_autocomplete (struct tl_type *t) { - int empty = is_empty (t);; - int k = 0; - for (k = 0; k < 2; k++) { - printf ("int autocomplete_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id); - if (empty) { - printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); - printf (" return 0;\n"); - printf ("}\n"); - } else { - printf (" expect_token_autocomplete (\"(\", 1);\n"); - printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_%s); return -1; }\n", t->print_id); - printf (" if (cur_token_len < 0) { return -1; }\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id); - printf (" local_next_token ();\n"); - printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id); - printf (" expect_token_autocomplete (\")\", 1);\n"); - printf (" return 0;\n"); - printf (" }\n"); - } - /*if (t->constructors_num == 1) { - printf (" if (!force) {\n"); - printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); - printf (" expect_token_autocomplete (\")\", 1);\n"); - printf (" return 0;\n"); - printf (" }\n"); - }*/ - printf (" return -1;\n"); - printf ("}\n"); - } - } -} - -void gen_type_fetch_ds (struct tl_type *t) { - //int empty = is_empty (t);; - print_c_type_name (t->constructors[0]->result, "", 0); - - printf ("fetch_ds_type_%s (struct paramed_type *T) {\n", t->print_id); - printf (" assert (in_remaining () >= 4);\n"); - printf (" int magic = fetch_int ();\n"); - printf (" switch (magic) {\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" case 0x%08x: return fetch_ds_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id); - } - printf (" default: assert (0); return NULL;\n"); - printf (" }\n"); - printf ("}\n"); - print_c_type_name (t->constructors[0]->result, "", 0); - printf ("fetch_ds_type_bare_%s (struct paramed_type *T) {\n", t->print_id); - if (t->constructors_num > 1) { - printf (" int *save_in_ptr = in_ptr;\n"); - - for (i = 0; i < t->constructors_num; i++) { - printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_%s (T); }\n", t->constructors[i]->print_id, t->constructors[i]->print_id); - } - } else { - printf (" return fetch_ds_constructor_%s (T);\n", t->constructors[0]->print_id); - } - printf (" assert (0);\n"); - printf (" return NULL;\n"); - printf ("}\n"); -} - -void gen_type_free_ds (struct tl_type *t) { - printf ("void free_ds_type_%s (", t->print_id); - print_c_type_name (t->constructors[0]->result, "", 0); - printf ("D, struct paramed_type *T) {\n"); - - if (t->constructors_num > 1) { - printf (" switch (D->magic) {\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" case 0x%08x: free_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id); - } - printf (" default: assert (0);\n"); - printf (" }\n"); - } else { - printf (" free_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id); - } - printf ("}\n"); -} - -void gen_type_store_ds (struct tl_type *t) { - int k; - for (k = 0; k < 2; k++) { - if (k == 0) { - printf ("void store_ds_type_%s (", t->print_id); - } else { - printf ("void store_ds_type_bare_%s (", t->print_id); - } - print_c_type_name (t->constructors[0]->result, "", 0); - printf ("D, struct paramed_type *T) {\n"); - - if (t->constructors_num > 1) { - if (k == 0) { - printf (" out_int (D->magic);\n"); - } - printf (" switch (D->magic) {\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" case 0x%08x: store_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id); - } - printf (" default: assert (0);\n"); - printf (" }\n"); - } else { - if (k == 0) { - printf (" out_int (0x%08x);\n", t->constructors[0]->name); - } - printf (" store_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id); - } - printf ("}\n"); - } -} - -void gen_type_print_ds (struct tl_type *t) { - int empty = is_empty (t);; - int k; - for (k = 0; k < 2; k++) { - printf ("int print_ds_type_%s%s (", k ? "bare_" : "", t->print_id); - print_c_type_name (t->constructors[0]->result, "", 0); - printf ("DS, struct paramed_type *T) {\n"); - printf (" int res;\n"); - if (!empty) { - printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); - printf (" eprintf (\" (\");\n"); - } - if (t->constructors_num > 1) { - printf (" switch (DS->magic) {\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" case 0x%08x: res = print_ds_constructor_%s (DS, T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id); - } - printf (" default: return -1;\n"); - printf (" }\n"); - } else { - printf (" res = print_ds_constructor_%s (DS, T);\n", t->constructors[0]->print_id); - } - if (!empty) { - printf (" if (res >= 0) {\n"); - printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n"); - printf (" eprintf (\" )\");\n"); - //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n"); - printf (" }\n"); - } - printf (" return res;\n"); - printf ("}\n"); - } -} - -void gen_function_store (struct tl_combinator *f) { - printf ("struct paramed_type *store_function_%s (void) {\n", f->print_id); - int i; - - int *vars = malloc0 (f->var_num * 4);; - assert (f->var_num <= 10); - - for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) { - if (f->args[i]->flags & FLAG_EXCL) { - assert (gen_field_store_excl (f->args[i], vars, i + 1, 1) >= 0); - } else { - assert (gen_field_store (f->args[i], vars, i + 1, 1, 0) >= 0); - } - } - - - printf (" struct paramed_type *R = \n"); - assert (gen_create (f->result, vars, 2) >= 0); - printf (";\n"); - - free (vars); - printf (" return paramed_type_dup (R);\n"); - printf ("}\n"); -} - -void gen_function_autocomplete (struct tl_combinator *f) { - printf ("struct paramed_type *autocomplete_function_%s (void) {\n", f->print_id); - int i; - - int *vars = malloc0 (f->var_num * 4);; - assert (f->var_num <= 10); - - for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) { - if (f->args[i]->flags & FLAG_EXCL) { - assert (gen_field_autocomplete_excl (f->args[i], vars, i + 1, 1) >= 0); - } else { - assert (gen_field_autocomplete (f->args[i], vars, i + 1, 1, 0) >= 0); - } - } - - printf (" struct paramed_type *R = \n"); - assert (gen_create (f->result, vars, 2) >= 0); - printf (";\n"); - - free (vars); - printf (" return paramed_type_dup (R);\n"); - printf ("}\n"); -} - -void gen_type_do_autocomplete (struct tl_type *t) { - printf ("int do_autocomplete_type_%s (const char *text, int text_len, int index, char **R) {\n", t->print_id); - printf (" index ++;\n"); - int i; - for (i = 0; i < t->constructors_num; i++) { - printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, t->constructors[i]->id, t->constructors[i]->id); - } - printf (" *R = 0;\n"); - printf (" return 0;\n"); - printf ("}\n"); -} - -struct tl_tree *read_num_var (int *var_num) { - struct tl_tree_var_num *T = malloc0 (sizeof (*T)); - T->self.flags = 0; - T->self.methods = &tl_pvar_num_methods;; - T->dif = get_int (); - T->var_num = get_int (); - - if (T->var_num >= *var_num) { - *var_num = T->var_num + 1; - } - assert (!(T->self.flags & FLAG_NOVAR)); - return (void *)T; -} - -struct tl_tree *read_type_var (int *var_num) { - struct tl_tree_var_type *T = malloc0 (sizeof (*T)); - T->self.methods = &tl_pvar_type_methods; - T->var_num = get_int (); - T->self.flags = get_int (); - if (T->var_num >= *var_num) { - *var_num = T->var_num + 1; - } - assert (!(T->self.flags & (FLAG_NOVAR | FLAG_BARE))); - return (void *)T; -} - -struct tl_tree *read_array (int *var_num) { - struct tl_tree_array *T = malloc0 (sizeof (*T)); - T->self.methods = &tl_parray_methods; - T->self.flags = 0; - T->multiplicity = read_nat_expr (var_num); - assert (T->multiplicity); - - T->args_num = get_int (); - assert (T->args_num >= 0 && T->args_num <= 1000); - T->args = malloc0 (sizeof (void *) * T->args_num); - - assert (read_args_list (T->args, T->args_num, var_num) >= 0); - T->self.flags |= FLAG_NOVAR; - int i; - for (i = 0; i < T->args_num; i++) { - if (!(T->args[i]->flags & FLAG_NOVAR)) { - T->self.flags &= ~FLAG_NOVAR; - } - } - return (void *)T; -} - -struct tl_tree *read_type (int *var_num) { - struct tl_tree_type *T = malloc0 (sizeof (*T)); - T->self.methods = &tl_ptype_methods; - - T->type = tl_type_get_by_name (get_int ()); - assert (T->type); - T->self.flags = get_int (); - T->children_num = get_int (); - assert (T->type->arity == T->children_num); - T->children = malloc0 (sizeof (void *) * T->children_num); - int i; - T->self.flags |= FLAG_NOVAR; - for (i = 0; i < T->children_num; i++) { - int t = get_int (); - if (t == (int)TLS_EXPR_NAT) { -#ifdef _MSC_VER - assert ((T->type->params_types & (1i64 << i))); -#else - assert ((T->type->params_types & (1 << i))); -#endif - T->children[i] = read_nat_expr (var_num); - } else if (t == (int)TLS_EXPR_TYPE) { -#ifdef _MSC_VER - assert (!(T->type->params_types & (1i64 << i))); -#else - assert (!(T->type->params_types & (1 << i))); -#endif - T->children[i] = read_type_expr (var_num); - } else { - assert (0); - } - if (!TL_IS_NAT_VAR (T->children[i]) && !(T->children[i]->flags & FLAG_NOVAR)) { - T->self.flags &= ~FLAG_NOVAR; - } - } - return (void *)T; -} - -struct tl_tree *read_tree (int *var_num) { - int x = get_int (); - if (verbosity >= 2) { - fprintf (stderr, "read_tree: constructor = 0x%08x\n", x); - } - switch (x) { - case TLS_TREE_NAT_CONST: - return read_num_const (var_num); - case TLS_TREE_NAT_VAR: - return read_num_var (var_num); - case TLS_TREE_TYPE_VAR: - return read_type_var (var_num); - case TLS_TREE_TYPE: - return read_type (var_num); - case TLS_TREE_ARRAY: - return read_array (var_num); - default: - if (verbosity) { - fprintf (stderr, "x = %d\n", x); - } - assert (0); - return 0; - } -} - -struct tl_tree *read_type_expr (int *var_num) { - int x = get_int (); - if (verbosity >= 2) { - fprintf (stderr, "read_type_expr: constructor = 0x%08x\n", x); - } - switch (x) { - case TLS_TYPE_VAR: - return read_type_var (var_num); - case TLS_TYPE_EXPR: - return read_type (var_num); - case TLS_ARRAY: - return read_array (var_num); - default: - if (verbosity) { - fprintf (stderr, "x = %d\n", x); - } - assert (0); - return 0; - } -} - -struct tl_tree *read_nat_expr (int *var_num) { - int x = get_int (); - if (verbosity >= 2) { - fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x); - } - switch (x) { - case TLS_NAT_CONST: - return read_num_const (var_num); - case TLS_NAT_VAR: - return read_num_var (var_num); - default: - if (verbosity) { - fprintf (stderr, "x = %d\n", x); - } - assert (0); - return 0; - } -} - -struct tl_tree *read_expr (int *var_num) { - int x = get_int (); - if (verbosity >= 2) { - fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x); - } - switch (x) { - case TLS_EXPR_NAT: - return read_nat_expr (var_num); - case TLS_EXPR_TYPE: - return read_type_expr (var_num); - default: - if (verbosity) { - fprintf (stderr, "x = %d\n", x); - } - assert (0); - return 0; - } -} - -int read_args_list (struct arg **args, int args_num, int *var_num) { - int i; - for (i = 0; i < args_num; i++) { - args[i] = malloc0 (sizeof (struct arg)); - args[i]->exist_var_num = -1; - args[i]->exist_var_bit = 0; - assert (get_int () == TLS_ARG_V2); - args[i]->id = get_string (); - args[i]->flags = get_int (); - - if (args[i]->flags & 2) { - args[i]->flags &= ~2; - args[i]->flags |= (1 << 20); - } - if (args[i]->flags & 4) { - args[i]->flags &= ~4; - args[i]->var_num = get_int (); - } else { - args[i]->var_num = -1; - } - - int x = args[i]->flags & 6; - args[i]->flags &= ~6; - if (x & 2) { args[i]->flags |= 4; } - if (x & 4) { args[i]->flags |= 2; } - - if (args[i]->var_num >= *var_num) { - *var_num = args[i]->var_num + 1; - } - if (args[i]->flags & FLAG_OPT_FIELD) { - args[i]->exist_var_num = get_int (); - args[i]->exist_var_bit = get_int (); - } - args[i]->type = read_type_expr (var_num); - assert (args[i]->type); - - if (args[i]->var_num < 0 && args[i]->exist_var_num < 0 && (TL_IS_NAT_VAR(args[i]->type) || (args[i]->type->flags & FLAG_NOVAR))) { - args[i]->flags |= FLAG_NOVAR; - } - } - return 1; -} - -int read_combinator_args_list (struct tl_combinator *c) { - c->args_num = get_int (); - if (verbosity >= 2) { - fprintf (stderr, "c->id = %s, c->args_num = %d\n", c->id, c->args_num); - } - assert (c->args_num >= 0 && c->args_num <= 1000); - c->args = malloc0 (sizeof (void *) * c->args_num); - c->var_num = 0; - return read_args_list (c->args, c->args_num, &c->var_num); -} - -int read_combinator_right (struct tl_combinator *c) { - assert (get_int () == TLS_COMBINATOR_RIGHT_V2); - c->result = read_type_expr (&c->var_num); - assert (c->result); - return 1; -} - -int read_combinator_left (struct tl_combinator *c) { - int x = get_int (); - - if (x == (int)TLS_COMBINATOR_LEFT_BUILTIN) { - c->args_num = 0; - c->var_num = 0; - c->args = 0; - return 1; - } else if (x == TLS_COMBINATOR_LEFT) { - return read_combinator_args_list (c); - } else { - assert (0); - return -1; - } -} - -char *gen_print_id (const char *id) { - static char s[1000]; - char *ptr = s; - int first = 1; - while (*id) { - if (*id == '.') { - *(ptr ++) = '_'; - } else if (*id >= 'A' && *id <= 'Z') { - if (!first && *(ptr - 1) != '_') { - *(ptr ++) = '_'; - } - *(ptr ++) = *id - 'A' + 'a'; - } else { - *(ptr ++) = *id; - } - id ++; - first = 0; - } - *ptr = 0; - return s; -} - -struct tl_combinator *read_combinators (int v) { - struct tl_combinator *c = malloc0 (sizeof (*c)); - c->name = get_int (); - c->id = get_string (); - c->print_id = strdup (gen_print_id (c->id)); - assert (c->print_id); - //char *s = c->id; - //while (*s) { if (*s == '.') { *s = '_'; } ; s ++;} - int x = get_int (); - struct tl_type *t = tl_type_get_by_name (x); - assert (t || (!x && v == 3)); - - if (v == 2) { - assert (t->extra < t->constructors_num); - t->constructors[t->extra ++] = c; - c->is_fun = 0; - } else { - assert (v == 3); - tl_function_insert_by_name (c); - c->is_fun = 1; - } - assert (read_combinator_left (c) >= 0); - assert (read_combinator_right (c) >= 0); - return c; -} - -struct tl_type *read_types (void) { - struct tl_type *t = malloc0 (sizeof (*t)); - t->name = get_int (); - t->id = get_string (); - t->print_id = strdup (gen_print_id (t->id)); - assert (t->print_id); - - t->constructors_num = get_int (); - assert (t->constructors_num >= 0 && t->constructors_num <= 1000); - - t->constructors = malloc0 (sizeof (void *) * t->constructors_num); - t->flags = get_int (); - t->arity = get_int (); - t->params_types = get_long (); // params_types - t->extra = 0; - tl_type_insert_by_name (t); - return t; -} - - - -char *gen_what[1000]; -int gen_what_cnt; - - -void gen_skip_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("int skip_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("int skip_type_%s (struct paramed_type *T);\n", tps[i]->print_id); - printf ("int skip_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); - } - printf ("int skip_type_any (struct paramed_type *T);\n"); -} - -void gen_skip_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-skip.h\"\n"); - printf ("#include \"..\\auto-static-skip.c\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"auto/auto-skip.h\"\n"); - printf ("#include \"auto-static-skip.c\"\n"); - printf ("#include \"mtproto-common.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_skip (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_skip (tps[i]); - } - printf ("int skip_type_any (struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: return skip_type_%s (T);\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: return skip_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return -1; }\n"); - printf ("}\n"); -} - -void gen_fetch_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - printf ("#include <stdio.h>\n"); - - printf ("struct tgl_state;\n"); - printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("int fetch_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("int fetch_type_%s (struct paramed_type *T);\n", tps[i]->print_id); - printf ("int fetch_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); - } - printf ("int fetch_type_any (struct paramed_type *T);\n"); -} - -void gen_fetch_source (void) { - printf ("#ifdef _MSC_VER \n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-fetch.h\"\n"); - printf ("#include \"auto-skip.h\"\n"); - printf ("#include \"..\\auto-static-fetch.c\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"auto/auto-fetch.h\"\n"); - printf ("#include \"auto/auto-skip.h\"\n"); - printf ("#include \"auto-static-fetch.c\"\n"); - printf ("#include \"mtproto-common.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_fetch (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_fetch (tps[i]); - } - printf ("int fetch_type_any (struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: return fetch_type_%s (T);\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: return fetch_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return -1; }\n"); - printf ("}\n"); -} - -void gen_store_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - - - printf ("struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len);\n"); - printf ("int tglf_store_type (struct tgl_state *TLS, const char *work, int work_len, struct paramed_type *P);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("int store_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("int store_type_%s (struct paramed_type *T);\n", tps[i]->print_id); - printf ("int store_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); - } - for (i = 0; i < fn; i++) { - printf ("struct paramed_type *store_function_%s (void);\n", fns[i]->print_id); - } - printf ("int store_type_any (struct paramed_type *T);\n"); - printf ("struct paramed_type *store_function_any (void);\n"); -} - -void gen_store_source (void ) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#include \"auto-store.h\"\n"); - printf ("#include \"..\\auto-static-store.c\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"mtproto-common.h\"\n"); - printf ("#include \"auto/auto-store.h\"\n"); - printf ("#include \"auto-static-store.c\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_store (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_store (tps[i]); - } - for (i = 0; i < fn; i++) { - gen_function_store (fns[i]); - } - printf ("int store_type_any (struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: return store_type_%s (T);\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: return store_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return -1; }\n"); - printf ("}\n"); - printf ("struct paramed_type *store_function_any (void) {\n"); - printf (" if (cur_token_len != 1 || *cur_token != '(') { return 0; }\n"); - printf (" local_next_token ();\n"); - printf (" if (cur_token_len == 1 || *cur_token == '.') { \n"); - printf (" local_next_token ();\n"); - printf (" if (cur_token_len != 1 || *cur_token != '=') { return 0; }\n"); - printf (" local_next_token ();\n"); - printf (" };\n"); - printf (" if (cur_token_len < 0) { return 0; }\n"); - for (i = 0; i < fn; i++) { - printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id); - printf (" out_int (0x%08x);\n", fns[i]->name); - printf (" local_next_token ();\n"); - printf (" struct paramed_type *P = store_function_%s ();\n", fns[i]->print_id); - printf (" if (!P) { return 0; }\n"); - printf (" if (cur_token_len != 1 || *cur_token != ')') { return 0; }\n"); - printf (" local_next_token ();\n"); - printf (" return P;\n"); - printf (" }\n"); - } - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_autocomplete_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - - printf ("int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("int autocomplete_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("int autocomplete_type_%s (struct paramed_type *T);\n", tps[i]->print_id); - printf ("int do_autocomplete_type_%s (const char *text, int len, int index, char **R);\n", tps[i]->print_id); - printf ("int autocomplete_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); - } - printf ("int autocomplete_type_any (struct paramed_type *T);\n"); - printf ("struct paramed_type *autocomplete_function_any (void);\n"); -} - -void gen_autocomplete_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#include \"auto-autocomplete.h\"\n"); - printf ("#include \"..\\auto-static-autocomplete.c\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"mtproto-common.h\"\n"); - printf ("#include \"auto/auto-autocomplete.h\"\n"); - printf ("#include \"auto-static-autocomplete.c\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_autocomplete (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_autocomplete (tps[i]); - gen_type_do_autocomplete (tps[i]); - } - for (i = 0; i < fn; i++) { - gen_function_autocomplete (fns[i]); - } - printf ("int autocomplete_type_any (struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: return autocomplete_type_%s (T);\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: return autocomplete_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return -1; }\n"); - printf ("}\n"); - printf ("int do_autocomplete_function (const char *text, int text_len, int index, char **R) {\n"); - printf (" index ++;\n"); - for (i = 0; i < fn; i++) { - printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, fns[i]->id, fns[i]->id); - } - printf (" *R = 0;\n"); - printf (" return 0;\n"); - printf ("}\n"); - printf ("struct paramed_type *autocomplete_function_any (void) {\n"); - printf (" expect_token_ptr_autocomplete (\"(\", 1);\n"); - printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_function); }\n"); - printf (" if (cur_token_len < 0) { return 0; }\n"); - for (i = 0; i < fn; i++) { - printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id); - printf (" local_next_token ();\n"); - printf (" struct paramed_type *P = autocomplete_function_%s ();\n", fns[i]->print_id); - printf (" if (!P) { return 0; }\n"); - printf (" expect_token_ptr_autocomplete (\")\", 1);\n"); - printf (" return P;\n"); - printf (" }\n"); - } - printf (" return 0;\n"); - printf ("}\n"); -} - -void gen_types_header (void) { - printf ("#ifndef __AUTO_TYPES_H__\n"); - printf ("#define __AUTO_TYPES_H__\n"); - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - int i; - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("extern struct tl_type_descr tl_type_%s;\n", tps[i]->print_id); - printf ("extern struct tl_type_descr tl_type_bare_%s;\n", tps[i]->print_id); - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("struct tl_ds_%s {\n", tps[i]->print_id); -#if !defined(__STDC__) || __STDC_VERSION__ < 199901L - if (tps[i]->constructors_num == 1 && tps[i]->constructors[0]->args_num == 0 && - !(!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes"))) { - printf (" int : 0;\n"); - printf ("};\n"); - continue; - } -#endif - - if (!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes")) { - printf (" int len;\n"); - printf (" char *data;\n"); - printf ("};\n"); - continue; - } - int j; - if (tps[i]->constructors_num > 1) { - printf (" unsigned magic;\n"); - } - for (j = 0; j < tps[i]->constructors_num; j++) { - struct tl_combinator *c = tps[i]->constructors[j]; - int k; - for (k = 0; k < c->args_num; k++) { - if ((c->args[k]->flags & FLAG_OPT_VAR)) { continue; } - if (c->args[k]->id && strlen (c->args[k]->id) && j > 0) { - int l; - int ok = 1; - for (l = 0; l < j && ok; l++) { - int m; - struct tl_combinator *d = tps[i]->constructors[l]; - for (m = 0; m < d->args_num && ok; m++) { - if (d->args[m]->id && !strcmp (d->args[m]->id, c->args[k]->id)) { - ok = 0; - } - } - } - if (!ok) { continue; } - } - - printf (" "); - print_c_type_name (c->args[k]->type, " ", 1); - - if (!c->args[k]->id || !strlen (c->args[k]->id)) { - assert (!j); - - printf ("f%d;\n", k); - } else { - printf ("%s;\n", c->args[k]->id); - } - } - } - printf ("};\n"); - } - printf ("#endif\n"); -} - -void gen_types_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - int i; - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("struct tl_type_descr tl_type_%s = {\n", tps[i]->print_id); - printf (" .name = 0x%08x,\n", tps[i]->name); - printf (" .id = \"%s\"\n,", tps[i]->id); - printf (" .params_num = %d,\n", tps[i]->arity); - printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types); - printf ("};\n"); - printf ("struct tl_type_descr tl_type_bare_%s = {\n", tps[i]->print_id); - printf (" .name = 0x%08x,\n", ~tps[i]->name); - printf (" .id = \"Bare_%s\",\n", tps[i]->id); - printf (" .params_num = %d,\n", tps[i]->arity); - printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types); - printf ("};\n"); - } -} - -void gen_fetch_ds_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-fetch-ds.h\"\n"); - printf ("#include \"auto-skip.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#include \"..\\auto-static-fetch-ds.c\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"auto/auto-fetch-ds.h\"\n"); - printf ("#include \"auto/auto-skip.h\"\n"); - printf ("#include \"auto/auto-types.h\"\n"); - printf ("#include \"auto-static-fetch-ds.c\"\n"); - printf ("#include \"mtproto-common.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_fetch_ds (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_fetch_ds (tps[i]); - } - printf ("void *fetch_ds_type_any (struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: return fetch_ds_type_%s (T);\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: return fetch_ds_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return NULL; }\n"); - printf ("}\n"); -} - -void gen_fetch_ds_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - printf ("#include <stdio.h>\n"); - - printf ("struct tgl_state;\n"); - //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - print_c_type_name (tps[i]->constructors[j]->result, "", 0); - printf ("fetch_ds_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("fetch_ds_type_%s (struct paramed_type *T);\n", tps[i]->print_id); - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("fetch_ds_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); - } - printf ("void *fetch_ds_type_any (struct paramed_type *T);\n"); -} - -void gen_free_ds_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-free-ds.h\"\n"); - printf ("#include \"auto-skip.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#include \"..\\auto-static-free-ds.c\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"auto/auto-free-ds.h\"\n"); - printf ("#include \"auto/auto-skip.h\"\n"); - printf ("#include \"auto/auto-types.h\"\n"); - printf ("#include \"auto-static-free-ds.c\"\n"); - printf ("#include \"mtproto-common.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_free_ds (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_free_ds (tps[i]); - } - printf ("void free_ds_type_any (void *D, struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return; }\n"); - printf ("}\n"); -} - -void gen_free_ds_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#include \"auto/auto-types.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - printf ("#include <stdio.h>\n"); - - printf ("struct tgl_state;\n"); - //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("void free_ds_constructor_%s (", tps[i]->constructors[j]->print_id); - print_c_type_name (tps[i]->constructors[j]->result, "", 0); - printf ("D, struct paramed_type *T);\n"); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("void free_ds_type_%s (", tps[i]->print_id); - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("D, struct paramed_type *T);\n"); - } - printf ("void free_ds_type_any (void *D, struct paramed_type *T);\n"); -} - -void gen_store_ds_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-store-ds.h\"\n"); - printf ("#include \"auto-skip.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#include \"..\\auto-static-store-ds.c\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"auto/auto-store-ds.h\"\n"); - printf ("#include \"auto/auto-skip.h\"\n"); - printf ("#include \"auto/auto-types.h\"\n"); - printf ("#include \"auto-static-store-ds.c\"\n"); - printf ("#include \"mtproto-common.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_store_ds (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_store_ds (tps[i]); - } - printf ("void store_ds_type_any (void *D, struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: store_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: store_ds_type_bare_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return; }\n"); - printf ("}\n"); -} - -void gen_store_ds_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#include \"auto/auto-types.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - printf ("#include <stdio.h>\n"); - - printf ("struct tgl_state;\n"); - //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("void store_ds_constructor_%s (", tps[i]->constructors[j]->print_id); - print_c_type_name (tps[i]->constructors[j]->result, "", 0); - printf ("D, struct paramed_type *T);\n"); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("void store_ds_type_%s (", tps[i]->print_id); - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("D, struct paramed_type *T);\n"); - printf ("void store_ds_type_bare_%s (", tps[i]->print_id); - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("D, struct paramed_type *T);\n"); - } - printf ("void store_ds_type_any (void *D, struct paramed_type *T);\n"); -} - -void gen_print_ds_header (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - printf ("#include \"auto-types.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - printf ("#include <stdio.h>\n"); - - printf ("struct tgl_state;\n"); - printf ("char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T);\n"); - - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - printf ("int print_ds_constructor_%s (", tps[i]->constructors[j]->print_id); - print_c_type_name (tps[i]->constructors[j]->result, "", 0); - printf ("DS, struct paramed_type *T);\n"); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - printf ("int print_ds_type_%s (", tps[i]->print_id); - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("DS, struct paramed_type *T);\n"); - printf ("int print_ds_type_bare_%s (", tps[i]->print_id); - print_c_type_name (tps[i]->constructors[0]->result, "", 0); - printf ("DS, struct paramed_type *T);\n"); - } - printf ("int print_ds_type_any (void *DS, struct paramed_type *T);\n"); -} - -void gen_print_ds_source (void) { - printf ("#ifdef _MSC_VER\n"); - printf ("#include \"..\\auto.h\"\n"); - printf ("#include \"auto-print-ds.h\"\n"); - printf ("#include \"auto-skip.h\"\n"); - printf ("#include \"..\\auto-static-print-ds.c\"\n"); - printf ("#include \"..\\mtproto-common.h\"\n"); - printf ("#else\n"); - printf ("#include \"auto.h\"\n"); - - printf ("#include \"auto/auto-print-ds.h\"\n"); - printf ("#include \"auto/auto-skip.h\"\n"); - printf ("#include \"auto-static-print-ds.c\"\n"); - printf ("#include \"mtproto-common.h\"\n"); - printf ("#endif\n"); - printf ("#include <assert.h>\n"); - int i, j; - for (i = 0; i < tn; i++) { - for (j = 0; j < tps[i]->constructors_num; j ++) { - gen_constructor_print_ds (tps[i]->constructors[j]); - } - } - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - gen_type_print_ds (tps[i]); - } - printf ("int print_ds_type_any (void *DS, struct paramed_type *T) {\n"); - printf (" switch (T->type->name) {\n"); - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { - printf (" case 0x%08x: return print_ds_type_%s (DS, T);\n", tps[i]->name, tps[i]->print_id); - printf (" case 0x%08x: return print_ds_type_bare_%s (DS, T);\n", ~tps[i]->name, tps[i]->print_id); - } - printf (" default: return -1; }\n"); - printf ("}\n"); -} - -int parse_tlo_file (void) { - buf_end = buf_ptr + (buf_size / 4); - assert (get_int () == TLS_SCHEMA_V2); - - get_int (); // version - get_int (); // date - - tn = 0; - fn = 0; - cn = 0; - int i; - - tn = get_int (); - assert (tn >= 0 && tn < 10000); - tps = malloc0 (sizeof (void *) * tn); - - if (verbosity >= 2) { - fprintf (stderr, "Found %d types\n", tn); - } - - for (i = 0; i < tn; i++) { - assert (get_int () == TLS_TYPE); - tps[i] = read_types (); - assert (tps[i]); - } - - cn = get_int (); - assert (cn >= 0); - - if (verbosity >= 2) { - fprintf (stderr, "Found %d constructors\n", cn); - } - - for (i = 0; i < cn; i++) { - assert (get_int () == TLS_COMBINATOR); - assert (read_combinators (2)); - } - - fn = get_int (); - assert (fn >= 0 && fn < 10000); - - fns = malloc0 (sizeof (void *) * fn); - - if (verbosity >= 2) { - fprintf (stderr, "Found %d functions\n", fn); - } - - for (i = 0; i < fn; i++) { - assert (get_int () == TLS_COMBINATOR); - fns[i] = read_combinators (3); - assert (fns[i]); - } - - assert (buf_ptr == buf_end); - - - int j; - for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { - tps[i]->name = 0; - for (j = 0; j < tps[i]->constructors_num; j ++) { - tps[i]->name ^= tps[i]->constructors[j]->name; - } - } - - - for (i = 0; i < gen_what_cnt; i++) { - if (!strcmp (gen_what[i], "fetch")) { - gen_fetch_source (); - } else if (!strcmp (gen_what[i], "fetch-header")) { - gen_fetch_header (); - } else if (!strcmp (gen_what[i], "skip")) { - gen_skip_source (); - } else if (!strcmp (gen_what[i], "skip-header")) { - gen_skip_header (); - } else if (!strcmp (gen_what[i], "store")) { - gen_store_source (); - } else if (!strcmp (gen_what[i], "store-header")) { - gen_store_header (); - } else if (!strcmp (gen_what[i], "autocomplete")) { - gen_autocomplete_source (); - } else if (!strcmp (gen_what[i], "autocomplete-header")) { - gen_autocomplete_header (); - } else if (!strcmp (gen_what[i], "types")) { - gen_types_source (); - } else if (!strcmp (gen_what[i], "types-header")) { - gen_types_header (); - } else if (!strcmp (gen_what[i], "fetch-ds")) { - gen_fetch_ds_source (); - } else if (!strcmp (gen_what[i], "fetch-ds-header")) { - gen_fetch_ds_header (); - } else if (!strcmp (gen_what[i], "free-ds")) { - gen_free_ds_source (); - } else if (!strcmp (gen_what[i], "free-ds-header")) { - gen_free_ds_header (); - } else if (!strcmp (gen_what[i], "store-ds")) { - gen_store_ds_source (); - } else if (!strcmp (gen_what[i], "store-ds-header")) { - gen_store_ds_header (); - } else if (!strcmp (gen_what[i], "print-ds")) { - gen_print_ds_source (); - } else if (!strcmp (gen_what[i], "print-ds-header")) { - gen_print_ds_header (); - } else { - assert (0); - } - } - - - return 0; -} - -void usage (void) { - printf ("usage: generate [-v] [-h] <tlo-file>\n" - ); - exit (2); -} - -#ifndef _MSC_VER -void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2))); -void logprintf (const char *format __attribute__ ((unused)), ...) { -} -#endif -/* -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; - while ((i = getopt (argc, argv, "vhHg:")) != -1) { - switch (i) { - case 'h': - usage (); - return 2; - case 'v': - verbosity++; - break; - case 'H': - header ++; - break; - case 'g': - assert (gen_what_cnt < 1000); - gen_what[gen_what_cnt ++] = optarg; - break; - } - } - - if (argc != optind + 1) { - usage (); - } - -#if defined(_MSC_VER) && _MSC_VER >= 1400 - int fd = 0; - errno_t err = _sopen_s(&fd, argv[optind], _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); - if(err != 0) { - char errnoStr[256] = { 0 }; - strerror_s (errnoStr, 256, err); - fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], errnoStr); -#elif defined(WIN32) || defined(_WIN32) - int fd = open (argv[optind], O_RDONLY | O_BINARY); - if (fd < 0) { - fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], strerror (errno)); -#else - int fd = open (argv[optind], O_RDONLY); - if (fd < 0) { - fprintf (stderr, "Can not open file '%s'. Error %m\n", argv[optind]); -#endif - exit (1); - } - buf_size = read (fd, buf, (1 << 20)); - if (fd == (1 << 20)) { - fprintf (stderr, "Too big tlo file\n"); - exit (2); - } - return parse_tlo_file (); -} diff --git a/libs/tgl/src/generate.h b/libs/tgl/src/generate.h deleted file mode 100644 index 5d46a6c4ec..0000000000 --- a/libs/tgl/src/generate.h +++ /dev/null @@ -1,173 +0,0 @@ -/* - This file is part of tgl-libary/generate - - Tgl-library/generate 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/generate 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/generate. If not, see <http://www.gnu.org/licenses/>. - - Copyright Vitaly Valtman 2014-2015 - - 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 __GENERATE_H__ -#define __GENERATE_H__ - -struct tl_combinator; - -struct tl_type { -// struct tl_type_methods *methods; - char *id; - char *print_id; - unsigned name; - int arity; - int flags; - int constructors_num; - struct tl_combinator **constructors; - long long params_types; - int extra; -}; - -#define NODE_TYPE_TYPE 1 -#define NODE_TYPE_NAT_CONST 2 -#define NODE_TYPE_VAR_TYPE 3 -#define NODE_TYPE_VAR_NUM 4 -#define NODE_TYPE_ARRAY 5 - -#define MAX_COMBINATOR_VARS 64 - -#define NAME_VAR_NUM 0x70659eff -#define NAME_VAR_TYPE 0x2cecf817 -#define NAME_INT 0xa8509bda -#define NAME_LONG 0x22076cba -#define NAME_DOUBLE 0x2210c154 -#define NAME_STRING 0xb5286e24 -#define NAME_VECTOR 0x1cb5c415 -#define NAME_MAYBE_TRUE 0x3f9c8ef8 -#define NAME_MAYBE_FALSE 0x27930a7b -#define NAME_BOOL_FALSE 0xbc799737 -#define NAME_BOOL_TRUE 0x997275b5 -#define NAME_BYTES 0x0ee1379f - - -#define FLAG_OPT_VAR (1 << 17) -#define FLAG_EXCL (1 << 18) -#define FLAG_OPT_FIELD (1 << 20) -#define FLAG_NOVAR (1 << 21) -#define FLAG_BARE 1 -#define FLAGS_MASK ((1 << 16) - 1) -#define FLAG_DEFAULT_CONSTRUCTOR (1 << 25) -#define FLAG_NOCONS (1 << 1) - -extern struct tl_tree_methods tl_nat_const_methods; -extern struct tl_tree_methods tl_nat_const_full_methods; -extern struct tl_tree_methods tl_pnat_const_full_methods; -extern struct tl_tree_methods tl_array_methods; -extern struct tl_tree_methods tl_type_methods; -extern struct tl_tree_methods tl_parray_methods; -extern struct tl_tree_methods tl_ptype_methods; -extern struct tl_tree_methods tl_var_num_methods; -extern struct tl_tree_methods tl_var_type_methods; -extern struct tl_tree_methods tl_pvar_num_methods; -extern struct tl_tree_methods tl_pvar_type_methods; -#define TL_IS_NAT_VAR(x) (((long)x) & 1) -#define TL_TREE_METHODS(x) (TL_IS_NAT_VAR (x) ? &tl_nat_const_methods : ((struct tl_tree *)(x))->methods) - -#define DEC_REF(x) (TL_TREE_METHODS(x)->dec_ref ((void *)x)) -#define INC_REF(x) (TL_TREE_METHODS(x)->inc_ref ((void *)x)) -#define TYPE(x) (TL_TREE_METHODS(x)->type ((void *)x)) - -typedef unsigned long long tl_tree_hash_t; -struct tl_tree; - -struct tl_tree_methods { - int (*type)(struct tl_tree *T); - int (*eq)(struct tl_tree *T, struct tl_tree *U); - void (*inc_ref)(struct tl_tree *T); - void (*dec_ref)(struct tl_tree *T); -}; - -struct tl_tree { - int ref_cnt; - int flags; - //tl_tree_hash_t hash; - struct tl_tree_methods *methods; -}; -/* -struct tl_tree_nat_const { - struct tl_tree self; - int value; -};*/ - -struct tl_tree_type { - struct tl_tree self; - - struct tl_type *type; - int children_num; - struct tl_tree **children; -}; - -struct tl_tree_array { - struct tl_tree self; - - struct tl_tree *multiplicity; - int args_num; - struct arg **args; -}; - -struct tl_tree_var_type { - struct tl_tree self; - - int var_num; -}; - -struct tl_tree_var_num { - struct tl_tree self; - - int var_num; - int dif; -}; - -struct tl_tree_nat_const { - struct tl_tree self; - - long long value; -}; - -struct arg { - char *id; - int var_num; - int flags; - int exist_var_num; - int exist_var_bit; - struct tl_tree *type; -}; - -struct tl_combinator { - //struct tl_combinator_methods *methods; - char *id; - char *print_id; - unsigned name; - int is_fun; - int var_num; - int args_num; - struct arg **args; - struct tl_tree *result; - void **IP; - void **fIP; - int IP_len; - int fIP_len; -}; - -#endif diff --git a/libs/tgl/tgl_12.vcxproj b/libs/tgl/tgl_12.vcxproj index 281c30f3fb..d65409a8b5 100644 --- a/libs/tgl/tgl_12.vcxproj +++ b/libs/tgl/tgl_12.vcxproj @@ -86,7 +86,7 @@ </ClCompile>
<Lib>
<AdditionalDependencies>libevent.lib;libeay32MTd.lib;ssleay32MTd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>openssl\lib\x86\Debug\2013;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>openssl\lib\x86\Debug\2015;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -98,7 +98,7 @@ </ClCompile>
<Lib>
<AdditionalDependencies>libevent.lib;libeay32MTd.lib;ssleay32MTd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>openssl\lib\x64\Debug\2013;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>openssl\lib\x64\Debug\2015;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -110,7 +110,7 @@ </ClCompile>
<Lib>
<AdditionalDependencies>libevent.lib;libeay32MT.lib;ssleay32MT.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>openssl\lib\x86\Release\2013;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>openssl\lib\x86\Release\2015;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -122,12 +122,11 @@ </ClCompile>
<Lib>
<AdditionalDependencies>libevent.lib;libeay32MT.lib;ssleay32MT.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>openssl\lib\x64\Release\2013;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>openssl\lib\x64\Release\2015;libevent\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="src\auto.h" />
- <ClInclude Include="src\event-old.h" />
<ClInclude Include="src\mtproto-client.h" />
<ClInclude Include="src\mtproto-common.h" />
<ClInclude Include="src\mtproto-utils.h" />
@@ -172,20 +171,6 @@ <ClCompile Include="src\tools.c" />
<ClCompile Include="src\updates.c" />
</ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\zlib\zlib.vcxproj">
- <Project>{e2a369cd-eda3-414f-8ad0-e732cd7ee68c}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="generate_12.vcxproj">
- <Project>{03A484BF-4CF0-4290-9BD2-D649F0797703}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="tl-parser\tl-parser_12.vcxproj">
- <Project>{14022761-9F27-4A2D-B7EA-F41FB9B3274C}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/libs/tgl/tgl_12.vcxproj.filters b/libs/tgl/tgl_12.vcxproj.filters index 595ba5ec91..e3359ea8c4 100644 --- a/libs/tgl/tgl_12.vcxproj.filters +++ b/libs/tgl/tgl_12.vcxproj.filters @@ -21,9 +21,6 @@ <ClInclude Include="src\auto.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="src\event-old.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="src\mtproto-client.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/libs/tgl/tgl_14.vcxproj b/libs/tgl/tgl_14.vcxproj index 2017259427..1c180f8673 100644 --- a/libs/tgl/tgl_14.vcxproj +++ b/libs/tgl/tgl_14.vcxproj @@ -127,7 +127,6 @@ </ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="src\auto.h" />
- <ClInclude Include="src\event-old.h" />
<ClInclude Include="src\mtproto-client.h" />
<ClInclude Include="src\mtproto-common.h" />
<ClInclude Include="src\mtproto-utils.h" />
@@ -172,20 +171,6 @@ <ClCompile Include="src\tools.c" />
<ClCompile Include="src\updates.c" />
</ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\zlib\zlib.vcxproj">
- <Project>{e2a369cd-eda3-414f-8ad0-e732cd7ee68c}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="generate_12.vcxproj">
- <Project>{03A484BF-4CF0-4290-9BD2-D649F0797703}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="tl-parser\tl-parser_12.vcxproj">
- <Project>{14022761-9F27-4A2D-B7EA-F41FB9B3274C}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/libs/tgl/tgl_14.vcxproj.filters b/libs/tgl/tgl_14.vcxproj.filters index 595ba5ec91..e3359ea8c4 100644 --- a/libs/tgl/tgl_14.vcxproj.filters +++ b/libs/tgl/tgl_14.vcxproj.filters @@ -21,9 +21,6 @@ <ClInclude Include="src\auto.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="src\event-old.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="src\mtproto-client.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/libs/tgl/tl-parser/docs/LICENSE b/libs/tgl/tl-parser/docs/LICENSE deleted file mode 100644 index d159169d10..0000000000 --- a/libs/tgl/tl-parser/docs/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/libs/tgl/tl-parser/docs/Makefile.in b/libs/tgl/tl-parser/docs/Makefile.in deleted file mode 100644 index 446f49afdb..0000000000 --- a/libs/tgl/tl-parser/docs/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/libs/tgl/tl-parser/docs/README.md b/libs/tgl/tl-parser/docs/README.md deleted file mode 100644 index ce211a248a..0000000000 --- a/libs/tgl/tl-parser/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -Parse tl scheme to tlo file. Formely part of telegram-cli diff --git a/libs/tgl/tl-parser/docs/config.bat b/libs/tgl/tl-parser/docs/config.bat deleted file mode 100644 index bc8cb80292..0000000000 --- a/libs/tgl/tl-parser/docs/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=src\config.h.in
-set CONFIG_HEADER=config.h
-set DEFAULT_OUT_FOLDER=src
-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/libs/tgl/tl-parser/docs/config.h.in b/libs/tgl/tl-parser/docs/config.h.in deleted file mode 100644 index 6cffe69f2b..0000000000 --- a/libs/tgl/tl-parser/docs/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/libs/tgl/tl-parser/docs/configure b/libs/tgl/tl-parser/docs/configure deleted file mode 100644 index 6ba3c417da..0000000000 --- a/libs/tgl/tl-parser/docs/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/libs/tgl/tl-parser/docs/configure.ac b/libs/tgl/tl-parser/docs/configure.ac deleted file mode 100644 index 82d1c6b027..0000000000 --- a/libs/tgl/tl-parser/docs/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/libs/tgl/tl-parser/docs/m4-ax_gcc_builtin.m4 b/libs/tgl/tl-parser/docs/m4-ax_gcc_builtin.m4 deleted file mode 100644 index b28a91b14a..0000000000 --- a/libs/tgl/tl-parser/docs/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/libs/tgl/tl-parser/src/config.h b/libs/tgl/tl-parser/src/config.h deleted file mode 100644 index a41afdc1d6..0000000000 --- a/libs/tgl/tl-parser/src/config.h +++ /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. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `z' library (-lz). */
-#define HAVE_LIBZ 1
-
-/* 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. */
-#define HAVE_MALLOC 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
- and to 0 otherwise. */
-#define HAVE_REALLOC 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* 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. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* 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. */
-#define HAVE_SYS_TYPES_H 1
-
-/* 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. */
-#define PACKAGE_BUGREPORT ""
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "tl-parser"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "tl-parser 1.0"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "tl-parser"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0"
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* 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
-#define inline __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/libs/tgl/tl-parser/src/portable_endian.h b/libs/tgl/tl-parser/src/portable_endian.h deleted file mode 100644 index b39a51ea63..0000000000 --- a/libs/tgl/tl-parser/src/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/libs/tgl/tl-parser/src/tl-parser-tree.h b/libs/tgl/tl-parser/src/tl-parser-tree.h deleted file mode 100644 index fba7c67521..0000000000 --- a/libs/tgl/tl-parser/src/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/libs/tgl/tl-parser/src/tl-parser.c b/libs/tgl/tl-parser/src/tl-parser.c deleted file mode 100644 index 22a01051ea..0000000000 --- a/libs/tgl/tl-parser/src/tl-parser.c +++ /dev/null @@ -1,3112 +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 <share.h> -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> -#include <string.h> -#include <time.h> -#include "portable_endian.h" -#include "..\..\..\zlib\src\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/libs/tgl/tl-parser/src/tl-parser.h b/libs/tgl/tl-parser/src/tl-parser.h deleted file mode 100644 index 7eb7524787..0000000000 --- a/libs/tgl/tl-parser/src/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/libs/tgl/tl-parser/src/tl-tl.h b/libs/tgl/tl-parser/src/tl-tl.h deleted file mode 100644 index 8bc0a707bc..0000000000 --- a/libs/tgl/tl-parser/src/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/libs/tgl/tl-parser/src/tlc.c b/libs/tgl/tl-parser/src/tlc.c deleted file mode 100644 index e5043f31a3..0000000000 --- a/libs/tgl/tl-parser/src/tlc.c +++ /dev/null @@ -1,180 +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 <share.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; -} diff --git a/libs/tgl/tl-parser/src/wingetopt.c b/libs/tgl/tl-parser/src/wingetopt.c deleted file mode 100644 index 09dac17a4f..0000000000 --- a/libs/tgl/tl-parser/src/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/libs/tgl/tl-parser/src/wingetopt.h b/libs/tgl/tl-parser/src/wingetopt.h deleted file mode 100644 index 4372c66011..0000000000 --- a/libs/tgl/tl-parser/src/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/libs/tgl/tl-parser/tl-parser_12.vcxproj b/libs/tgl/tl-parser/tl-parser_12.vcxproj deleted file mode 100644 index 0f2047dcd9..0000000000 --- a/libs/tgl/tl-parser/tl-parser_12.vcxproj +++ /dev/null @@ -1,150 +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>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{14022761-9F27-4A2D-B7EA-F41FB9B3274C}</ProjectGuid>
- <ProjectName>tl-parser</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </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>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <IgnoreImportLibrary>true</IgnoreImportLibrary>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- <PreBuildEvent />
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="src\portable_endian.h" />
- <ClInclude Include="src\tl-parser-tree.h" />
- <ClInclude Include="src\tl-parser.h" />
- <ClInclude Include="src\tl-tl.h" />
- <ClInclude Include="src\config.h" />
- <ClInclude Include="src\wingetopt.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="src\tl-parser.c" />
- <ClCompile Include="src\tlc.c" />
- <ClCompile Include="src\wingetopt.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\zlib\zlib.vcxproj">
- <Project>{e2a369cd-eda3-414f-8ad0-e732cd7ee68c}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file diff --git a/libs/tgl/tl-parser/tl-parser_12.vcxproj.filters b/libs/tgl/tl-parser/tl-parser_12.vcxproj.filters deleted file mode 100644 index ea695731d6..0000000000 --- a/libs/tgl/tl-parser/tl-parser_12.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="src\portable_endian.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tl-parser.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tl-parser-tree.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tl-tl.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\config.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\wingetopt.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> - <ItemGroup> - <ClCompile Include="src\tlc.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\tl-parser.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\wingetopt.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/libs/tgl/tl-parser/tl-parser_14.vcxproj b/libs/tgl/tl-parser/tl-parser_14.vcxproj deleted file mode 100644 index e52f1bb5bc..0000000000 --- a/libs/tgl/tl-parser/tl-parser_14.vcxproj +++ /dev/null @@ -1,150 +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>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{14022761-9F27-4A2D-B7EA-F41FB9B3274C}</ProjectGuid>
- <ProjectName>tl-parser</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v140_xp</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_xp</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v140_xp</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </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>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <IgnoreImportLibrary>true</IgnoreImportLibrary>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- <PreBuildEvent />
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Full</Optimization>
- <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="src\portable_endian.h" />
- <ClInclude Include="src\tl-parser-tree.h" />
- <ClInclude Include="src\tl-parser.h" />
- <ClInclude Include="src\tl-tl.h" />
- <ClInclude Include="src\config.h" />
- <ClInclude Include="src\wingetopt.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="src\tl-parser.c" />
- <ClCompile Include="src\tlc.c" />
- <ClCompile Include="src\wingetopt.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\zlib\zlib.vcxproj">
- <Project>{e2a369cd-eda3-414f-8ad0-e732cd7ee68c}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file diff --git a/libs/tgl/tl-parser/tl-parser_14.vcxproj.filters b/libs/tgl/tl-parser/tl-parser_14.vcxproj.filters deleted file mode 100644 index ea695731d6..0000000000 --- a/libs/tgl/tl-parser/tl-parser_14.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="src\portable_endian.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tl-parser.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tl-parser-tree.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\tl-tl.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\config.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="src\wingetopt.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> - <ItemGroup> - <ClCompile Include="src\tlc.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\tl-parser.c"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="src\wingetopt.c"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file |