public static void main(String[] args) throws IOException {

		Input in = new Input();
		Evaluater evaluater = new Evaluater();
		evaluater.arrayStacks = new ArrayList<VarStack>();
		LoadFile loadFile;

		System.out.println("======Welcome to my Lisp=======");
		if (args.length != 0) { // ファイルの指定があった場合.
			loadFile = new LoadFile(args[0]);
			Lexer lexer = new Lexer();
			List<String> tokenresult = lexer
					.tokenize(loadFile.getinputString());
			Parser syntactic = new Parser(tokenresult);
			Node result = syntactic.maketree();
			evaluater.answer = new String();
			evaluater.Analysis(result);
			if (evaluater.answer != null)
				System.out.println("OUT: " + evaluater.answer);

		} else {
			System.out.println("\n Input Command \n");
			System.out.println("IN: ");
			while (!in.input().equals("quit")) {
				Lexer lexer = new Lexer();
				List<String> tokenresult = lexer.tokenize(in.getString());
				Parser syntactic = new Parser(tokenresult);
				Node result = syntactic.maketree();
				evaluater.answer = new String();
				evaluater.Analysis(result);
				if (evaluater.answer != null)
					System.out.println("OUT: " + evaluater.answer);
				evaluater.elementList = new LinkedList<String>();
				System.out.println("IN: ");
			}
		}
		System.out.println("\n==============END=============");
	}