package ruke.vrj;

import ruke.vrj.server.LanguageServer;

public class Main {

  public static void main(String[] args) {
    new LanguageServer().listen(System.in);
  }
}

@@ -23,148 +23,1003 @@
 ort 
-ruke.vrj.server.LanguageServer;%0A%0Apublic class Main %7B%0A%0A  public static void main(String%5B%5D args) %7B%0A    new LanguageServer().listen(System.in);
+static java.util.concurrent.TimeUnit.MILLISECONDS;%0Aimport static java.util.concurrent.TimeUnit.NANOSECONDS;%0A%0Aimport com.google.common.base.Charsets;%0Aimport com.google.common.io.Files;%0Aimport java.io.File;%0Aimport ruke.vrj.compiler.Compiler;%0A%0Apublic class Main %7B%0A%0A  public static void main(String%5B%5D args) %7B%0A    final Compiler compiler = new Compiler();%0A%0A    try %7B%0A      for (final String arg : args) %7B%0A        final String toCompile = Files.toString(new File(arg), Charsets.UTF_8);%0A        final String compiled = compiler.compile(toCompile);%0A        final long start = System.nanoTime();%0A%0A        if (compiler.getResults().isEmpty()) %7B%0A          System.out.println(compiled);%0A        %7D else %7B%0A          System.out.println(compiler.getResults());%0A        %7D%0A%0A        System.out.println(%0A            %22Compiled in %22 +%0A            MILLISECONDS.convert(System.nanoTime() - start, NANOSECONDS) +%0A            %22 milliseconds%22%0A        );%0A      %7D%0A    %7D catch (Exception e) %7B%0A      e.printStackTrace();%0A    %7D
 %0A  %7D

Remove LanguageServer from Main (for the moment)