@@ -0,0 +1,1312 @@
+package org.spoofax.interpreter.compiler;%0A%0Aimport java.io.FileOutputStream;%0Aimport java.io.IOException;%0Aimport java.io.PrintStream;%0A%0Aimport org.spoofax.interpreter.InterpreterException;%0Aimport org.spoofax.interpreter.adapters.aterm.WrappedATermFactory;%0Aimport org.spoofax.interpreter.terms.IStrategoTerm;%0Aimport org.spoofax.jsglr.InvalidParseTableException;%0A%0Apublic class CompileStratego %7B%0A%0A%09/**%0A%09 * @param args%0A%09 * @throws InvalidParseTableException %0A%09 * @throws InterpreterException %0A%09 * @throws IOException %0A%09 */%0A%09public static void main(String%5B%5D args) throws IOException, InterpreterException, InvalidParseTableException %7B%0A%09%09Compiler compiler = new Compiler(new WrappedATermFactory());%0A%09%09String%5B%5D path = %7B %22data/sglr%22, %22data/sig%22,%0A%09%09%09%09%09      %22data/libstrlib%22, %22data/xtc%22,%0A%09%09%09%09          %22data/c-tools%22, %22data/gpp%22,%0A%09%09%09%09%09%09  %22data/rtg%22, %22data/xtc-tools%22 %7D;%0A%09%09IStrategoTerm out = null;%0A%09%09try %7B%0A%09%09  out = compiler.compile(%22data/strc-core/dump-strc.str%22, path);%0A%09%09%7D%0A%09%09catch (StackOverflowError e) %7B%0A%09%09%09System.err.println(%22Size of the stack: %22 + e.getStackTrace().length);%0A%09%09%09e.printStackTrace();%0A%09%09%7D%0A%09%09%0A%09%09if (out == null)%0A%09%09%09System.err.println(%22Fucked up!%22);%0A%09%09else %7B%0A%09%09%09FileOutputStream f = new FileOutputStream(%22data/out.ctree%22);%0A%09%09%09PrintStream fs = new PrintStream(f);%0A%09%09%09fs.print(out);%0A%09%09%09f.close();%0A%09%09%7D%0A%09%7D%0A%0A%7D%0A

Add bootstrapping compiler.