public void processLine(String[] line) { switch (line[0]) { case "PRINT": print(line); break; case "FOR": forLoop(line); break; default: if (line[1].equals("=")) { assignment(line); } else if (line[1].equals("*=")) { doMath(line[0], line[2], "*"); } else if (line[1].equals("-=")) { doMath(line[0], line[2], "-"); } else if (line[1].equals("+=")) { if (!(vars.get(line[0]) instanceof String)) { doMath(line[0], line[2], "+"); } else if (line[2].contains("\"")) { String s = line[2].substring(1); if (!line[3].equals(";")) { int i = 3; while (!line[i].contains("\"")) { s += " " + line[i]; i++; } s += " " + line[i].substring(0, line[i].length() - 1); vars.put(line[0], vars.get(line[0]) + s); } else { vars.put(line[0], vars.get(line[0]) + s.substring(0, s.length() - 1)); } } else { if (vars.get(line[2]) instanceof String) { vars.put(line[0], (String) vars.get(line[0]) + (String) vars.get(line[2])); } else { System.err.println("RUNTIME ERROR: LINE " + lineNum); System.exit(1); } } } } }