#include
#include
#include
#include
#define CLI11_HAS_FILESYSTEM 0
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace {
using LFortran::endswith;
using LFortran::CompilerOptions;
using LFortran::parse_python_file;
enum Backend {
llvm, cpp, x86
};
enum ASRPass {
do_loops, global_stmts, implied_do_loops, array_op,
arr_slice, print_arr, class_constructor, unused_functions,
inline_function_calls
};
std::string remove_extension(const std::string& filename) {
size_t lastdot = filename.find_last_of(".");
if (lastdot == std::string::npos) return filename;
return filename.substr(0, lastdot);
}
std::string remove_path(const std::string& filename) {
size_t lastslash = filename.find_last_of("/");
if (lastslash == std::string::npos) return filename;
return filename.substr(lastslash+1);
}
std::string get_kokkos_dir()
{
char *env_p = std::getenv("LFORTRAN_KOKKOS_DIR");
if (env_p) return env_p;
std::cerr