Made common a project

This commit is contained in:
Pasha Bibko
2025-05-05 16:45:34 +01:00
parent 616ed1ca21
commit c64a2c692c
27 changed files with 337 additions and 146 deletions

2
.gitignore vendored
View File

@@ -11,6 +11,8 @@ obj/
# Ignore runtime outputs # # Ignore runtime outputs #
*.ll *.ll
*.obj
*.exe
log log
# Ignore user specific options # # Ignore user specific options #

170
Common/Common.vcxproj Normal file
View File

@@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" 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">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{0abb03b7-e61a-4040-a512-fc05aa35b2a6}</ProjectGuid>
<RootNamespace>Common</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\inter\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\inter\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;COMMON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;COMMON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;COMMON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>LX-Common.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;COMMON_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>LX-Common.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="inc\Console.h" />
<ClInclude Include="inc\Error.h" />
<ClInclude Include="inc\Logger.h" />
<ClInclude Include="inc\ThrowIf.h" />
<ClInclude Include="LX-Common.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\dllmain.cpp" />
<ClCompile Include="src\pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,41 @@
<?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;c++;cppm;ixx;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;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Header Files\Sections">
<UniqueIdentifier>{f3a1ae14-8b71-41d9-ba66-60c952867261}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="LX-Common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="inc\Console.h">
<Filter>Header Files\Sections</Filter>
</ClInclude>
<ClInclude Include="inc\Error.h">
<Filter>Header Files\Sections</Filter>
</ClInclude>
<ClInclude Include="inc\Logger.h">
<Filter>Header Files\Sections</Filter>
</ClInclude>
<ClInclude Include="inc\ThrowIf.h">
<Filter>Header Files\Sections</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

59
Common/LX-Common.h Normal file
View File

@@ -0,0 +1,59 @@
// This is a precompiled header file. //
// Files listed below are compiled only once, improving build performance for future builds. //
// This also affects IntelliSense performance, including code completion and many code browsing features. //
// However, files listed here are ALL re-compiled if any one of them is updated between builds. //
// Do not add files here that you will be updating frequently as this negates the performance advantage. //
#pragma once
// Includes Windows API if on the correct system //
#ifdef _WIN32
#define NOMINMAX
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
// Else alerts the user that their system is not supported //
#else
#error "This code is only designed to work on windows"
#endif // _WIN32
// Checks the user is using MSVC as it is required for this code to compile //
#ifndef _MSC_VER
#error "This code is only designed to work with Visual Studio"
#endif // _MSC_VER
// Includes commonly used STD files //
#include <unordered_map>
#include <string_view>
#include <type_traits>
#include <filesystem>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <fstream>
#include <string>
#include <vector>
#include <memory>
// Includes LLVM files (disables warnings thrown by them) //
#pragma warning(push)
#pragma warning(disable : 4244)
#pragma warning(disable : 4267)
#pragma warning(disable : 4624)
#pragma warning(disable : 4800)
#include <llvm/IR/IRBuilder.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/Verifier.h>
#pragma warning(pop) // <- Renables all warnings
// Includes the rest of common //
#include <inc/Console.h>
#include <inc/Error.h>
#include <inc/Logger.h>
#include <inc/ThrowIf.h>

View File

@@ -1,11 +1,3 @@
#pragma once
#define NOMINMAX
#include <Windows.h>
#include <iostream>
#include <string>
namespace LX namespace LX
{ {
enum class Color enum class Color

View File

@@ -1,5 +1,3 @@
#pragma once
namespace LX namespace LX
{ {
// Base error class for all LX thrown errors // // Base error class for all LX thrown errors //

View File

@@ -1,19 +1,13 @@
#pragma once
#include <fstream>
// Defining this is only if you are at the point where you should be using a debugger //
#define LOG_EVERYTHING
namespace LX namespace LX
{ {
template<typename... Args> template<typename... Args>
// Helper function for logging //
// Only logs the given args if the log is not null //
inline void SafeLog(std::ofstream* log, Args... args) inline void SafeLog(std::ofstream* log, Args... args)
{ {
if (log != nullptr) { (*log << ... << args); *log << "\n"; } if (log != nullptr)
{
(*log << ... << args);
(*log << '\n');
}
} }
inline void SafeFlush(std::ofstream* log) inline void SafeFlush(std::ofstream* log)

View File

@@ -1,8 +1,3 @@
#pragma once
// Type traits is included for std::is_base_of_v //
#include <type_traits>
namespace LX namespace LX
{ {
// Foward declares LX::RuntimeError so it can be used to see if a class derives from // // Foward declares LX::RuntimeError so it can be used to see if a class derives from //

17
Common/src/dllmain.cpp Normal file
View File

@@ -0,0 +1,17 @@
// dllmain.cpp : Defines the entry point for the DLL application.
#include <LX-Common.h>
BOOL __stdcall DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return true;
}

2
Common/src/pch.cpp Normal file
View File

@@ -0,0 +1,2 @@
// Wow, such an intresting file. Don't put anything else in here //
#include <LX-Common.h>

View File

@@ -148,9 +148,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="inc\Lexer.h" /> <ClInclude Include="inc\Lexer.h" />
<ClInclude Include="inc\LLVM.h" />
<ClInclude Include="inc\Parser.h" /> <ClInclude Include="inc\Parser.h" />
<ClInclude Include="inc\Util.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@@ -19,14 +19,8 @@
<ClInclude Include="inc\Lexer.h"> <ClInclude Include="inc\Lexer.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="inc\LLVM.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="inc\Parser.h"> <ClInclude Include="inc\Parser.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="inc\Util.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,25 +0,0 @@
#pragma once
// Helper file for including all neccesarry parts of LLVM //
#ifdef _MSC_VER
// Disables all warnings as LLVM files have a lot of Data-loss casts that won't cause issues //
#pragma warning(push)
#pragma warning(disable : 4244)
#pragma warning(disable : 4267)
#pragma warning(disable : 4624)
#pragma warning(disable : 4800)
// Includes the LLVM files //
#include <llvm/IR/IRBuilder.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/Verifier.h>
// Re-enables all warnings //
#pragma warning(pop)
#else
#error This code is only designed to work with MSVC due to the use of vcpkg and other aspects
#endif // _MSC_VER

View File

@@ -1,22 +1,6 @@
#pragma once #pragma once
#include <Error.h> #include <LX-Common.h>
#include <filesystem>
#include <vector>
#include <string>
// Foward declarations of STD classes to minimise includes //
namespace std
{
template<typename T1>
struct char_traits;
template<typename T1, typename T2>
class basic_ofstream;
using ofstream = basic_ofstream<char, char_traits<char>>;
}
// This file contains everything that is exported from Lexer.lib // This file contains everything that is exported from Lexer.lib
// The rest of the items within the Lexer project are internal only // The rest of the items within the Lexer project are internal only

View File

@@ -3,21 +3,7 @@
// Lexer foward declares fstream components so we can use them here // // Lexer foward declares fstream components so we can use them here //
#include <Lexer.h> #include <Lexer.h>
#include <Error.h> #include <LX-Common.h>
#include <unordered_map>
#include <memory>
// Foward declares STD stuff that is passed around //
namespace std::filesystem { class path; }
// Foward declares all items of the llvm lib that we need //
// Done to avoid including LLVM.h to shorten compile times //
namespace llvm
{
class Value;
class AllocaInst;
}
// Foward declares the wrapper around the LLVM objects we need to pass around // // Foward declares the wrapper around the LLVM objects we need to pass around //
namespace LX { struct InfoLLVM; } namespace LX { struct InfoLLVM; }

View File

@@ -1,16 +1,7 @@
#include <filesystem> #include <LX-Common.h>
#include <iostream>
#include <fstream>
#include <string>
#include <memory>
#include <ThrowIf.h>
#include <Console.h>
#include <Parser.h> #include <Parser.h>
#include <Lexer.h> #include <Lexer.h>
#include <Util.h>
#include <Error.h>
namespace LX namespace LX
{ {

View File

@@ -4,13 +4,20 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 17.13.35931.197 VisualStudioVersion = 17.13.35931.197
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lexer", "Lexer\Lexer.vcxproj", "{4E4019F5-12E0-4EE2-9658-A0DD3038EEDA}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lexer", "Lexer\Lexer.vcxproj", "{4E4019F5-12E0-4EE2-9658-A0DD3038EEDA}"
ProjectSection(ProjectDependencies) = postProject
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6} = {0ABB03B7-E61A-4040-A512-FC05AA35B2A6}
EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Frontend-Modules", "Frontend-Modules", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Frontend-Modules", "Frontend-Modules", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Parser", "Parser\Parser.vcxproj", "{D6EAFB31-4AFD-4989-9522-D6609AC4ED64}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Parser", "Parser\Parser.vcxproj", "{D6EAFB31-4AFD-4989-9522-D6609AC4ED64}"
ProjectSection(ProjectDependencies) = postProject
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6} = {0ABB03B7-E61A-4040-A512-FC05AA35B2A6}
EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Generator", "IR-Generator\IR-Generator.vcxproj", "{C88042E2-0E09-4383-93F8-C79F9EE1E897}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Generator", "IR-Generator\IR-Generator.vcxproj", "{C88042E2-0E09-4383-93F8-C79F9EE1E897}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6} = {0ABB03B7-E61A-4040-A512-FC05AA35B2A6}
{4E4019F5-12E0-4EE2-9658-A0DD3038EEDA} = {4E4019F5-12E0-4EE2-9658-A0DD3038EEDA} {4E4019F5-12E0-4EE2-9658-A0DD3038EEDA} = {4E4019F5-12E0-4EE2-9658-A0DD3038EEDA}
{D6EAFB31-4AFD-4989-9522-D6609AC4ED64} = {D6EAFB31-4AFD-4989-9522-D6609AC4ED64} {D6EAFB31-4AFD-4989-9522-D6609AC4ED64} = {D6EAFB31-4AFD-4989-9522-D6609AC4ED64}
EndProjectSection EndProjectSection
@@ -20,12 +27,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LX-Build", "LX-Build\LX-Bui
{C88042E2-0E09-4383-93F8-C79F9EE1E897} = {C88042E2-0E09-4383-93F8-C79F9EE1E897} {C88042E2-0E09-4383-93F8-C79F9EE1E897} = {C88042E2-0E09-4383-93F8-C79F9EE1E897}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common-Include", "Common-Include", "{4AD62954-631A-4D0F-877E-E1C66E8CEC00}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{4AD62954-631A-4D0F-877E-E1C66E8CEC00}"
ProjectSection(SolutionItems) = preProject EndProject
common\Console.h = common\Console.h Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "Common\Common.vcxproj", "{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}"
common\Error.h = common\Error.h
common\ThrowIf.h = common\ThrowIf.h
EndProjectSection
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -85,6 +89,18 @@ Global
{DE9DB560-F002-4922-98E6-558C3D04C607}.Release|x64.Build.0 = Release|Any CPU {DE9DB560-F002-4922-98E6-558C3D04C607}.Release|x64.Build.0 = Release|Any CPU
{DE9DB560-F002-4922-98E6-558C3D04C607}.Release|x86.ActiveCfg = Release|Any CPU {DE9DB560-F002-4922-98E6-558C3D04C607}.Release|x86.ActiveCfg = Release|Any CPU
{DE9DB560-F002-4922-98E6-558C3D04C607}.Release|x86.Build.0 = Release|Any CPU {DE9DB560-F002-4922-98E6-558C3D04C607}.Release|x86.Build.0 = Release|Any CPU
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Debug|Any CPU.ActiveCfg = Debug|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Debug|Any CPU.Build.0 = Debug|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Debug|x64.ActiveCfg = Debug|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Debug|x64.Build.0 = Debug|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Debug|x86.ActiveCfg = Debug|Win32
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Debug|x86.Build.0 = Debug|Win32
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Release|Any CPU.ActiveCfg = Release|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Release|Any CPU.Build.0 = Release|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Release|x64.ActiveCfg = Release|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Release|x64.Build.0 = Release|x64
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Release|x86.ActiveCfg = Release|Win32
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6}.Release|x86.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@@ -93,6 +109,7 @@ Global
{4E4019F5-12E0-4EE2-9658-A0DD3038EEDA} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {4E4019F5-12E0-4EE2-9658-A0DD3038EEDA} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
{D6EAFB31-4AFD-4989-9522-D6609AC4ED64} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {D6EAFB31-4AFD-4989-9522-D6609AC4ED64} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
{C88042E2-0E09-4383-93F8-C79F9EE1E897} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {C88042E2-0E09-4383-93F8-C79F9EE1E897} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
{0ABB03B7-E61A-4040-A512-FC05AA35B2A6} = {4AD62954-631A-4D0F-877E-E1C66E8CEC00}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {411AFEC9-4075-4FCC-B95A-9288BC822E90} SolutionGuid = {411AFEC9-4075-4FCC-B95A-9288BC822E90}

View File

@@ -1,19 +1,6 @@
#include <Lexer.h> #include <Lexer.h>
#include <Util.h>
#include <ThrowIf.h> #include <LX-Common.h>
#include <Console.h>
#include <sstream>
#include <unordered_map>
#include <string_view>
#include <fstream>
#include <vector>
#include <string>
#include <filesystem>
#include <iostream>
#include <iomanip>
namespace LX namespace LX
{ {

View File

@@ -1,7 +1,6 @@
#include <Lexer.h> #include <Lexer.h>
#include <string> #include <LX-Common.h>
#include <vector>
namespace LX namespace LX
{ {

View File

@@ -1,8 +1,6 @@
#include <Parser.h> #include <Parser.h>
#include <LLVM.h> #include <LX-Common.h>
#include <memory>
namespace LX namespace LX
{ {

View File

@@ -1,9 +1,7 @@
#include <Parser.h> #include <Parser.h>
#include <ThrowIf.h> #include <LX-Common.h>
#include <LLVM.h>
#include <Util.h>
#include <AST.h> #include <AST.h>
namespace LX::AST namespace LX::AST

View File

@@ -1,6 +1,6 @@
#include <AST.h> #include <AST.h>
#include <fstream> #include <LX-Common.h>
namespace LX::AST namespace LX::AST
{ {

View File

@@ -1,13 +1,9 @@
#include <Parser.h> #include <Parser.h>
#include <ThrowIf.h> #include <LX-Common.h>
#include <Util.h>
#include <AST.h> #include <AST.h>
#include <filesystem>
#include <iostream>
namespace LX namespace LX
{ {
// Tells the generator if the current node is allowed to be within a top-level context // // Tells the generator if the current node is allowed to be within a top-level context //

View File

@@ -1,10 +1,8 @@
#include <Parser.h> #include <Parser.h>
#include <ThrowIf.h> #include <LX-Common.h>
#include <Util.h>
#include <AST.h>
#include <iostream> #include <AST.h>
namespace LX namespace LX
{ {

View File

@@ -1,10 +1,6 @@
#include <Parser.h> #include <Parser.h>
#include <Console.h> #include <LX-Common.h>
#include <filesystem>
#include <iomanip>
#include <sstream>
namespace LX namespace LX
{ {

View File

@@ -1,7 +1,7 @@
#include <Parser.h> #include <Parser.h>
#include <ThrowIf.h> #include <LX-Common.h>
#include <Util.h>
#include <AST.h> #include <AST.h>
namespace LX namespace LX