#include <vector>
#include "lexi.h"  
#include "util.h"
#include "token.h"
#include "parser.h"

const string usage = "usage: app <input> <output>";
                       
int main(int argc, char* argv[]) {
    if(argc != 3) {
        cerr << usage << endl;
        return 1;
    }
    get_file_name(argv[1]);
    vector<string> data = open_file(argv[1]);
    lexi l;
    string temp = argv[2];
    vector<token> s = l.lexical_analyzer(data, temp);
    parser p;
    p.tokens = s;
    try {
        p.check_datalog();
        string out = p.out();
        write_file(out, argv[2]);
    } catch(string str) {
        stringstream s;
        s << "Failure!\n  " << str;
        write_file(s.str(), argv[2]);
    }
}
