summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2016-03-11 20:16:27 +0000
committerKirill Volinsky <mataes2007@gmail.com>2016-03-11 20:16:27 +0000
commitec639ecbdf49731a0bec26240efb76eb203087bc (patch)
tree0e44e371fa9c25209ef3fe035856a63b385a5817 /libs
parent7c63d57169b30a5397fb8e1d0929eec600372652 (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)bin85572 -> 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.vcxproj155
-rw-r--r--libs/tgl/generate_12.vcxproj.filters39
-rw-r--r--libs/tgl/generate_14.vcxproj155
-rw-r--r--libs/tgl/generate_14.vcxproj.filters39
-rw-r--r--libs/tgl/openssl/lib/x86/Release/2015/libeay32MD.libbin0 -> 830392 bytes
-rw-r--r--libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.libbin0 -> 77968 bytes
-rw-r--r--libs/tgl/src/auto/auto-fetch-ds.c1
-rw-r--r--libs/tgl/src/auto/auto-free-ds.c1
-rw-r--r--libs/tgl/src/auto/auto-skip.c1
-rw-r--r--libs/tgl/src/auto/auto-store-ds.c1
-rw-r--r--libs/tgl/src/auto/scheme.tl829
-rw-r--r--libs/tgl/src/generate.c3219
-rw-r--r--libs/tgl/src/generate.h173
-rw-r--r--libs/tgl/tgl_12.vcxproj23
-rw-r--r--libs/tgl/tgl_12.vcxproj.filters3
-rw-r--r--libs/tgl/tgl_14.vcxproj15
-rw-r--r--libs/tgl/tgl_14.vcxproj.filters3
-rw-r--r--libs/tgl/tl-parser/docs/LICENSE339
-rw-r--r--libs/tgl/tl-parser/docs/Makefile.in48
-rw-r--r--libs/tgl/tl-parser/docs/README.md1
-rw-r--r--libs/tgl/tl-parser/docs/config.bat107
-rw-r--r--libs/tgl/tl-parser/docs/config.h.in96
-rw-r--r--libs/tgl/tl-parser/docs/configure5018
-rw-r--r--libs/tgl/tl-parser/docs/configure.ac33
-rw-r--r--libs/tgl/tl-parser/docs/m4-ax_gcc_builtin.m4168
-rw-r--r--libs/tgl/tl-parser/src/config.h96
-rw-r--r--libs/tgl/tl-parser/src/portable_endian.h124
-rw-r--r--libs/tgl/tl-parser/src/tl-parser-tree.h178
-rw-r--r--libs/tgl/tl-parser/src/tl-parser.c3112
-rw-r--r--libs/tgl/tl-parser/src/tl-parser.h221
-rw-r--r--libs/tgl/tl-parser/src/tl-tl.h55
-rw-r--r--libs/tgl/tl-parser/src/tlc.c180
-rw-r--r--libs/tgl/tl-parser/src/wingetopt.c82
-rw-r--r--libs/tgl/tl-parser/src/wingetopt.h32
-rw-r--r--libs/tgl/tl-parser/tl-parser_12.vcxproj150
-rw-r--r--libs/tgl/tl-parser/tl-parser_12.vcxproj.filters48
-rw-r--r--libs/tgl/tl-parser/tl-parser_14.vcxproj150
-rw-r--r--libs/tgl/tl-parser/tl-parser_14.vcxproj.filters48
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
index 02d3ca415e..02d3ca415e 100644
--- a/libs/tgl/src/auto/scheme.tlo
+++ b/libs/tgl/docs/scheme.tlo
Binary files differ
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
new file mode 100644
index 0000000000..874dc6e693
--- /dev/null
+++ b/libs/tgl/openssl/lib/x86/Release/2015/libeay32MD.lib
Binary files differ
diff --git a/libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib b/libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib
new file mode 100644
index 0000000000..3c7fa2bdec
--- /dev/null
+++ b/libs/tgl/openssl/lib/x86/Release/2015/ssleay32MD.lib
Binary files differ
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