Meta: Move main to example target, better include compatibility

This commit is contained in:
Riyyi
2023-11-27 12:21:08 +01:00
parent 11f0553b5a
commit f87eb4d934
40 changed files with 208 additions and 174 deletions
+6 -6
View File
@@ -10,12 +10,12 @@
#include <utility> // std::move
#include <vector>
#include "ast.h"
#include "env/environment.h"
#include "error.h"
#include "forward.h"
#include "printer.h"
#include "types.h"
#include "blaze/ast.h"
#include "blaze/env/environment.h"
#include "blaze/error.h"
#include "blaze/forward.h"
#include "blaze/printer.h"
#include "blaze/types.h"
namespace blaze {
+1 -1
View File
@@ -20,7 +20,7 @@
#include "ruc/format/formatter.h"
#include "forward.h"
#include "blaze/forward.h"
namespace blaze {
+5 -5
View File
@@ -11,11 +11,11 @@
#include "ruc/file.h"
#include "ruc/format/format.h"
#include "ast.h"
#include "env/environment.h"
#include "error.h"
#include "forward.h"
#include "repl.h"
#include "blaze/ast.h"
#include "blaze/env/environment.h"
#include "blaze/error.h"
#include "blaze/forward.h"
#include "blaze/repl.h"
namespace blaze {
+2 -2
View File
@@ -11,8 +11,8 @@
#include <unordered_map>
#include <vector>
#include "ast.h"
#include "forward.h"
#include "blaze/ast.h"
#include "blaze/forward.h"
namespace blaze {
@@ -7,10 +7,10 @@
#include <cstddef> // size_t
#include <memory> // std:static_pointer_cast
#include "ast.h"
#include "env/macro.h"
#include "forward.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/forward.h"
#include "blaze/util.h"
namespace blaze {
@@ -7,10 +7,10 @@
#include <cstddef> // size_t
#include <memory> // std:static_pointer_cast
#include "ast.h"
#include "env/macro.h"
#include "forward.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/forward.h"
#include "blaze/util.h"
namespace blaze {
@@ -8,12 +8,12 @@
#include <cstddef> // size_t
#include <memory> // std::static_pointer_cast
#include "ast.h"
#include "env/environment.h"
#include "env/macro.h"
#include "forward.h"
#include "repl.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/environment.h"
#include "blaze/env/macro.h"
#include "blaze/forward.h"
#include "blaze/repl.h"
#include "blaze/util.h"
namespace blaze {
@@ -8,9 +8,9 @@
#include <functional> // std::function
#include <memory> // std::static_pointer_cast
#include "ast.h"
#include "env/macro.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/util.h"
namespace blaze {
@@ -8,9 +8,9 @@
#include <memory>
#include <system_error> // std::errc
#include "ast.h"
#include "env/macro.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/util.h"
namespace blaze {
@@ -7,13 +7,13 @@
#include <iterator> // std::next
#include <string>
#include "reader.h"
#include "ruc/format/print.h"
#include "ast.h"
#include "env/macro.h"
#include "printer.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/printer.h"
#include "blaze/reader.h"
#include "blaze/util.h"
namespace blaze {
@@ -4,11 +4,11 @@
* SPDX-License-Identifier: MIT
*/
#include "ast.h"
#include "env/macro.h"
#include "error.h"
#include "forward.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/error.h"
#include "blaze/forward.h"
#include "blaze/util.h"
namespace blaze {
@@ -7,12 +7,12 @@
#include <algorithm> // std::copy
#include <memory> // std::static_pointer_cast
#include "ast.h"
#include "env/environment.h"
#include "env/macro.h"
#include "forward.h"
#include "repl.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/environment.h"
#include "blaze/env/macro.h"
#include "blaze/forward.h"
#include "blaze/repl.h"
#include "blaze/util.h"
namespace blaze {
@@ -7,9 +7,9 @@
#include <cstdint> // int64_t
#include <memory> // std::static_pointer_cast
#include "ast.h"
#include "env/macro.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/util.h"
namespace blaze {
@@ -7,11 +7,11 @@
#include <chrono> // std::chrono::sytem_clock
#include <cstdint> // int64_t
#include "ast.h"
#include "env/macro.h"
#include "error.h"
#include "forward.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/error.h"
#include "blaze/forward.h"
#include "blaze/util.h"
namespace blaze {
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: MIT
*/
#include "ast.h"
#include "env/macro.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/util.h"
namespace blaze {
@@ -8,10 +8,10 @@
#include "ruc/file.h"
#include "ast.h"
#include "env/macro.h"
#include "repl.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/macro.h"
#include "blaze/repl.h"
#include "blaze/util.h"
namespace blaze {
+3 -1
View File
@@ -4,9 +4,11 @@
* SPDX-License-Identifier: MIT
*/
#pragma once
#include <unordered_map>
#include "env/environment.h"
#include "blaze/env/environment.h"
#define ADD_FUNCTION(name, signature, documentation, lambda) \
Environment::registerFunction( \
+2 -2
View File
@@ -10,8 +10,8 @@
#include "ruc/singleton.h"
#include "forward.h"
#include "lexer.h"
#include "blaze/forward.h"
#include "blaze/lexer.h"
namespace blaze {
@@ -16,16 +16,16 @@
#include "ruc/format/format.h"
#include "ruc/format/print.h"
#include "ast.h"
#include "env/environment.h"
#include "error.h"
#include "eval.h"
#include "forward.h"
#include "macro.h"
#include "printer.h"
#include "settings.h"
#include "types.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/environment.h"
#include "blaze/error.h"
#include "blaze/eval.h"
#include "blaze/forward.h"
#include "blaze/macro.h"
#include "blaze/printer.h"
#include "blaze/settings.h"
#include "blaze/types.h"
#include "blaze/util.h"
namespace blaze {
+7 -7
View File
@@ -10,13 +10,13 @@
#include <span> // std::span
#include <string>
#include "ast.h"
#include "env/environment.h"
#include "error.h"
#include "eval.h"
#include "forward.h"
#include "types.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/env/environment.h"
#include "blaze/error.h"
#include "blaze/eval.h"
#include "blaze/forward.h"
#include "blaze/types.h"
#include "blaze/util.h"
namespace blaze {
+1 -1
View File
@@ -8,7 +8,7 @@
#include <vector>
#include "forward.h" // EnvironmentPtr
#include "blaze/forward.h" // EnvironmentPtr
namespace blaze {
+2 -2
View File
@@ -11,8 +11,8 @@
#include "ruc/format/print.h"
#include "ruc/genericlexer.h"
#include "error.h"
#include "lexer.h"
#include "blaze/error.h"
#include "blaze/lexer.h"
namespace blaze {
View File
+3 -1
View File
@@ -4,7 +4,9 @@
* SPDX-License-Identifier: MIT
*/
#include "eval.h"
#pragma once
#include "blaze/eval.h"
#define CONCAT(a, b) CONCAT_IMPL(a, b)
#define CONCAT_IMPL(a, b) a##b
+7 -7
View File
@@ -11,13 +11,13 @@
#include "ruc/format/color.h"
#include "ruc/format/format.h"
#include "ast.h"
#include "error.h"
#include "lexer.h"
#include "printer.h"
#include "settings.h"
#include "types.h"
#include "util.h"
#include "blaze/ast.h"
#include "blaze/error.h"
#include "blaze/lexer.h"
#include "blaze/printer.h"
#include "blaze/settings.h"
#include "blaze/types.h"
#include "blaze/util.h"
namespace blaze {
+2 -1
View File
@@ -6,9 +6,10 @@
#pragma once
#include "ast.h"
#include <string>
#include "blaze/ast.h"
namespace blaze {
// Serializer -> return to string
+5 -5
View File
@@ -12,14 +12,14 @@
#include <system_error> // std::errc
#include <utility> // std::move
#include "error.h"
#include "ruc/format/color.h"
#include "ruc/meta/assert.h"
#include "ast.h"
#include "reader.h"
#include "settings.h"
#include "types.h"
#include "blaze/ast.h"
#include "blaze/error.h"
#include "blaze/reader.h"
#include "blaze/settings.h"
#include "blaze/types.h"
namespace blaze {
+2 -2
View File
@@ -10,8 +10,8 @@
#include <memory> // std::shared_ptr
#include <vector>
#include "ast.h"
#include "lexer.h"
#include "blaze/ast.h"
#include "blaze/lexer.h"
#define INDENTATION_WIDTH 2
+1 -1
View File
@@ -15,7 +15,7 @@
#include "ruc/format/color.h"
#include "ruc/format/print.h"
#include "readline.h"
#include "blaze/readline.h"
namespace blaze {
+10 -10
View File
@@ -11,16 +11,16 @@
#include "ruc/format/print.h"
#include "env/environment.h"
#include "error.h"
#include "eval.h"
#include "forward.h"
#include "lexer.h"
#include "printer.h"
#include "reader.h"
#include "readline.h"
#include "repl.h"
#include "settings.h"
#include "blaze/env/environment.h"
#include "blaze/error.h"
#include "blaze/eval.h"
#include "blaze/forward.h"
#include "blaze/lexer.h"
#include "blaze/printer.h"
#include "blaze/reader.h"
#include "blaze/readline.h"
#include "blaze/repl.h"
#include "blaze/settings.h"
namespace blaze {
+2 -2
View File
@@ -10,8 +10,8 @@
#include <string_view>
#include <vector>
#include "forward.h"
#include "readline.h"
#include "blaze/forward.h"
#include "blaze/readline.h"
namespace blaze {
+4 -4
View File
@@ -8,10 +8,10 @@
#include "ruc/meta/assert.h"
#include "env/environment.h"
#include "forward.h"
#include "settings.h"
#include "types.h"
#include "blaze/env/environment.h"
#include "blaze/forward.h"
#include "blaze/settings.h"
#include "blaze/types.h"
namespace blaze {
View File
+2 -2
View File
@@ -10,8 +10,8 @@
#include <string>
#include <string_view>
#include "error.h"
#include "types.h"
#include "blaze/error.h"
#include "blaze/types.h"
// -----------------------------------------
-84
View File
@@ -1,84 +0,0 @@
/*
* Copyright (C) 2023 Riyyi
*
* SPDX-License-Identifier: MIT
*/
#include <csignal> // std::signal
#include <string>
#include <string_view>
#include <vector>
#include "ruc/argparser.h"
#include "ruc/format/color.h"
#include "ruc/format/print.h"
#include "ast.h"
#include "env/environment.h"
#include "forward.h"
#include "repl.h"
#include "settings.h"
namespace blaze {
auto main(int argc, char* argv[]) -> int
{
bool dump_lexer = false;
bool dump_reader = false;
bool pretty_print = false;
std::string_view history_path = "~/.blaze-history";
std::vector<std::string> arguments;
// CLI arguments
ruc::ArgParser arg_parser;
arg_parser.addOption(dump_lexer, 'l', "dump-lexer", nullptr, nullptr);
arg_parser.addOption(dump_reader, 'r', "dump-reader", nullptr, nullptr);
arg_parser.addOption(pretty_print, 'c', "color", nullptr, nullptr);
arg_parser.addOption(history_path, 'h', "history-path", nullptr, nullptr, nullptr, ruc::ArgParser::Required::Yes);
// TODO: Add overload for addArgument(std::vector<std::string_view>)
arg_parser.addArgument(arguments, "arguments", nullptr, nullptr, ruc::ArgParser::Required::No);
arg_parser.parse(argc, argv);
// Set settings
g_outer_env->set("*DUMP-LEXER*", makePtr<Constant>(dump_lexer));
g_outer_env->set("*DUMP-READER*", makePtr<Constant>(dump_reader));
g_outer_env->set("*PRETTY-PRINT*", makePtr<Constant>(pretty_print));
// Signal callbacks
std::signal(SIGINT, Repl::cleanup);
std::signal(SIGTERM, Repl::cleanup);
Environment::loadFunctions();
Environment::installFunctions(g_outer_env);
Repl::makeArgv(g_outer_env, arguments);
if (arguments.size() > 0) {
Repl::rep(format("(load-file \"{}\")", arguments.front()), g_outer_env);
return 0;
}
Repl::rep("(println (str \"Blaze [\" *host-language* \"]\"))", g_outer_env);
g_readline = Readline(pretty_print, history_path);
std::string input;
while (g_readline.get(input)) {
std::string output = Repl::rep(input, g_outer_env);
if (output.length() > 0) {
print("{}\n", output);
}
}
if (pretty_print) {
print("\033[0m");
}
return 0;
}
} // namespace blaze
auto main(int argc, char* argv[]) -> int
{
return blaze::main(argc, argv);
}