本文整理汇总了Java中org.luaj.vm2.compiler.DumpState.dump方法的典型用法代码示例。如果您正苦于以下问题:Java DumpState.dump方法的具体用法?Java DumpState.dump怎么用?Java DumpState.dump使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.luaj.vm2.compiler.DumpState
的用法示例。
在下文中一共展示了DumpState.dump方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: dump
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
/**
* string.dump (function)
* <p>
* Returns a string containing a binary representation of the given function,
* so that a later loadstring on this string returns a copy of the function.
* function must be a Lua function without upvalues.
* <p>
* TODO: port dumping code as optional add-on
*/
static LuaValue dump(LuaValue arg) {
LuaValue f = arg.checkfunction();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
Prototype closure;
if (f instanceof LuaClosure) {
closure = ((LuaClosure) f).p;
} else if (f instanceof IGetPrototype) {
closure = ((IGetPrototype) f).getPrototype();
} else {
throw new LuaError("Cannot cast Java function (" + f.getClass().getName() + ")");
}
DumpState.dump(closure, baos, true);
return LuaString.valueOf(baos.toByteArray());
} catch (IOException e) {
return error(e.getMessage());
}
}
示例2: processScript
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
private static void processScript(InputStream script, String chunkname, OutputStream out) throws IOException
{
try
{
// create the chunk
Prototype chunk = LuaC.compile(script, chunkname);
// list the chunk
if(list)
Print.printCode(System.out, chunk);
// write out the chunk
if(!parseonly)
{
DumpState.dump(chunk, out, stripdebug, numberformat, littleendian);
}
}
catch(Exception e)
{
e.printStackTrace(System.err);
}
finally
{
script.close();
}
}
示例3: processScript
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
private void processScript( Globals globals, InputStream script, String chunkname, OutputStream out ) throws IOException {
try {
// create the chunk
Prototype chunk = encoding != null?
globals.compilePrototype(new InputStreamReader(script, encoding), chunkname):
globals.compilePrototype(script, chunkname);
// list the chunk
if (list)
Print.printCode(chunk);
// write out the chunk
if (!parseonly) {
DumpState.dump(chunk, out, stripdebug, numberformat, littleendian);
}
} catch ( Exception e ) {
e.printStackTrace( System.err );
} finally {
script.close();
}
}
示例4: dump
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
/**
* string.dump (function)
*
* Returns a string containing a binary representation of the given function,
* so that a later loadstring on this string returns a copy of the function.
* function must be a Lua function without upvalues.
*
* TODO: port dumping code as optional add-on
*/
static LuaValue dump(LuaValue arg) {
LuaValue f = arg.checkfunction();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
DumpState.dump(((LuaClosure) f).p, baos, true);
return LuaString.valueOf(baos.toByteArray());
} catch (IOException e) {
return error(e.getMessage());
}
}
示例5: call
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
public LuaValue call(LuaValue arg) {
LuaValue f = arg.checkfunction();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
DumpState.dump( ((LuaClosure)f).p, baos, true );
return LuaString.valueUsing(baos.toByteArray());
} catch (IOException e) {
return error( e.getMessage() );
}
}
示例6: dump
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
/**
* string.dump (function)
*
* Returns a string containing a binary representation of the given function,
* so that a later loadstring on this string returns a copy of the function.
* function must be a Lua function without upvalues.
*
* TODO: port dumping code as optional add-on
*/
static LuaValue dump( LuaValue arg ) {
LuaValue f = arg.checkfunction();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
DumpState.dump( ((LuaClosure)f).p, baos, true );
return LuaString.valueOf(baos.toByteArray());
} catch (IOException e) {
return error( e.getMessage() );
}
}
示例7: dump
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
/**
* string.dump (function)
*
* Returns a string containing a binary representation of the given function,
* so that a later loadstring on this string returns a copy of the function.
* function must be a Lua function without upvalues.
*
* TODO: port dumping code as optional add-on
*/
static LuaValue dump(LuaValue arg)
{
LuaValue f = arg.checkfunction();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
DumpState.dump(((LuaClosure)f)._p, baos, true);
return LuaString.valueOf(baos.toByteArray());
}
catch(IOException e)
{
return error(e.getMessage());
}
}
示例8: prepare
import org.luaj.vm2.compiler.DumpState; //导入方法依赖的package包/类
@Override
public void prepare() throws PreparationException
{
String documentName = executable.getDocumentName();
File dumpFile = ScripturianUtil.getFileForProgram( adapter.getCacheDir(), executable, position, LUO_SUFFIX );
synchronized( dumpFile )
{
try
{
if( dumpFile.exists() )
{
byte[] bytes = ScripturianUtil.getBytes( dumpFile );
bytesReference.compareAndSet( null, bytes );
// We can't compile the bytes now, because we don't have an
// execution context. So we'll finish preparing in
// execute().
}
else
{
dumpFile.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream( dumpFile );
try
{
Prototype prototype = LuaC.instance.compile( new Utf8Encoder( new StringReader( sourceCode ) ), documentName );
DumpState.dump( prototype, out, STRIP_DEBUG, NUMBER_FORMAT, LITTLE_ENDIAN );
prototypeReference.compareAndSet( null, prototype );
}
finally
{
out.close();
}
}
}
catch( Exception x )
{
throw new PreparationException( executable.getDocumentName(), x );
}
}
}