Refactor string conversions

This commit is contained in:
James Roseborough
2010-04-25 15:50:40 +00:00
parent 10450a0427
commit 79b0294207
41 changed files with 267 additions and 239 deletions

View File

@@ -41,8 +41,8 @@ public final class Buffer {
length = 0;
}
public final String toString() {
return LuaString.valueOf(bytes, 0, length).toString();
public final String tojstring() {
return LuaString.valueOf(bytes, 0, length).tojstring();
}
public final void append( byte b ) {

View File

@@ -32,7 +32,7 @@ public class LocVars {
this.endpc = endpc;
}
public String toString() {
public String tojstring() {
return varname+" "+startpc+"-"+endpc;
}
}

View File

@@ -55,7 +55,7 @@ public class LuaBoolean extends LuaValue {
return v;
}
public String toString() {
public String tojstring() {
return v ? "true" : "false";
}

View File

@@ -30,14 +30,10 @@ public class LuaDouble extends LuaNumber {
public static final LuaDouble NAN = new LuaDouble( Double.NaN );
public static final LuaDouble POSINF = new LuaDouble( Double.POSITIVE_INFINITY );
public static final LuaDouble NEGINF = new LuaDouble( Double.NEGATIVE_INFINITY );
public static final String JSTR_NAN = "nan";
public static final String JSTR_POSINF = "inf";
public static final String JSTR_NEGINF = "-inf";
private static Hashtable ALIASES = new Hashtable();
static {
ALIASES.put( "NaN", "nan" );
ALIASES.put( "Infinity", "inf" );
ALIASES.put( "-Infinity", "-inf" );
}
final double v;
public static LuaNumber valueOf(double d) {
@@ -135,7 +131,7 @@ public class LuaDouble extends LuaNumber {
public String concat_s(LuaValue rhs) { return rhs.concatTo_s(Double.toString(v)); }
public String concatTo_s(String lhs) { return lhs + v; }
public String toString() {
public String tojstring() {
/*
if ( v == 0.0 ) { // never occurs in J2me
long bits = Double.doubleToLongBits( v );
@@ -143,23 +139,29 @@ public class LuaDouble extends LuaNumber {
}
*/
long l = (long) v;
if ( l == v ) return Long.toString(l);
String s = Double.toString(v);
Object n = ALIASES.get(s);
return n!=null? (String)n: s;
if ( l == v )
return Long.toString(l);
if ( Double.isNaN(v) )
return JSTR_NAN;
if ( Double.isInfinite(v) )
return (v<0? JSTR_NEGINF: JSTR_POSINF);
return Double.toString(v);
}
public LuaString strvalue() {
return LuaString.valueOf(toString());
return LuaString.valueOf(tojstring());
}
public LuaString optstring(LuaString defval) {
return LuaString.valueOf(toString());
return LuaString.valueOf(tojstring());
}
public String optString(String defval) {
long l = (long)v;
return v==l? Long.toString(l): Double.toString(v);
public LuaValue tostring() {
return LuaString.valueOf(tojstring());
}
public String optjstring(String defval) {
return tojstring();
}
public LuaNumber optnumber(LuaNumber defval) {
@@ -182,11 +184,11 @@ public class LuaDouble extends LuaNumber {
public LuaNumber checknumber() { return this; }
public double checkdouble() { return v; }
public String checkString() {
return toString();
public String checkjstring() {
return tojstring();
}
public LuaString checkstring() {
return LuaString.valueOf(toString());
return LuaString.valueOf(tojstring());
}
}

View File

@@ -41,7 +41,7 @@ public class LuaError extends RuntimeException {
LuaThread thread = LuaThread.getRunning();
if ( thread.err != null ) {
try {
return thread.err.call( LuaValue.valueOf(msg) ).toString();
return thread.err.call( LuaValue.valueOf(msg) ).tojstring();
} catch ( Throwable t ) {
return "error in error handling";
}

View File

@@ -66,7 +66,7 @@ public class LuaInteger extends LuaNumber {
public LuaInteger optinteger(LuaInteger defval) { return this; }
public long optlong(long defval) { return v; }
public String toString() {
public String tojstring() {
return Integer.toString(v);
}
@@ -77,8 +77,12 @@ public class LuaInteger extends LuaNumber {
public LuaString optstring(LuaString defval) {
return LuaString.valueOf(Integer.toString(v));
}
public LuaValue tostring() {
return LuaString.valueOf(Integer.toString(v));
}
public String optString(String defval) {
public String optjstring(String defval) {
return Integer.toString(v);
}
@@ -157,7 +161,7 @@ public class LuaInteger extends LuaNumber {
public double checkdouble() {
return v;
}
public String checkString() {
public String checkjstring() {
return String.valueOf(v);
}
public LuaString checkstring() {

View File

@@ -35,7 +35,7 @@ public class LuaNil extends LuaValue {
return "nil";
}
public String toString() {
public String tojstring() {
return "nil";
}
@@ -74,7 +74,7 @@ public class LuaNil extends LuaValue {
public LuaNumber optnumber(LuaNumber defval) { return defval; }
public LuaTable opttable(LuaTable defval) { return defval; }
public LuaThread optthread(LuaThread defval) { return defval; }
public String optString(String defval) { return defval; }
public String optjstring(String defval) { return defval; }
public LuaString optstring(LuaString defval) { return defval; }
public Object optuserdata(Object defval) { return defval; }
public Object optuserdata(Class c, Object defval) { return defval; }

View File

@@ -98,7 +98,7 @@ public class LuaString extends LuaValue {
return "string";
}
public String toString() {
public String tojstring() {
return decodeAsUtf8(m_bytes, m_offset, m_length);
}
@@ -145,8 +145,8 @@ public class LuaString extends LuaValue {
public boolean gteq_b( double rhs ) { typerror("attempt to compare string with number"); return false; }
// concatenation
public String concat_s(LuaValue rhs) { return rhs.concatTo_s(toString()); }
public String concatTo_s(String lhs) { return lhs + toString(); }
public String concat_s(LuaValue rhs) { return rhs.concatTo_s(tojstring()); }
public String concatTo_s(String lhs) { return lhs + tojstring(); }
// string comparison
public int strcmp(LuaValue lhs) { return -lhs.strcmp(this); }
@@ -230,9 +230,13 @@ public class LuaString extends LuaValue {
public LuaString optstring(LuaString defval) {
return this;
}
public String optString(String defval) {
return toString();
public LuaValue tostring() {
return this;
}
public String optjstring(String defval) {
return tojstring();
}
public LuaString strvalue() {
@@ -313,8 +317,8 @@ public class LuaString extends LuaValue {
return luaByte( index );
}
public String checkString() {
return toString();
public String checkjstring() {
return tojstring();
}
public LuaString checkstring() {

View File

@@ -121,7 +121,7 @@ public class LuaTable extends LuaValue {
m_metatable = metatable;
LuaValue mode;
if ( m_metatable!=null && (mode=m_metatable.rawget(MODE)).isstring() ) {
String m = mode.toString();
String m = mode.tojstring();
boolean k = m.indexOf('k')>=0;
boolean v = m.indexOf('v')>=0;
return changemode(k,v);

View File

@@ -36,7 +36,7 @@ public class LuaUserdata extends LuaValue {
m_metatable = metatable;
}
public String toString() {
public String tojstring() {
return String.valueOf(m_instance);
}

View File

@@ -103,13 +103,19 @@ public class LuaValue extends Varargs {
public int toint() { return 0; }
public long tolong() { return 0; }
public short toshort() { return 0; }
public String toString() { return typename() + ": " + Integer.toHexString(hashCode()); }
public String tojstring() { return typename() + ": " + Integer.toHexString(hashCode()); }
public Object touserdata() { return null; }
public Object touserdata(Class c) { return null; }
// object tojstring() maps to tojstring()
public String toString() { return tojstring(); }
// type coercion to lua values
/** @return NIL if not a number or convertible to a number */
public LuaValue tonumber() { return NIL; }
/** @return NIL if not a string or number */
public LuaValue tostring() { return NIL; }
// optional argument conversions
public boolean optboolean(boolean defval) { typerror("boolean"); return false; }
@@ -120,7 +126,7 @@ public class LuaValue extends Varargs {
public LuaInteger optinteger(LuaInteger defval) { typerror("integer"); return null; }
public long optlong(long defval) { typerror("long"); return 0; }
public LuaNumber optnumber(LuaNumber defval) { typerror("number"); return null; }
public String optString(String defval) { typerror("String"); return null; }
public String optjstring(String defval) { typerror("String"); return null; }
public LuaString optstring(LuaString defval) { typerror("string"); return null; }
public LuaTable opttable(LuaTable defval) { typerror("table"); return null; }
public LuaThread optthread(LuaThread defval) { typerror("thread"); return null; }
@@ -128,6 +134,9 @@ public class LuaValue extends Varargs {
public Object optuserdata(Class c, Object defval) { typerror(c.getName()); return null; }
public LuaValue optvalue(LuaValue defval) { return this; }
/** @deprecated - use optjstring() instead */
public String optString(String defval) { return optjstring(defval); }
// argument type checks
public boolean checkboolean() { typerror("boolean"); return false; }
public LuaClosure checkclosure() { typerror("closure"); return null; }
@@ -137,7 +146,7 @@ public class LuaValue extends Varargs {
public LuaInteger checkinteger() { typerror("integer"); return null; }
public long checklong() { typerror("long"); return 0; }
public LuaNumber checknumber() { typerror("number"); return null; }
public String checkString() { typerror("string"); return null; }
public String checkjstring() { typerror("string"); return null; }
public LuaString checkstring() { typerror("string"); return null; }
public LuaTable checktable() { typerror("table"); return null; }
public LuaThread checkthread() { typerror("thread"); return null; }
@@ -145,6 +154,9 @@ public class LuaValue extends Varargs {
public Object checkuserdata(Class c) { typerror("userdata"); return null; }
public LuaValue checknotnil() { return this; }
/** @deprecated - use checkjstring() instead */
public String checkString() { return checkjstring(); }
// errors
public static LuaValue error(String message) { throw new LuaError(message); }
public static LuaValue error(int iarg, String message) { throw new LuaError("arg "+iarg+": "+message); }
@@ -441,7 +453,7 @@ public class LuaValue extends Varargs {
public LuaValue arg(int i) { return NIL; }
public int narg() { return 0; }
public LuaValue arg1() { return NIL; }
public String toString() { return "none"; }
public String tojstring() { return "none"; }
}
// varargs from array
@@ -507,7 +519,7 @@ public class LuaValue extends Varargs {
public LuaValue arg1() {
return v1;
}
public String toString() {
public String tojstring() {
return "{"+v1+","+v2+"}";
}
}

View File

@@ -122,7 +122,7 @@ public class Print extends Lua {
static void printValue( PrintStream ps, LuaValue v ) {
switch ( v.type() ) {
case LuaValue.TSTRING: printString( ps, (LuaString) v ); break;
default: ps.print( v.toString() );
default: ps.print( v.tojstring() );
}
}
@@ -356,12 +356,12 @@ public class Print extends Lua {
case LuaValue.TSTRING:
LuaString s = v.checkstring();
ps.print( s.length() < 48?
s.toString():
s.substring(0, 32).toString()+"...+"+(s.length()-32)+"b");
s.tojstring():
s.substring(0, 32).tojstring()+"...+"+(s.length()-32)+"b");
break;
case LuaValue.TFUNCTION:
ps.print( ( v instanceof LuaClosure )?
((LuaClosure)v).p.toString(): v.toString() );
((LuaClosure)v).p.tojstring(): v.tojstring() );
break;
case LuaValue.TUSERDATA:
Object o = v.touserdata();
@@ -370,7 +370,7 @@ public class Print extends Lua {
ps.print( n+": "+Integer.toHexString(o.hashCode()) );
break;
default:
ps.print(v.toString());
ps.print(v.tojstring());
}
if ( i+1 == top )
ps.print(']');

View File

@@ -44,7 +44,7 @@ public class Prototype {
public int maxstacksize;
public String toString() {
public String tojstring() {
return source + ":" + linedefined;
}

View File

@@ -33,8 +33,8 @@ public final class UpValue {
this.index = index;
}
public String toString() {
return array[index].toString();
public String tojstring() {
return array[index].tojstring();
}
public final LuaValue getValue() {

View File

@@ -83,13 +83,16 @@ public abstract class Varargs {
public LuaInteger optinteger(int i, LuaInteger defval) { return arg(i).optinteger(defval); }
public long optlong(int i, long defval) { return arg(i).optlong(defval); }
public LuaNumber optnumber(int i, LuaNumber defval) { return arg(i).optnumber(defval); }
public String optString(int i, String defval) { return arg(i).optString(defval); }
public String optjstring(int i, String defval) { return arg(i).optjstring(defval); }
public LuaString optstring(int i, LuaString defval) { return arg(i).optstring(defval); }
public LuaTable opttable(int i, LuaTable defval) { return arg(i).opttable(defval); }
public LuaThread optthread(int i, LuaThread defval) { return arg(i).optthread(defval); }
public Object optuserdata(int i, Object defval) { return arg(i).optuserdata(defval); }
public Object optuserdata(int i, Class c, Object defval) { return arg(i).optuserdata(c,defval); }
public LuaValue optvalue(int i, LuaValue defval) { return i>0 && i<=narg()? arg(i): defval; }
/** @deprecated - use optjstring() instead */
public String optString(int i, String defval) { return optjstring(i,defval); }
// required argument types
public boolean checkboolean(int i) { return arg(i).checkboolean(); }
@@ -100,7 +103,7 @@ public abstract class Varargs {
public LuaInteger checkinteger(int i) { return arg(i).checkinteger(); }
public long checklong(int i) { return arg(i).checknumber().tolong(); }
public LuaNumber checknumber(int i) { return arg(i).checknumber(); }
public String checkString(int i) { return arg(i).checkString(); }
public String checkjstring(int i) { return arg(i).checkjstring(); }
public LuaString checkstring(int i) { return arg(i).checkstring(); }
public LuaTable checktable(int i) { return arg(i).checktable(); }
public LuaThread checkthread(int i) { return arg(i).checkthread(); }
@@ -109,6 +112,8 @@ public abstract class Varargs {
public LuaValue checkvalue(int i) { return i<=narg()? arg(i): LuaValue.error("value expected"); }
public LuaValue checknotnil(int i) { return arg(i).checknotnil(); }
/** @deprecated - use checkjstring() instead */
public String checkString(int i) { return checkjstring(i); }
public void argcheck(boolean test, int i, String msg) { if (!test) LuaValue.argerror(i,msg); }
@@ -123,19 +128,20 @@ public abstract class Varargs {
public float tofloat(int i) { return arg(i).tofloat(); }
public int toint(int i) { return arg(i).toint(); }
public long tolong(int i) { return arg(i).tolong(); }
public String tojstring(int i) { return arg(i).tojstring(); }
public short toshort(int i) { return arg(i).toshort(); }
public Object touserdata(int i) { return arg(i).touserdata(); }
public Object touserdata(int i,Class c) { return arg(i).touserdata(c); }
public String toString() {
public String tojstring() {
Buffer sb = new Buffer();
sb.append( "(" );
for ( int i=1,n=narg(); i<=n; i++ ) {
if (i>1) sb.append( "," );
sb.append( arg(i).toString() );
sb.append( arg(i).tojstring() );
}
sb.append( ")" );
return sb.toString();
return sb.tojstring();
}
public Varargs subargs(final int start) {

View File

@@ -47,8 +47,8 @@ public class WeakTable extends LuaTable {
Object o = ref.get();
return o!=null? (LuaValue)o: NIL;
}
public String toString() {
return strongvalue().toString();
public String tojstring() {
return strongvalue().tojstring();
}
}

View File

@@ -252,7 +252,7 @@ public class LexState {
}
void lexerror( String msg, int token ) {
String cid = chunkid( source.toString() ); // TODO: get source name from source
String cid = chunkid( source.tojstring() ); // TODO: get source name from source
L.pushfstring( cid+":"+linenumber+": "+msg );
if ( token != 0 )
L.pushfstring( "syntax error: "+msg+" near "+txtToken(token) );

View File

@@ -145,7 +145,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
protected LuaValue oncall2(int opcode, LuaValue arg1, LuaValue arg2) {
switch ( opcode ) {
case 0: // "collectgarbage", // ( opt [,arg] ) -> value
String s = arg1.optString("collect");
String s = arg1.optjstring("collect");
int result = 0;
if ( "collect".equals(s) ) {
System.gc();
@@ -161,7 +161,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
}
return NIL;
case 1: // "error", // ( message [,level] ) -> ERR
throw new LuaError( arg1.isnil()? null: arg1.toString(), arg2.optint(1) );
throw new LuaError( arg1.isnil()? null: arg1.tojstring(), arg2.optint(1) );
case 2: // "rawequal", // (v1, v2) -> boolean
return valueOf(arg1 == arg2);
case 3: { // "setfenv", // (f, table) -> void
@@ -194,7 +194,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
{
LuaValue chunk;
try {
String filename = args.checkString(1);
String filename = args.checkjstring(1);
chunk = loadFile(filename).arg1();
} catch ( IOException e ) {
return error(e.getMessage());
@@ -212,7 +212,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
case 3: // "loadfile", // ( [filename] ) -> chunk | nil, msg
{
try {
String filename = args.checkString(1);
String filename = args.checkjstring(1);
return loadFile(filename);
} catch ( Exception e ) {
return varargsOf(NIL, valueOf(e.getMessage()));
@@ -320,7 +320,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
}
case 14: { // "tostring", // (e) -> value
LuaValue arg = args.checkvalue(1);
return arg.type() == LuaValue.TSTRING? arg: valueOf(arg.toString());
return arg.type() == LuaValue.TSTRING? arg: valueOf(arg.tojstring());
}
case 15: { // "tonumber", // (e [,base]) -> value
LuaValue arg1 = args.checkvalue(1);
@@ -375,7 +375,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
bytes = null;
return -1;
}
bytes = s.toString().getBytes();
bytes = s.tojstring().getBytes();
offset = 0;
}
if ( offset >= bytes.length )

View File

@@ -83,7 +83,7 @@ public class CoroutineLib extends ZeroArgFunction {
if ( result.arg1().toboolean() ) {
return result.subargs(2);
} else {
error( result.arg(2).toString() );
error( result.arg(2).tojstring() );
}
}
default:

View File

@@ -186,24 +186,24 @@ public class DebugLib extends OneArgFunction {
return getobjname(this, stackpos);
}
public Object sourceline() {
if ( closure == null ) return func.toString();
String s = closure.p.source.toString();
if ( closure == null ) return func.tojstring();
String s = closure.p.source.tojstring();
int line = currentline();
return (s.startsWith("@")||s.startsWith("=")? s.substring(1): s) + ":" + line;
}
public String tracename() {
// if ( func != null )
// return func.toString();
// return func.tojstring();
LuaString[] kind = getfunckind();
if ( kind == null )
return "function ?";
return "function "+kind[0].toString();
return "function "+kind[0].tojstring();
}
public LuaString getlocalname(int index) {
if ( closure == null ) return null;
return closure.p.getlocalname(index, pc);
}
public String toString() {
public String tojstring() {
return sourceline()+": in "+tracename();
}
}
@@ -277,7 +277,7 @@ public class DebugLib extends OneArgFunction {
}
return new DebugInfo(func);
}
public String toString() {
public String tojstring() {
return DebugLib.traceback(thread, 0);
}
}
@@ -437,7 +437,7 @@ public class DebugLib extends OneArgFunction {
info.set(LINEDEFINED, valueOf(p.linedefined));
info.set(LASTLINEDEFINED, valueOf(p.lastlinedefined));
} else {
String shortName = di.func.toString();
String shortName = di.func.tojstring();
LuaString name = LuaString.valueOf("[Java] "+shortName);
info.set(WHAT, JAVA);
info.set(SOURCE, name);
@@ -482,7 +482,7 @@ public class DebugLib extends OneArgFunction {
}
public static String sourceshort(Prototype p) {
String name = p.source.toString();
String name = p.source.tojstring();
if ( name.startsWith("@") || name.startsWith("=") )
name = name.substring(1);
else if ( name.startsWith("\033") )
@@ -618,7 +618,7 @@ public class DebugLib extends OneArgFunction {
di = ds.getDebugInfo(i);
if ( di != null ) {
sb.append( "\t" );
sb.append( di.toString() );
sb.append( di.tojstring() );
if ( i<n )
sb.append( "\n" );
}

View File

@@ -68,7 +68,7 @@ public class IoLib extends OneArgFunction {
}
// displays as "file" type
public String toString() {
public String tojstring() {
return "file: " + Integer.toHexString(hashCode());
}
}
@@ -211,13 +211,13 @@ public class IoLib extends OneArgFunction {
return ioclose(f);
case IO_INPUT: // io.input([file]) -> file
infile = args.arg1().isnil()? input(): args.arg1().isstring()?
ioopenfile(args.checkString(1),"r"):
ioopenfile(args.checkjstring(1),"r"):
checkfile(args.arg1());
return infile;
case IO_OUTPUT: // io.output(filename) -> file
outfile = args.arg1().isnil()? output(): args.arg1().isstring()?
ioopenfile(args.checkString(1),"w"):
ioopenfile(args.checkjstring(1),"w"):
checkfile(args.arg1());
return outfile;
case IO_TYPE: // io.type(obj) -> "file" | "closed file" | nil
@@ -225,11 +225,11 @@ public class IoLib extends OneArgFunction {
return f.isclosed()? CLOSED_FILE: FILE;
return NIL;
case IO_POPEN: // io.popen(prog, [mode]) -> file
return openProgram(args.checkString(1),args.optString(2,"r"));
return openProgram(args.checkjstring(1),args.optString(2,"r"));
case IO_OPEN: // io.open(filename, [mode]) -> file | nil,err
return rawopenfile(args.checkString(1), args.optString(2,"r"));
return rawopenfile(args.checkjstring(1), args.optString(2,"r"));
case IO_LINES: // io.lines(filename) -> iterator
infile = args.arg1().isnil()? input(): ioopenfile(args.checkString(1),"r");
infile = args.arg1().isnil()? input(): ioopenfile(args.checkjstring(1),"r");
checkopen(infile);
return lines(infile);
case IO_READ: // io.read(...) -> (...)
@@ -246,7 +246,7 @@ public class IoLib extends OneArgFunction {
return LuaValue.TRUE;
case FILE_SETVBUF: // file:setvbuf(mode,[size]) -> void
f = checkfile(args.arg1());
f.setvbuf(args.checkString(2),args.optint(3, 1024));
f.setvbuf(args.checkjstring(2),args.optint(3, 1024));
return LuaValue.TRUE;
case FILE_LINES: // file:lines() -> iterator
return lines(checkfile(args.arg1()));
@@ -342,7 +342,7 @@ public class IoLib extends OneArgFunction {
if ( args.isnumber(i+1) ) {
v[i] = freadbytes(f,args.checkint(i+1));
} else {
String format = args.checkString(i+1);
String format = args.checkjstring(i+1);
if ( "*n".equals(format) )
v[i] = valueOf( freadnumber(f) );
else if ( "*a".equals(format) )

View File

@@ -110,7 +110,7 @@ abstract public class LibFunction extends LuaFunction {
this.delegate = delegate;
}
public String toString() {
public String tojstring() {
return name;
}
@@ -147,7 +147,7 @@ abstract public class LibFunction extends LuaFunction {
this.delegate = delegate;
}
public String toString() {
public String tojstring() {
return name;
}
@@ -184,7 +184,7 @@ abstract public class LibFunction extends LuaFunction {
this.delegate = delegate;
}
public String toString() {
public String tojstring() {
return name;
}
@@ -221,7 +221,7 @@ abstract public class LibFunction extends LuaFunction {
this.delegate = delegate;
}
public String toString() {
public String tojstring() {
return name;
}
@@ -258,7 +258,7 @@ abstract public class LibFunction extends LuaFunction {
this.delegate = delegate;
}
public String toString() {
public String tojstring() {
return name;
}

View File

@@ -110,14 +110,14 @@ public class OsLib extends OneArgFunction {
exit(args.optint(1, 0));
return NONE;
case GETENV: {
final String val = getenv(args.checkString(1));
final String val = getenv(args.checkjstring(1));
return val!=null? valueOf(val): NIL;
}
case REMOVE:
remove(args.checkString(1));
remove(args.checkjstring(1));
return LuaValue.TRUE;
case RENAME:
rename(args.checkString(1), args.checkString(2));
rename(args.checkjstring(1), args.checkjstring(2));
return LuaValue.TRUE;
case SETLOCALE: {
String s = setlocale(args.optString(1,null), args.optString(2, "all"));

View File

@@ -127,7 +127,7 @@ public class PackageLib extends OneArgFunction {
PACKAGE.set( _PATH, valueOf(newLuaPath) );
}
public String toString() {
public String tojstring() {
return "package";
}
@@ -277,7 +277,7 @@ public class PackageLib extends OneArgFunction {
if ( chunk.isfunction() )
break;
if ( chunk.isstring() )
sb.append( chunk.toString() );
sb.append( chunk.tojstring() );
}
// load the module using the loader
@@ -304,7 +304,7 @@ public class PackageLib extends OneArgFunction {
}
private LuaValue loader_Lua( Varargs args ) {
String name = args.checkString(1);
String name = args.checkjstring(1);
InputStream is = null;
@@ -312,7 +312,7 @@ public class PackageLib extends OneArgFunction {
LuaValue pp = PACKAGE.get(_PATH);
if ( ! pp.isstring() )
return valueOf("package.path is not a string");
String path = pp.toString();
String path = pp.tojstring();
// check the path elements
int e = -1;
@@ -355,7 +355,7 @@ public class PackageLib extends OneArgFunction {
}
private LuaValue loader_Java( Varargs args ) {
String name = args.checkString(1);
String name = args.checkjstring(1);
String classname = toClassname( name );
Class c = null;
LuaValue v = null;

View File

@@ -591,7 +591,7 @@ public class StringLib extends OneArgFunction {
* The definition of what an uppercase letter is depends on the current locale.
*/
static LuaValue lower( LuaValue arg ) {
return valueOf( arg.checkString().toLowerCase() );
return valueOf( arg.checkjstring().toLowerCase() );
}
/**
@@ -675,7 +675,7 @@ public class StringLib extends OneArgFunction {
* The definition of what a lowercase letter is depends on the current locale.
*/
static LuaValue upper( LuaValue arg ) {
return valueOf(arg.checkString().toUpperCase());
return valueOf(arg.checkjstring().toUpperCase());
}
/**

View File

@@ -101,7 +101,7 @@ public class JmeIoLib extends IoLib {
private FileImpl( OutputStream o ) {
this( null, null, o );
}
public String toString() {
public String tojstring() {
return "file ("+this.hashCode()+")";
}
public boolean isstdfile() {

View File

@@ -156,7 +156,7 @@ public class CoerceLuaToJava {
};
Coercion stringCoercion = new Coercion() {
public Object coerce(LuaValue value) {
return value.toString();
return value.tojstring();
}
public int score(LuaValue value) {
switch ( value.type() ) {
@@ -173,7 +173,7 @@ public class CoerceLuaToJava {
case LuaValue.TUSERDATA:
return value.optuserdata(Object.class, null);
case LuaValue.TSTRING:
return value.toString();
return value.tojstring();
case LuaValue.TNUMBER:
return (value.isinttype()?
new Integer(value.toint()):

View File

@@ -99,7 +99,7 @@ public class JseIoLib extends IoLib {
private FileImpl( OutputStream o ) {
this( null, null, o );
}
public String toString() {
public String tojstring() {
return "file ("+this.hashCode()+")";
}
public boolean isstdfile() {

View File

@@ -88,14 +88,14 @@ public class LuajavaLib extends OneArgFunction {
try {
switch ( opcode ) {
case BINDCLASS: {
final Class clazz = Class.forName(args.checkString(1));
final Class clazz = Class.forName(args.checkjstring(1));
return toUserdata( clazz, clazz );
}
case NEWINSTANCE:
case NEW: {
// get constructor
final LuaValue c = args.checkvalue(1);
final Class clazz = (opcode==NEWINSTANCE? Class.forName(c.toString()): (Class) c.checkuserdata(Class.class));
final Class clazz = (opcode==NEWINSTANCE? Class.forName(c.tojstring()): (Class) c.checkuserdata(Class.class));
final ParamsList params = new ParamsList( args );
final Constructor con = resolveConstructor( clazz, params );
@@ -116,7 +116,7 @@ public class LuajavaLib extends OneArgFunction {
// get the interfaces
final Class[] ifaces = new Class[niface];
for ( int i=0; i<niface; i++ )
ifaces[i] = Class.forName(args.checkString(i+1));
ifaces[i] = Class.forName(args.checkjstring(i+1));
// create the invocation handler
InvocationHandler handler = new InvocationHandler() {
@@ -154,8 +154,8 @@ public class LuajavaLib extends OneArgFunction {
}
case LOADLIB: {
// get constructor
String classname = args.checkString(1);
String methodname = args.checkString(2);
String classname = args.checkjstring(1);
String methodname = args.checkjstring(2);
Class clazz = Class.forName(classname);
Method method = clazz.getMethod(methodname, new Class[] {});
Object result = method.invoke(clazz, new Object[] {});
@@ -217,7 +217,7 @@ public class LuajavaLib extends OneArgFunction {
return NIL;
}
}
final String s = key.toString();
final String s = key.tojstring();
try {
Field f = clazz.getField(s);
Object o = f.get(instance);
@@ -254,7 +254,7 @@ public class LuajavaLib extends OneArgFunction {
return NIL;
}
}
String s = key.toString();
String s = key.tojstring();
try {
Field f = clazz.getField(s);
Object v = CoerceLuaToJava.coerceArg(val, f.getType());
@@ -277,7 +277,7 @@ public class LuajavaLib extends OneArgFunction {
this.clazz = clazz;
this.s = s;
}
public String toString() {
public String tojstring() {
return clazz.getName()+"."+s+"()";
}
public Varargs invoke(Varargs args) {

View File

@@ -631,7 +631,7 @@ public class JavaBuilder {
cg.addField(fg.getField());
LuaString ls = value.checkstring();
if ( ls.isValidUtf8() ) {
init.append(new PUSH(cp, value.toString()));
init.append(new PUSH(cp, value.tojstring()));
init.append(factory.createInvoke(STR_LUASTRING, "valueOf",
TYPE_LUASTRING, new Type[] { Type.STRING }, Constants.INVOKESTATIC));
} else {

View File

@@ -79,8 +79,8 @@ public class Slots {
markforloopupvalues( p );
}
public String toString() {
return toString(null);
public String tojstring() {
return tojstring(null);
}
private void markassignments( Prototype p ) {
@@ -416,7 +416,7 @@ public class Slots {
public static void printSlots(Prototype p) {
Slots s = new Slots(p);
System.out.println("slots for "+p.source+":\n"+s.toString(p) );
System.out.println("slots for "+p.source+":\n"+s.tojstring(p) );
for ( int i=0; i<p.p.length; i++ )
printSlots(p.p[i]);
}
@@ -450,7 +450,7 @@ public class Slots {
return strs;
}
String toString(Prototype p) {
String tojstring(Prototype p) {
String[] s = toStrings();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream( baos );

View File

@@ -227,7 +227,7 @@ public class LuaScriptEngine implements ScriptEngine, Compilable {
private Object toJava(LuaValue v) {
switch ( v.type() ) {
case LuaValue.TNIL: return null;
case LuaValue.TSTRING: return v.toString();
case LuaValue.TSTRING: return v.tojstring();
case LuaValue.TUSERDATA: return v.checkuserdata(Object.class);
case LuaValue.TNUMBER: return v.isinttype()? new Integer(v.toint()): new Double(v.todouble());
default: