Meta: Move main to example target, better include compatibility
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include "ruc/format/formatter.h"
|
||||
|
||||
#include "forward.h"
|
||||
#include "blaze/forward.h"
|
||||
|
||||
namespace blaze {
|
||||
|
||||
+5
-5
@@ -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
@@ -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 {
|
||||
|
||||
+4
-4
@@ -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 {
|
||||
|
||||
Vendored
+4
-4
@@ -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 {
|
||||
|
||||
+6
-6
@@ -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
@@ -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( \
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "forward.h" // EnvironmentPtr
|
||||
#include "blaze/forward.h" // EnvironmentPtr
|
||||
|
||||
namespace blaze {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
@@ -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 {
|
||||
|
||||
@@ -6,9 +6,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ast.h"
|
||||
#include <string>
|
||||
|
||||
#include "blaze/ast.h"
|
||||
|
||||
namespace blaze {
|
||||
|
||||
// Serializer -> return to string
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "ruc/format/color.h"
|
||||
#include "ruc/format/print.h"
|
||||
|
||||
#include "readline.h"
|
||||
#include "blaze/readline.h"
|
||||
|
||||
namespace blaze {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
|
||||
#include "error.h"
|
||||
#include "types.h"
|
||||
#include "blaze/error.h"
|
||||
#include "blaze/types.h"
|
||||
|
||||
// -----------------------------------------
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user