
public class Main {

	public static void main(String[] args) {

	}

}

@@ -1,71 +1,1354 @@
-%0Apublic class Main %7B%0A%0A%09public static void main(String%5B%5D args) %7B%0A%0A%09%7D%0A
+import java.io.BufferedReader;%0Aimport java.io.File;%0Aimport java.io.FileReader;%0Aimport java.util.LinkedList;%0Aimport java.util.Queue;%0A%0A%0Apublic class Main %7B%0A%0A%09public static void main(String%5B%5D args) %7B%0A%09%09File input = inputFile(args);%0A%09%09String text = readFileToString(input);%0A%09%09Lexer lexer = new Lexer(text);%0A%09%09%0A%09%09Queue%3CTokenData%3E tokens = new LinkedList%3CTokenData%3E();%0A%09%09%0A%09%09while (lexer.hasNext()) %7B%0A%09%09%09tokens.offer(lexer.next());%0A%09%09%7D%0A%09%09%0A%09%09Node root = new RootNode().parse(tokens);%0A%09%09%0A%09%09System.out.println(root.html());%0A%09%7D%0A%0A%09private static File inputFile(String%5B%5D args) %7B%0A%09%09if (args.length != 1) %7B%0A%09%09%09System.err.println(%22Bad arguments: make run CURL=%3Cfile.curl%3E%22);%0A%09%09%09System.exit(-1);%0A%09%09%7D%0A%09%09%0A%09%09File target = new File(args%5B0%5D);%0A%09%09%0A%09%09if (!target.exists()) %7B%0A%09%09%09System.err.println(String.format(%22Could not find file %25s%22, target.getName()));%0A%09%09%09System.exit(-1);%0A%09%09%7D%0A%09%09%0A%09%09return target;%0A%09%7D%0A%09%0A%09private static String readFileToString(File input) %7B%0A%09%09StringBuilder result = new StringBuilder();%0A%09%09String line = null;%0A%09%09%0A%09%09try %7B%0A%09%09%09BufferedReader reader = new BufferedReader(new FileReader(input));%0A%09%09%09%0A%09%09%09while ((line = reader.readLine()) != null) %7B%0A%09%09%09%09result.append(line);%0A%09%09%09%7D%0A%09%09%09%0A%09%09%09reader.close();%0A%09%09%7D catch (Exception e) %7B%0A%09%09%09System.err.println(String.format(%22An error occurred: %25s%22, e.getMessage()));%0A%09%09%09System.exit(-1);%0A%09%09%7D%0A%09%09%0A%09%09return result.toString();%0A%09%7D
 %0A%7D%0A

Implement main (no testing)