2024-06-25 18:59:15 +02:00
|
|
|
/// AUTOGENERATED COPYRIGHT HEADER START
|
|
|
|
|
// Copyright (C) 2017-2024 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
|
|
|
|
|
// AUTOGENERATED COPYRIGHT HEADER END
|
2017-11-13 02:16:17 +01:00
|
|
|
#pragma once
|
|
|
|
|
#include <string>
|
2024-06-25 18:59:15 +02:00
|
|
|
#include <filesystem>
|
|
|
|
|
|
|
|
|
|
// Compiling requires several steps
|
|
|
|
|
// 1. Lexing to known tokens
|
|
|
|
|
// - This part may require a unicode library/framework, like Qt or ICU
|
|
|
|
|
// 2. Parsing the lexical tokens into an Abstract Syntax Tree (AST)
|
|
|
|
|
// - This is where we convert everything to logical steps, like math and function calls.
|
|
|
|
|
// 3. Compiling from the AST to some kind of runnable binary.
|
|
|
|
|
// - In our case, we convert the AST to LLVM IR, and then compile it with LLVM.
|
2017-11-13 02:16:17 +01:00
|
|
|
|
2024-06-06 14:04:34 +02:00
|
|
|
namespace blitz {
|
|
|
|
|
class compiler {
|
2017-11-13 02:16:17 +01:00
|
|
|
public:
|
2024-06-06 14:04:34 +02:00
|
|
|
compiler();
|
|
|
|
|
~compiler();
|
2017-11-13 02:16:17 +01:00
|
|
|
};
|
2024-06-06 13:37:13 +02:00
|
|
|
}
|