jtlc/main/jtlc.cc
josh 9c26b9593c more nodes
git-svn-id: svn://anubis/jtlc/trunk@15 f5bc74b8-7b62-4e90-9214-7121d538519f
2010-01-13 21:13:22 +00:00

53 lines
1.1 KiB
C++

#include <stdio.h> /* tmpfile() */
#include <stdlib.h> /* exit() */
#include <unistd.h> /* unlink() */
#include <vector>
#include "util/refptr.h"
#include "parser/parser.h"
#include "nodes/Node.h"
using namespace std;
int usage();
void compile(const char * filename);
int usage()
{
fprintf(stderr, "Usage: jtlc [options] <source files>\n");
exit(42);
}
int main(int argc, char * argv[])
{
vector<const char *> source_files;
for (int i = 1; i < argc; i++)
{
if (argv[i][0] != '-')
{
source_files.push_back(argv[i]);
}
}
if (source_files.size() < 1)
{
usage();
}
for (int i = 0, num = source_files.size(); i < num; i++)
{
compile(source_files[i]);
}
return 0;
}
void compile(const char * filename)
{
string out_filename = string(filename) + ".c";
FILE * out = fopen(out_filename.c_str(), "w");
refptr<Node> tree = parse(filename);
tree->process(out);
fclose(out);
// unlink(out_filename.c_str());
}