diff options
Diffstat (limited to 'tuplr.cpp')
-rw-r--r-- | tuplr.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -139,7 +139,8 @@ macDef(PEnv& penv, const SExp& exp) SExp fnExp(exp.at(2).loc); fnExp.push_back(SExp(exp.at(2).loc, "fn")); fnExp.push_back(argsExp); - fnExp.push_back(exp.at(2)); + for (size_t i = 2; i < exp.size(); ++i) + fnExp.push_back(exp.at(i)); SExp ret(exp.loc); ret.push_back(exp.at(0)); ret.push_back(exp.at(1).at(0)); @@ -244,6 +245,8 @@ print_usage(char* name, bool error) os << " -h Display this help and exit" << endl; os << " -r Enter REPL after evaluating files" << endl; os << " -p Pretty-print input only" << endl; + os << " -g Debug (disable optimisation)" << endl; + os << " -d Dump assembly output" << endl; os << " -e EXPRESSION Evaluate EXPRESSION" << endl; os << " -o FILE Write output to FILE" << endl; return error ? 1 : 0; @@ -267,9 +270,10 @@ main(int argc, char** argv) return print_usage(argv[0], false); } else if (argv[i][0] != '-') { files.push_back(argv[i]); - } else if (!strncmp(argv[i], "-r", 3)) { - args.insert(make_pair(argv[i], "")); - } else if (!strncmp(argv[i], "-p", 3)) { + } else if (!strncmp(argv[i], "-r", 3) + || !strncmp(argv[i], "-p", 3) + || !strncmp(argv[i], "-g", 3) + || !strncmp(argv[i], "-d", 3)) { args.insert(make_pair(argv[i], "")); } else if (i == argc-1 || argv[i+1][0] == '-') { return print_usage(argv[0], true); @@ -279,6 +283,8 @@ main(int argc, char** argv) } } + cenv->args = args; + int ret = 0; string output; |