/*
 *  
 *   
 *
 *  @author http://bumble.sf.net
 */


#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include "Parser.h"

using namespace std;
  

  //--------------------------------------------
  /* a main method for testing */

  int main(int argc, char* argv[]) 
  {
    string sUsageMessage("");
    sUsageMessage.append("usage: echo input | Parser script-file debug-flag\n");
    sUsageMessage.append("usage: cat input-file | Parser script-file debug-flag\n");
    sUsageMessage.append("  \n");
    ifstream in;
    bool bDebug = false;

    if (argc < 2) 
    {
       cout << sUsageMessage;
       exit(-1);
    }
    else if (argc == 3)
    {
      bDebug = true;
    }

    in.open(argv[1]);
    if (!in.is_open())
    {
        cout << "couldnt open file " << argv[1] << endl;
	exit(-1);
    }
	  

    Parser parser;
    bool bResult = parser.parse(in);
    if (bResult)
    {
      if (bCompile)
      {
      }

      Program program = parser.getProgram();
      //cout << parser.toString();
      cout << program.listing();      
      program.run(cin, bDebug);
    }
    else
    {
      cout << "There was a problem parsing the script" << endl;
      cout << parser.showErrors();
      cout << parser.showWarnings();
    }


 
  } //-- main()