Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

ExecutionTiming.slx

Blame
  • Java_CodeGen.jrag 21.02 KiB
    import java.io.*;
    import java.util.*;
    
    aspect Java_CodeGenEnv {
    
      // Environment wrapper for Java-code generation
      // handles indentation, file writing, 
    
      public class Java_env {
    
        private int indent;
        private int depth;
        private Java_printer printer;
        private HashMap unique = new HashMap();
    
        final private class Java_printer {
          
          private boolean newline = true;
          private File file;
          private PrintStream out;
          private IOException exception;
          
    
          public Java_printer(File f) {
      	file = f;
            File parentFile = f.getParentFile();
            if(parentFile != null) {
                parentFile.mkdirs();
            }
          }
    
         public Java_printer(PrintStream out) {
            this.out = out;
          }
    
          public void close() throws IOException {
    	if (out != null) {
      	  out.close();
            }
    	if (exception != null) {
    	  throw exception;
            }
          }
    
          public PrintStream getPrintStream() {
    	return(out);
          }
    
          public void checkOpen() {
    	if (out == null && exception == null) {
              try {
        	    out = new PrintStream(new FileOutputStream(file));
              } catch (IOException e) {
    	    exception = e;
              }
            }
          }
    
          public void print(Java_env env, String s) {
    	checkOpen();
            if (newline) {
              newline = false;
              for (int i = 0 ; i < env.indent ; i++) {
                out.print("  ");
              }
            }
            out.print(s);
          }
    
          public void println(Java_env env, String s) {