34void showHelp(
const fs::path &program =
"phasor")
36 const std::string programName = program.stem().string();
37 std::println(
"Phasor Programming Language\n"
38 "Usage: [RAWSCRIPT] | {} [SCRIPT, BYTECODE]\n"
39 "A. PIPE: <text> | {}\n"
40 "B. JIT/BYTECODE: {} <file>\n"
42 "Example:", programName, programName, programName, programName);
45 std::println(
"A. CMD: echo \"print(^\"Hi\\!\\n^);\" | {}\n"
46 "A. PWSH: echo \"print(`\"Hi\\!\\n`);\" | {}\n"
48 "B. {} hello.phsb", programName, programName, programName, programName);
50 std::println(
"A. echo \"print(\\\"Hi\\!\\n\\\");\" | {}\n"
52 "B. {} hello.phsb", programName, programName, programName);
56int main(
int argc,
char *argv[],
char *envp[])
74 const fs::path program = argv[0];
75 const fs::path file = argv[1];
77 if (!fs::exists(file))
79 const std::string raw = file.string();
80 if (!raw.empty() && (raw.front() ==
'-' || raw.front() ==
'/'))
82 std::string m_path = raw;
83 m_path.erase(0, m_path.find_first_not_of(
"-/"));
84 if (m_path ==
"help" || m_path ==
"h" || m_path ==
"?" || m_path ==
"h" || m_path ==
"help")
89 std::println(std::cerr,
"Invalid argument: {}", m_path);
92 std::println(std::cerr,
"File not found: {}", raw);
96 const std::string ext = file.extension().string();
101 return ScriptRT.
run();
103 else if (ext ==
".phsb")
108 else if (ext ==
".phir")
110 std::println(
"Phasor IR (.phir) compilation not yet implemented.");
115 std::println(std::cerr,
"Unknown extension: {}", ext);
119 catch (
const std::exception &e)
121 std::println(std::cerr,
"Error: {}", e.what());
std::string readStdin()
Reads all content from stdin until EOF (piped input).
void showHelp(const fs::path &program="phasor")