56int main(
int argc,
char *argv[],
char *envp[])
61 if (!source.empty()) {
72 const fs::path program = argv[0];
73 const fs::path file = argv[1];
75 if (!fs::exists(file)) {
76 const std::string raw = file.string();
77 if (!raw.empty() && (raw.front() ==
'-' || raw.front() ==
'/')) {
78 std::string m_path = raw;
79 m_path.erase(0, m_path.find_first_not_of(
"-/"));
80 if (m_path ==
"help" || m_path ==
"h" || m_path ==
"?" || m_path ==
"h" || m_path ==
"help") {
84 std::cerr <<
"Invalid argument: " << m_path <<
"\n";
86 std::cerr <<
"File not found: " << raw <<
"\n";
91 const std::string ext = file.extension().string();
95 return ScriptRT.
run();
96 }
else if (ext ==
".phsb") {
99 }
else if (ext ==
".phir") {
100 std::cout <<
"Phasor IR (.phir) compilation not yet implemented.\n";
103 std::cerr <<
"Unknown extension: " << ext <<
"\n";
107 catch (
const std::exception &e)
109 std::cerr <<
"Error: " << e.what() <<
"\n";
std::string readStdin()
Reads all content from stdin until EOF (piped input).
void showHelp(const fs::path &program="phasor")