public void compiler_start() throws Exception{
        File f = new File("src"+File.separator+"input"+File.separator+"program.lsp");  
        // прописываем путь где будет храниттся файл
      File f1 = new File(System.getProperty("user.dir")+"/src/output/program.java"); 
      File f2 = new File(System.getProperty("user.dir")+"/src/output/1.txt"); 
      f1.delete();
          BufferedReader br = new BufferedReader(new FileReader(f.getAbsolutePath()));
          //Открываем 1-й файл для записи
      BufferedOutputStream bufOut = new BufferedOutputStream(new FileOutputStream(f1, true)); 
          /*будем записывть в конец файла program.java
          ВНИМАНИЕ!!! Не обращать вниания на ошибку в файле program.java. Там не хватает одной скобки }
          При повторном запуске программы удалять содержимое файла program.java
          после 
          public static void main(String[] args){
           System.out.println(evaluate());
          }
          */
      //Открываем 2-й файл для считывания
      BufferedInputStream bufRead = new BufferedInputStream(new FileInputStream(f2));
      int n;
      while((n = bufRead.read()) != -1) {
      bufOut.write(n);
      }
      bufOut.flush();      // Принудительно выталкиваем данные с буфера
      bufOut.close();     // Закрываем соединения
      bufRead.close(); 
      
          Writer writer = new BufferedWriter(new FileWriter(f1,true));
          
          
          
          String s = null; 
          String str ="";
          Parser parser = new Parser();
          while ((s = br.readLine()) != null){
              
            // System.out.println(s); 
             str = str+s;
          }
          s = str;
                    
              LISP_object program = parser.getParseTree(s);                           
              String res = this.compile(program);
              if (program.list.get(0).var!=null && program.list.get(0).var.type.equals("String") && program.list.get(0).var.data.equals("begin"))
                res = "public static LinkedList<LISP_object> forglobals = new LinkedList();\n"
                      +"public static Env globals = new Env();\n"
                      + "public static LISP_object evaluate(){LinkedList<LISP_object> res = new LinkedList();\n"+res+"}";
              else
                  res = "public static LinkedList<LISP_object> forglobals = new LinkedList();\n"
                      +"public static Env globals = new Env();\n"
                      + "public static LISP_object evaluate(){LinkedList<LISP_object> res = new LinkedList();\n"+res+"return res.pollLast();}";
              System.out.println(res);
              writer.append("\r\n");
              writer.append(res);
          
          for (String it: this.functions.values()){
              System.out.println(it);
              writer.append("\r\n");
              writer.append(it);
          }
          //в конце файла progrm.java не хватает }, поэтому добавляем }
          writer.append("\r\n");
          writer.append("}");
          br.close();
          writer.close();
    }