Files
2026-10-12 23:34:28 +02:00

51 lines
1.3 KiB
C++

#include <iostream>
#include <dlang.hpp>
#include <cstring>
int main(int argc, char** argv)
{
DlangVM vm;
OpenStandardLibs(&vm);
if (argc == 2)
{
std::filesystem::path inputPath(argv[1]);
auto ext = inputPath.extension().string();
if (ext == ".bdlang")
vm.RunBinaryFile(argv[1]);
else if (ext == ".dlang")
vm.RunFile(argv[1]);
else
printf("Must be a .dlang or .bdlang file!");
}
else if (argc == 3)
{
if (strcmp(argv[2], "--compile") == 0)
{
std::vector<double> bytecode = {};
vm.RunFile(argv[1], &bytecode);
std::filesystem::path inputPath(argv[1]);
std::filesystem::path outputPath = inputPath.replace_extension(".bdlang");
std::ofstream file(outputPath, std::ios::binary);
if (file.is_open())
{
file.write(reinterpret_cast<const char*>(bytecode.data()), bytecode.size() * sizeof(double));
file.close();
std::cout << "Compiled to: " << outputPath.string() << std::endl;
}
else
{
std::cerr << "Failed to create file: " << outputPath.string() << std::endl;
}
}
}
else {
printf("%s [filename] [--compile]\n", argv[0]);
}
}