public Program fileToProgram(File file) {
		ArrayList<ArrayList<String>> program = new ArrayList<ArrayList<String>>();
		try {
			String s;
			BufferedReader reader = new BufferedReader(new FileReader(file.getAbsolutePath()));

			while((s = reader.readLine()) != null) {
				s += "\n";
				ArrayList<String> line = new ArrayList<String>();
				String word = new String("");

				for(int i = 0; s.charAt(i) != '\n'; i++) {
					/*
					 * One space    => second or third column word or fourth column is empty
					 * Two spaces   => first column is empty or fourth column is empty
					 * Three spaces => second or third column is empty
					 */
					if(s.charAt(i) == ' ') {
						if(s.charAt(i+1) == ' ') {
							if(s.charAt(i+2) == ' ') {
								line.add(word);
								word = "";
								line.add(" ");
								i++;
							}

							else if(s.charAt(i+2) == '\n') {
								line.add(word);
								line.add(" ");
								break;
							}

							else
								line.add(" ");
							i++;
						}

						else if(s.charAt(i) == '\n') {
							line.add(word);
							line.add(" ");
							break;
						}

						else {
							line.add(word);
							word = "";
						}
					}

					else if(s.charAt(i) == ';') {
						line.add(s.substring(i, s.length()-1));
						break;
					}

					else	word += s.charAt(i);
				}

				program.add(line);
			}

			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return new Program(program);
	}