org.luaj.vm2.compiler
Class LuaC

java.lang.Object
  extended by org.luaj.vm2.Lua
      extended by org.luaj.vm2.compiler.LuaC
All Implemented Interfaces:
Globals.Compiler, Globals.Loader

public class LuaC
extends Lua
implements Globals.Compiler, Globals.Loader

Compiler for Lua.

Compiles lua source files into lua bytecode within a Prototype, loads lua binary files directly into aPrototype, and optionaly instantiates a LuaClosure around the result using a user-supplied environment.

Implements the Globals.Compiler interface for loading initialized chunks, which is an interface common to lua bytecode compiling and java bytecode compiling.

The LuaC compiler is installed by default by both the JsePlatform and JmePlatform classes, so in the following example, the default LuaC compiler will be used:

 Globals globals = JsePlatform.standardGlobals();
 globals.load(new StringReader("print 'hello'"), "main.lua" ).call();
  
To load the LuaC compiler manually, use the install method:
 LuaC.install(globals);
  

See Also:
install(Globals), Globals#Compiler, Globals#Loader, LuaJC, JsePlatform, JmePlatform, BaseLib, LuaValue, LuaCompiler, Prototype

Field Summary
static LuaC instance
          A sharable instance of the LuaC compiler.
static int MAXSTACK
           
 int nCcalls
           
 
Fields inherited from class org.luaj.vm2.Lua
_VERSION, BITRK, iAx, LFIELDS_PER_FLUSH, LUA_MULTRET, luaP_opmodes, MASK_A, MASK_B, MASK_Bx, MASK_C, MASK_NOT_A, MASK_NOT_B, MASK_NOT_Bx, MASK_NOT_C, MASK_NOT_OP, MASK_OP, MAX_OP, MAXARG_A, MAXARG_Ax, MAXARG_B, MAXARG_Bx, MAXARG_C, MAXARG_sBx, MAXINDEXRK, NUM_OPCODES, OP_ADD, OP_AND, OP_CALL, OP_CLOSURE, OP_CONCAT, OP_DIV, OP_EQ, OP_EXTRAARG, OP_FORLOOP, OP_FORPREP, OP_GE, OP_GETTABLE, OP_GETTABUP, OP_GETUPVAL, OP_GT, OP_JMP, OP_LE, OP_LEN, OP_LOADBOOL, OP_LOADK, OP_LOADKX, OP_LOADNIL, OP_LT, OP_MOD, OP_MOVE, OP_MUL, OP_NEQ, OP_NEWTABLE, OP_NOT, OP_OR, OP_POW, OP_RETURN, OP_SELF, OP_SETLIST, OP_SETTABLE, OP_SETTABUP, OP_SETUPVAL, OP_SUB, OP_TAILCALL, OP_TEST, OP_TESTSET, OP_TFORCALL, OP_TFORLOOP, OP_UNM, OP_VARARG, POS_A, POS_Ax, POS_B, POS_Bx, POS_C, POS_OP, SIZE_A, SIZE_Ax, SIZE_B, SIZE_Bx, SIZE_C, SIZE_OP
 
Constructor Summary
protected LuaC()
           
 
Method Summary
protected static void _assert(boolean b)
           
 LuaString cachedLuaString(LuaString s)
           
 Prototype compile(java.io.InputStream stream, java.lang.String chunkname)
          Compile lua source into a Prototype.
static void install(Globals globals)
          Install the compiler so that LoadState will first try to use it when handed bytes that are not already a compiled lua chunk.
 LuaValue load(java.io.InputStream stream, java.lang.String chunkname, Globals globals)
          Deprecated. Use Globals.load(InputString, String, String) instead, or LuaC.compil(InputStream, String) and construct LuaClosure directly.
 LuaFunction load(Prototype prototype, java.lang.String chunkname, LuaValue env)
          Convert the prototype into a LuaFunction with the supplied environment.
 LuaString newTString(LuaString s)
           
 LuaString newTString(java.lang.String s)
           
 java.lang.String pushfstring(java.lang.String string)
           
 
Methods inherited from class org.luaj.vm2.Lua
chunkid, GET_OPCODE, GETARG_A, GETARG_Ax, GETARG_B, GETARG_Bx, GETARG_C, GETARG_sBx, getBMode, getCMode, getOpMode, INDEXK, ISK, RKASK, testAMode, testTMode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instance

public static final LuaC instance
A sharable instance of the LuaC compiler.


MAXSTACK

public static final int MAXSTACK
See Also:
Constant Field Values

nCcalls

public int nCcalls
Constructor Detail

LuaC

protected LuaC()
Method Detail

install

public static void install(Globals globals)
Install the compiler so that LoadState will first try to use it when handed bytes that are not already a compiled lua chunk.

Parameters:
globals - the Globals into which this is to be installed.

_assert

protected static void _assert(boolean b)

compile

public Prototype compile(java.io.InputStream stream,
                         java.lang.String chunkname)
                  throws java.io.IOException
Compile lua source into a Prototype.

Specified by:
compile in interface Globals.Compiler
Parameters:
stream - InputStream representing the text source conforming to lua source syntax.
chunkname - String name of the chunk to use.
Returns:
Prototype representing the lua chunk for this source.
Throws:
java.io.IOException

load

public LuaValue load(java.io.InputStream stream,
                     java.lang.String chunkname,
                     Globals globals)
              throws java.io.IOException
Deprecated. Use Globals.load(InputString, String, String) instead, or LuaC.compil(InputStream, String) and construct LuaClosure directly.

Throws:
java.io.IOException

newTString

public LuaString newTString(java.lang.String s)

newTString

public LuaString newTString(LuaString s)

cachedLuaString

public LuaString cachedLuaString(LuaString s)

pushfstring

public java.lang.String pushfstring(java.lang.String string)

load

public LuaFunction load(Prototype prototype,
                        java.lang.String chunkname,
                        LuaValue env)
                 throws java.io.IOException
Description copied from interface: Globals.Loader
Convert the prototype into a LuaFunction with the supplied environment.

Specified by:
load in interface Globals.Loader
Throws:
java.io.IOException


Copyright © 2007-2013 Luaj.org. All Rights Reserved.