pnuts.tools
Class PnutsCompiler

java.lang.Object
  extended by pnuts.tools.PnutsCompiler

public class PnutsCompiler
extends java.lang.Object

A batch compiler for Pnuts. It reads Pnuts scripts and generates class files or a JAR file.

 
  Usage:
     pnutsc [ -d destination_directory ] [ -o jar_file ] [ -v ] [ -no_proxy ] [ -prefix name ] [ -main className ] [ -m module ] [ -impl pnutsImplClassName ] [ -encoding encoding_name ] [ -C dir ] { script_file | jar_file } ...
  
 


Constructor Summary
PnutsCompiler()
           
 
Method Summary
 void compileToFile(java.io.File dir, java.lang.String[] files, java.lang.String[] dirs, java.lang.String[] modules, java.lang.String mainClassName, java.lang.String pnutsImplClassName, java.lang.String encoding)
          Compile Pnuts scripts and save the generated code into class files.
 void compileToFile(Pnuts p, java.lang.String name, java.io.File dir)
          Compile a parsed expression and save the compiled code to class files.
 void compileToZip(Pnuts p, java.lang.String name, java.util.zip.ZipOutputStream zout)
          Compile a parsed expression and save the compiled code to a Zip file
 void compileToZip(java.util.zip.ZipOutputStream zout, java.lang.String[] files, java.lang.String[] dirs, java.lang.String[] modules, java.lang.String mainClassName, java.lang.String pnutsImplClassName, java.lang.String encoding)
          Compile Pnuts scripts and save the generated code into a ZIP file.
static ClassFile generateMainClass(java.lang.String mainClassName, java.lang.String arg0, java.lang.String[] modules, java.lang.String[] classNames, java.lang.String pnutsImplClassName)
           public class mainClassName extends Runtime { public Object run(Context ctx){ ctx.usePackage(module1); ...
 void includeLineNumber(boolean flag)
           
 void includeMainMethod(boolean flag)
           
static void main(java.lang.String[] args)
           
static void setClassPrefix(java.lang.String p)
          Set the prefix of the class name.
 void setVerbose(boolean flag)
          Set verbose mode
 void useDynamicProxy(boolean flag)
          Switch dynamic proxy generation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PnutsCompiler

public PnutsCompiler()
Method Detail

setVerbose

public void setVerbose(boolean flag)
Set verbose mode

Parameters:
flag - If true, verbose message is printed

includeMainMethod

public void includeMainMethod(boolean flag)
Parameters:
flag - If true, main() method is generated.

includeLineNumber

public void includeLineNumber(boolean flag)

useDynamicProxy

public void useDynamicProxy(boolean flag)
Switch dynamic proxy generation

Parameters:
flag - If true dynamic proxy is generated for every method/constructor call.

setClassPrefix

public static void setClassPrefix(java.lang.String p)
Set the prefix of the class name.

Parameters:
prefix - the prefix. Default is null.

compileToZip

public void compileToZip(Pnuts p,
                         java.lang.String name,
                         java.util.zip.ZipOutputStream zout)
Compile a parsed expression and save the compiled code to a Zip file

Parameters:
p - a parsed expression
name - the class name of the compiled code
zout - a ZipOutputStream to which the compiled code is written

compileToFile

public void compileToFile(Pnuts p,
                          java.lang.String name,
                          java.io.File dir)
Compile a parsed expression and save the compiled code to class files.

Parameters:
p - a parsed expression
name - the class name of the compiled code
dir - the directory in which the class files are saved

generateMainClass

public static ClassFile generateMainClass(java.lang.String mainClassName,
                                          java.lang.String arg0,
                                          java.lang.String[] modules,
                                          java.lang.String[] classNames,
                                          java.lang.String pnutsImplClassName)
 public class mainClassName extends Runtime {
 public Object run(Context ctx){
       ctx.usePackage(module1);
       ...
       new className1().run((Context)ctx.clone());
       ...
    }
        public static void main(String args[]) {
                Context context = new Context();
                context.getCurrentPackage().set("$args".intern(), args);
                new mainClassName().run(context);
        }
 }
 


compileToZip

public void compileToZip(java.util.zip.ZipOutputStream zout,
                         java.lang.String[] files,
                         java.lang.String[] dirs,
                         java.lang.String[] modules,
                         java.lang.String mainClassName,
                         java.lang.String pnutsImplClassName,
                         java.lang.String encoding)
                  throws java.io.IOException,
                         ParseException
Compile Pnuts scripts and save the generated code into a ZIP file.

Parameters:
zout - the ZipOutputStream to which the generated byte code is written
files - the script files
dirs - the directories in which each script file resides
modules - used modules
mainClassName - the main class name
Throws:
java.io.IOException
ParseException

compileToFile

public void compileToFile(java.io.File dir,
                          java.lang.String[] files,
                          java.lang.String[] dirs,
                          java.lang.String[] modules,
                          java.lang.String mainClassName,
                          java.lang.String pnutsImplClassName,
                          java.lang.String encoding)
                   throws java.io.IOException,
                          ParseException
Compile Pnuts scripts and save the generated code into class files.

Parameters:
dir - the directory in which the generated byte code is saved
files - the script files
dirs - the directories in which each script file resides
modules - used modules
mainClassName - the main class name
Throws:
java.io.IOException
ParseException

main

public static void main(java.lang.String[] args)
                 throws java.lang.Throwable
Throws:
java.lang.Throwable