public void jasmin() {
      try{
         // jasmine uses a ".j" extension by default
         String name = browseClass() + ".j";
         String fileName = parseFileDir(name) + parseFileName(name) + "." + parseFileExt(name);

         // make sure there is a place to put it
         if (!parseFileDir(name).equals("")) {
            // test if directory for the class exists
            File f = new File("jasper.out" + File.separatorChar + parseFileDir(name));
            fileName = "jasper.out" + File.separatorChar + fileName;

            // if the directory path does exist, then create it under the current directory
            if (!f.exists()) f.mkdirs();
         }

         // open up the output stream to write the file
         PrintStream out = new PrintStream(new FileOutputStream(fileName));

         // print the .source directive
         attributes.jasmin(out);

         // print the .class or .interface directive
         if ((accessFlags & 0x0200) > 0) {
            out.print(pad(".interface", SPACER));
         } else {
            out.print(pad(".class", SPACER));
         }
         out.println(accessString() + pool.toString(thisClass));

         // print the .super directive
         if (superClass > 0) out.println(pad(".super", SPACER) + pool.toString(superClass));

         // print the .implements directives
         interfaces.jasmin(out);
         out.println("");

         // print the .field directives
         fields.jasmin(out);
         out.println("");

         // print the .method directives
         methods.jasmin(out);

         // echo that the jasmine file has been completed
         System.out.println("Generated: " + fileName);

      } catch (IOException e) {
         // report the error
         System.out.println(e);
      }
   }