Refactor string conversions
This commit is contained in:
@@ -36,7 +36,7 @@ Java Type Coercion Functions,,,,,,,,,,,,
|
||||
,toint,int,0,0,0,0,this.v,0,this.v | 0,0,0,0
|
||||
,tolong,long,0,0,0,0,this.v,0,this.v | 0,0,0,0
|
||||
,toshort,short,0,0,0,0,this.v | 0,0,this.v | 0,0,0,0
|
||||
,toString,String,"""true""|""false""","""closure: x""","""name""",(str) this.v,(str) this.v,"""nil""",this.v,"""table: x""","""thread: x""","""userdata: x"""
|
||||
,tojstring,String,"""true""|""false""","""closure: x""","""name""",(str) this.v,(str) this.v,"""nil""",this.v,"""table: x""","""thread: x""","""userdata: x"""
|
||||
,touserdata,Object,null,null,null,null,null,null,null,null,this,this.instance
|
||||
|
||||
,,,LuaBoolean,LuaClosure,LuaFunction,LuaDouble,LuaInteger,LuaNil,LuaString,LuaTable,LuaThread,LuaUserdata
|
||||
@@ -49,7 +49,7 @@ Optional Argument Conversion Functions,,,,,,,,,,,,
|
||||
,optinteger,LuaInteger,e,e,e,(int) this,this,defval,this | e,e,e,e
|
||||
,optlong,long,e,e,e,(long) this,this,defval,this | e,e,e,e
|
||||
,optnumber,LuaNumber,e,e,e,this,this,defval,this | e,e,e,e
|
||||
,optString,String,e,e,e,(str) this.v,(str) this.v,defval,this,e,e,e
|
||||
,optjstring,String,e,e,e,(str) this.v,(str) this.v,defval,this,e,e,e
|
||||
,optstring,LuaString,e,e,e,(str) this.v,(str) this.v,defval,this,e,e,e
|
||||
,opttable,LuaTable,e,e,e,e,e,defval,e,this,e,e
|
||||
,optthread,LuaThread,e,e,e,e,e,defval,e,e,this,n
|
||||
@@ -65,7 +65,7 @@ Required Argument Conversion Functions,,,,,,,,,,,,
|
||||
,checkinteger,LuaInteger,e,e,e,e,this,e,e,e,e,e
|
||||
,checklong,LuaNumber,e,e,e,this | e,this,e,e,e,e,e
|
||||
,checknumber,LuaNumber,e,e,e,this,this,e,e,e,e,e
|
||||
,checkString,String,e,e,e,(str) this.v,(str) this.v,e,(str) this.v,e,e,e
|
||||
,checkjstring,String,e,e,e,(str) this.v,(str) this.v,e,(str) this.v,e,e,e
|
||||
,checkstring,LuaString,e,e,e,(str) this.v,(str) this.v,e,this,e,e,e
|
||||
,checktable,LuaTable,e,e,e,e,e,e,e,this,e,e
|
||||
,checkthread,LuaThread,e,e,e,e,e,e,e,e,this,e
|
||||
|
||||
|
@@ -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 ) {
|
||||
|
||||
@@ -32,7 +32,7 @@ public class LocVars {
|
||||
this.endpc = endpc;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
public String tojstring() {
|
||||
return varname+" "+startpc+"-"+endpc;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public class LuaBoolean extends LuaValue {
|
||||
return v;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
public String tojstring() {
|
||||
return v ? "true" : "false";
|
||||
}
|
||||
|
||||
|
||||
@@ -30,13 +30,9 @@ 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 );
|
||||
|
||||
private static Hashtable ALIASES = new Hashtable();
|
||||
static {
|
||||
ALIASES.put( "NaN", "nan" );
|
||||
ALIASES.put( "Infinity", "inf" );
|
||||
ALIASES.put( "-Infinity", "-inf" );
|
||||
}
|
||||
public static final String JSTR_NAN = "nan";
|
||||
public static final String JSTR_POSINF = "inf";
|
||||
public static final String JSTR_NEGINF = "-inf";
|
||||
|
||||
final double v;
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,11 @@ public class LuaInteger extends LuaNumber {
|
||||
return LuaString.valueOf(Integer.toString(v));
|
||||
}
|
||||
|
||||
public String optString(String defval) {
|
||||
public LuaValue tostring() {
|
||||
return LuaString.valueOf(Integer.toString(v));
|
||||
}
|
||||
|
||||
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() {
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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); }
|
||||
@@ -231,8 +231,12 @@ public class LuaString extends LuaValue {
|
||||
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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -36,7 +36,7 @@ public class LuaUserdata extends LuaValue {
|
||||
m_metatable = metatable;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
public String tojstring() {
|
||||
return String.valueOf(m_instance);
|
||||
}
|
||||
|
||||
|
||||
@@ -103,14 +103,20 @@ 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; }
|
||||
public LuaClosure optclosure(LuaClosure defval) { typerror("closure"); return null; }
|
||||
@@ -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+"}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(']');
|
||||
|
||||
@@ -44,7 +44,7 @@ public class Prototype {
|
||||
public int maxstacksize;
|
||||
|
||||
|
||||
public String toString() {
|
||||
public String tojstring() {
|
||||
return source + ":" + linedefined;
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -83,7 +83,7 @@ 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); }
|
||||
@@ -91,6 +91,9 @@ public abstract class Varargs {
|
||||
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(); }
|
||||
public LuaClosure checkclosure(int i) { return arg(i).checkclosure(); }
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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) );
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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" );
|
||||
}
|
||||
|
||||
@@ -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) )
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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()):
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -167,18 +167,18 @@ public class MetatableTest extends TestCase {
|
||||
// plain metatable
|
||||
mt.set( LuaValue.INDEX, new TwoArgFunction() {
|
||||
public LuaValue call(LuaValue arg1, LuaValue arg2) {
|
||||
return LuaValue.valueOf( arg1.typename()+"["+arg2.toString()+"]=xyz" );
|
||||
return LuaValue.valueOf( arg1.typename()+"["+arg2.tojstring()+"]=xyz" );
|
||||
}
|
||||
|
||||
});
|
||||
assertEquals( "table[1]=xyz", table.get(1).toString() );
|
||||
assertEquals( "userdata[1]=xyz", userdata.get(1).toString() );
|
||||
assertEquals( "nil[1]=xyz", LuaValue.NIL.get(1).toString() );
|
||||
assertEquals( "boolean[1]=xyz", LuaValue.TRUE.get(1).toString() );
|
||||
assertEquals( "number[1]=xyz", LuaValue.ONE.get(1).toString() );
|
||||
// assertEquals( "string[1]=xyz", string.get(1).toString() );
|
||||
assertEquals( "function[1]=xyz", function.get(1).toString() );
|
||||
assertEquals( "thread[1]=xyz", thread.get(1).toString() );
|
||||
assertEquals( "table[1]=xyz", table.get(1).tojstring() );
|
||||
assertEquals( "userdata[1]=xyz", userdata.get(1).tojstring() );
|
||||
assertEquals( "nil[1]=xyz", LuaValue.NIL.get(1).tojstring() );
|
||||
assertEquals( "boolean[1]=xyz", LuaValue.TRUE.get(1).tojstring() );
|
||||
assertEquals( "number[1]=xyz", LuaValue.ONE.get(1).tojstring() );
|
||||
// assertEquals( "string[1]=xyz", string.get(1).tojstring() );
|
||||
assertEquals( "function[1]=xyz", function.get(1).tojstring() );
|
||||
assertEquals( "thread[1]=xyz", thread.get(1).tojstring() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ public class TableArrayTest extends TestCase {
|
||||
|
||||
// Ensure all keys are still there.
|
||||
for ( int i = 1; i <= 32; ++i ) {
|
||||
assertEquals( "Test Value! " + i, t.get( i ).toString() );
|
||||
assertEquals( "Test Value! " + i, t.get( i ).tojstring() );
|
||||
}
|
||||
|
||||
// Ensure capacities make sense
|
||||
@@ -92,7 +92,7 @@ public class TableArrayTest extends TestCase {
|
||||
|
||||
// Ensure all keys are still there.
|
||||
for ( int i = 1; i <= 32; ++i ) {
|
||||
assertEquals( "Test Value! "+i, t.get( i ).toString() );
|
||||
assertEquals( "Test Value! "+i, t.get( i ).tojstring() );
|
||||
}
|
||||
|
||||
// Ensure capacities make sense
|
||||
@@ -134,8 +134,8 @@ public class TableArrayTest extends TestCase {
|
||||
assertTrue( ( intKeys & mask ) == 0 );
|
||||
intKeys |= mask;
|
||||
} else if ( k instanceof LuaString ) {
|
||||
final int ik = Integer.parseInt( k.toString() );
|
||||
assertEquals( String.valueOf( ik ), k.toString() );
|
||||
final int ik = Integer.parseInt( k.tojstring() );
|
||||
assertEquals( String.valueOf( ik ), k.tojstring() );
|
||||
assertTrue( ik >= 0 && ik < 10 );
|
||||
final int mask = 1 << ik;
|
||||
assertTrue( "Key \""+ik+"\" found more than once", ( stringKeys & mask ) == 0 );
|
||||
@@ -267,8 +267,8 @@ public class TableArrayTest extends TestCase {
|
||||
assertEquals(v.size(),t.length());
|
||||
for ( int j=0; j<n; j++ ) {
|
||||
Object vj = v.elementAt(j);
|
||||
Object tj = t.get(j+1).toString();
|
||||
vj = ((LuaString)vj).toString();
|
||||
Object tj = t.get(j+1).tojstring();
|
||||
vj = ((LuaString)vj).tojstring();
|
||||
assertEquals(vj,tj);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,48 +107,48 @@ public class TableHashTest extends TestCase {
|
||||
fb.set( 456, "jkl" );
|
||||
|
||||
// check before setting metatable
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "nil", t.get("qqq").toString() );
|
||||
assertEquals( "nil", t.get(456).toString() );
|
||||
assertEquals( "nil", fb.get("ppp").toString() );
|
||||
assertEquals( "nil", fb.get(123).toString() );
|
||||
assertEquals( "ghi", fb.get("qqq").toString() );
|
||||
assertEquals( "jkl", fb.get(456).toString() );
|
||||
assertEquals( "nil", mt.get("ppp").toString() );
|
||||
assertEquals( "nil", mt.get(123).toString() );
|
||||
assertEquals( "nil", mt.get("qqq").toString() );
|
||||
assertEquals( "nil", mt.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "nil", t.get("qqq").tojstring() );
|
||||
assertEquals( "nil", t.get(456).tojstring() );
|
||||
assertEquals( "nil", fb.get("ppp").tojstring() );
|
||||
assertEquals( "nil", fb.get(123).tojstring() );
|
||||
assertEquals( "ghi", fb.get("qqq").tojstring() );
|
||||
assertEquals( "jkl", fb.get(456).tojstring() );
|
||||
assertEquals( "nil", mt.get("ppp").tojstring() );
|
||||
assertEquals( "nil", mt.get(123).tojstring() );
|
||||
assertEquals( "nil", mt.get("qqq").tojstring() );
|
||||
assertEquals( "nil", mt.get(456).tojstring() );
|
||||
|
||||
// check before setting metatable
|
||||
t.setmetatable(mt);
|
||||
assertEquals( mt, t.getmetatable() );
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "ghi", t.get("qqq").toString() );
|
||||
assertEquals( "jkl", t.get(456).toString() );
|
||||
assertEquals( "nil", fb.get("ppp").toString() );
|
||||
assertEquals( "nil", fb.get(123).toString() );
|
||||
assertEquals( "ghi", fb.get("qqq").toString() );
|
||||
assertEquals( "jkl", fb.get(456).toString() );
|
||||
assertEquals( "nil", mt.get("ppp").toString() );
|
||||
assertEquals( "nil", mt.get(123).toString() );
|
||||
assertEquals( "nil", mt.get("qqq").toString() );
|
||||
assertEquals( "nil", mt.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "ghi", t.get("qqq").tojstring() );
|
||||
assertEquals( "jkl", t.get(456).tojstring() );
|
||||
assertEquals( "nil", fb.get("ppp").tojstring() );
|
||||
assertEquals( "nil", fb.get(123).tojstring() );
|
||||
assertEquals( "ghi", fb.get("qqq").tojstring() );
|
||||
assertEquals( "jkl", fb.get(456).tojstring() );
|
||||
assertEquals( "nil", mt.get("ppp").tojstring() );
|
||||
assertEquals( "nil", mt.get(123).tojstring() );
|
||||
assertEquals( "nil", mt.get("qqq").tojstring() );
|
||||
assertEquals( "nil", mt.get(456).tojstring() );
|
||||
|
||||
// set metatable to metatable without values
|
||||
t.setmetatable(fb);
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "nil", t.get("qqq").toString() );
|
||||
assertEquals( "nil", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "nil", t.get("qqq").tojstring() );
|
||||
assertEquals( "nil", t.get(456).tojstring() );
|
||||
|
||||
// set metatable to null
|
||||
t.setmetatable(null);
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "nil", t.get("qqq").toString() );
|
||||
assertEquals( "nil", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "nil", t.get("qqq").tojstring() );
|
||||
assertEquals( "nil", t.get(456).tojstring() );
|
||||
}
|
||||
|
||||
public void testIndexFunction() {
|
||||
@@ -168,42 +168,42 @@ public class TableHashTest extends TestCase {
|
||||
mt.set(LuaValue.INDEX, fb);
|
||||
|
||||
// check before setting metatable
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "nil", t.get("qqq").toString() );
|
||||
assertEquals( "nil", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "nil", t.get("qqq").tojstring() );
|
||||
assertEquals( "nil", t.get(456).tojstring() );
|
||||
|
||||
|
||||
// check before setting metatable
|
||||
t.setmetatable(mt);
|
||||
assertEquals( mt, t.getmetatable() );
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "from mt: qqq", t.get("qqq").toString() );
|
||||
assertEquals( "from mt: 456", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "from mt: qqq", t.get("qqq").tojstring() );
|
||||
assertEquals( "from mt: 456", t.get(456).tojstring() );
|
||||
|
||||
// use raw set
|
||||
t.rawset("qqq", "alt-qqq");
|
||||
t.rawset(456, "alt-456");
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "alt-qqq", t.get("qqq").toString() );
|
||||
assertEquals( "alt-456", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "alt-qqq", t.get("qqq").tojstring() );
|
||||
assertEquals( "alt-456", t.get(456).tojstring() );
|
||||
|
||||
// remove using raw set
|
||||
t.rawset("qqq", LuaValue.NIL);
|
||||
t.rawset(456, LuaValue.NIL);
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "from mt: qqq", t.get("qqq").toString() );
|
||||
assertEquals( "from mt: 456", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "from mt: qqq", t.get("qqq").tojstring() );
|
||||
assertEquals( "from mt: 456", t.get(456).tojstring() );
|
||||
|
||||
// set metatable to null
|
||||
t.setmetatable(null);
|
||||
assertEquals( "abc", t.get("ppp").toString() );
|
||||
assertEquals( "def", t.get(123).toString() );
|
||||
assertEquals( "nil", t.get("qqq").toString() );
|
||||
assertEquals( "nil", t.get(456).toString() );
|
||||
assertEquals( "abc", t.get("ppp").tojstring() );
|
||||
assertEquals( "def", t.get(123).tojstring() );
|
||||
assertEquals( "nil", t.get("qqq").tojstring() );
|
||||
assertEquals( "nil", t.get(456).tojstring() );
|
||||
}
|
||||
|
||||
public void testNext() {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class TableTest extends TestCase {
|
||||
|
||||
// Ensure all keys are still there.
|
||||
for ( int i = 1; i <= 32; ++i ) {
|
||||
assertEquals( "Test Value! " + i, t.get( i ).toString() );
|
||||
assertEquals( "Test Value! " + i, t.get( i ).tojstring() );
|
||||
}
|
||||
|
||||
// Ensure capacities make sense
|
||||
@@ -83,7 +83,7 @@ public class TableTest extends TestCase {
|
||||
|
||||
// Ensure all keys are still there.
|
||||
for ( int i = 1; i <= 32; ++i ) {
|
||||
assertEquals( "Test Value! "+i, t.get( i ).toString() );
|
||||
assertEquals( "Test Value! "+i, t.get( i ).tojstring() );
|
||||
}
|
||||
|
||||
// Ensure capacities make sense
|
||||
@@ -125,8 +125,8 @@ public class TableTest extends TestCase {
|
||||
assertTrue( ( intKeys & mask ) == 0 );
|
||||
intKeys |= mask;
|
||||
} else if ( k instanceof LuaString ) {
|
||||
final int ik = Integer.parseInt( k.strvalue().toString() );
|
||||
assertEquals( String.valueOf( ik ), k.strvalue().toString() );
|
||||
final int ik = Integer.parseInt( k.strvalue().tojstring() );
|
||||
assertEquals( String.valueOf( ik ), k.strvalue().tojstring() );
|
||||
assertTrue( ik >= 0 && ik < 10 );
|
||||
final int mask = 1 << ik;
|
||||
assertTrue( "Key \""+ik+"\" found more than once", ( stringKeys & mask ) == 0 );
|
||||
@@ -252,8 +252,8 @@ public class TableTest extends TestCase {
|
||||
assertEquals(v.size(),t.length());
|
||||
for ( int j=0; j<n; j++ ) {
|
||||
Object vj = v.elementAt(j);
|
||||
Object tj = t.get(j+1).toString();
|
||||
vj = ((LuaString)vj).toString();
|
||||
Object tj = t.get(j+1).tojstring();
|
||||
vj = ((LuaString)vj).tojstring();
|
||||
assertEquals(vj,tj);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -495,23 +495,23 @@ public class TypeTest extends TestCase {
|
||||
}
|
||||
|
||||
public void testToString() {
|
||||
assertEquals( "nil", somenil.toString() );
|
||||
assertEquals( "false", somefalse.toString() );
|
||||
assertEquals( "true", sometrue.toString() );
|
||||
assertEquals( "0", zero.toString() );
|
||||
assertEquals( String.valueOf(sampleint), intint.toString() );
|
||||
assertEquals( String.valueOf(samplelong), longdouble.toString() );
|
||||
assertEquals( String.valueOf(sampledouble), doubledouble.toString() );
|
||||
assertEquals( samplestringstring, stringstring.toString() );
|
||||
assertEquals( String.valueOf(sampleint), stringint.toString() );
|
||||
assertEquals( String.valueOf(samplelong), stringlong.toString() );
|
||||
assertEquals( String.valueOf(sampledouble), stringdouble.toString() );
|
||||
assertEquals( "thread: ", thread.toString().substring(0,8) );
|
||||
assertEquals( "table: ", table.toString().substring(0,7) );
|
||||
assertEquals( sampleobject.toString(), userdataobj.toString() );
|
||||
assertEquals( sampledata.toString(), userdatacls.toString() );
|
||||
assertEquals( "function: ", somefunc.toString().substring(0,10) );
|
||||
assertEquals( "function: ", someclosure.toString().substring(0,10) );
|
||||
assertEquals( "nil", somenil.tojstring() );
|
||||
assertEquals( "false", somefalse.tojstring() );
|
||||
assertEquals( "true", sometrue.tojstring() );
|
||||
assertEquals( "0", zero.tojstring() );
|
||||
assertEquals( String.valueOf(sampleint), intint.tojstring() );
|
||||
assertEquals( String.valueOf(samplelong), longdouble.tojstring() );
|
||||
assertEquals( String.valueOf(sampledouble), doubledouble.tojstring() );
|
||||
assertEquals( samplestringstring, stringstring.tojstring() );
|
||||
assertEquals( String.valueOf(sampleint), stringint.tojstring() );
|
||||
assertEquals( String.valueOf(samplelong), stringlong.tojstring() );
|
||||
assertEquals( String.valueOf(sampledouble), stringdouble.tojstring() );
|
||||
assertEquals( "thread: ", thread.tojstring().substring(0,8) );
|
||||
assertEquals( "table: ", table.tojstring().substring(0,7) );
|
||||
assertEquals( sampleobject.toString(), userdataobj.tojstring() );
|
||||
assertEquals( sampledata.toString(), userdatacls.tojstring() );
|
||||
assertEquals( "function: ", somefunc.tojstring().substring(0,10) );
|
||||
assertEquals( "function: ", someclosure.tojstring().substring(0,10) );
|
||||
}
|
||||
|
||||
public void testToUserdata() {
|
||||
@@ -763,20 +763,20 @@ public class TypeTest extends TestCase {
|
||||
}
|
||||
|
||||
public void testOptJavaString() {
|
||||
assertEquals( "xyz", somenil.optString("xyz") );
|
||||
assertEquals( null, somenil.optString(null) );
|
||||
assertEquals( "xyz", somenil.optjstring("xyz") );
|
||||
assertEquals( null, somenil.optjstring(null) );
|
||||
throwsError( sometrue, "optString", String.class, "xyz" );
|
||||
throwsError( somefalse, "optString", String.class, "xyz" );
|
||||
assertEquals( String.valueOf(zero), zero.optString("xyz") );
|
||||
assertEquals( String.valueOf(intint), intint.optString("xyz") );
|
||||
assertEquals( String.valueOf(longdouble), longdouble.optString("xyz") );
|
||||
assertEquals( String.valueOf(doubledouble), doubledouble.optString("xyz") );
|
||||
assertEquals( String.valueOf(zero), zero.optjstring("xyz") );
|
||||
assertEquals( String.valueOf(intint), intint.optjstring("xyz") );
|
||||
assertEquals( String.valueOf(longdouble), longdouble.optjstring("xyz") );
|
||||
assertEquals( String.valueOf(doubledouble), doubledouble.optjstring("xyz") );
|
||||
throwsError( somefunc, "optString", String.class, "xyz" );
|
||||
throwsError( someclosure, "optString", String.class, "xyz" );
|
||||
assertEquals( samplestringstring, stringstring.optString("xyz") );
|
||||
assertEquals( samplestringint, stringint.optString("xyz") );
|
||||
assertEquals( samplestringlong, stringlong.optString("xyz") );
|
||||
assertEquals( samplestringdouble, stringdouble.optString("xyz") );
|
||||
assertEquals( samplestringstring, stringstring.optjstring("xyz") );
|
||||
assertEquals( samplestringint, stringint.optjstring("xyz") );
|
||||
assertEquals( samplestringlong, stringlong.optjstring("xyz") );
|
||||
assertEquals( samplestringdouble, stringdouble.optjstring("xyz") );
|
||||
throwsError( thread, "optString", String.class, "xyz" );
|
||||
throwsError( table, "optString", String.class, "xyz" );
|
||||
throwsError( userdataobj, "optString", String.class, "xyz" );
|
||||
@@ -1119,16 +1119,16 @@ public class TypeTest extends TestCase {
|
||||
throwsErrorReq( somenil, "checkString" );
|
||||
throwsErrorReq( sometrue, "checkString" );
|
||||
throwsErrorReq( somefalse, "checkString" );
|
||||
assertEquals( String.valueOf(zero), zero.checkString() );
|
||||
assertEquals( String.valueOf(intint), intint.checkString() );
|
||||
assertEquals( String.valueOf(longdouble), longdouble.checkString() );
|
||||
assertEquals( String.valueOf(doubledouble), doubledouble.checkString() );
|
||||
assertEquals( String.valueOf(zero), zero.checkjstring() );
|
||||
assertEquals( String.valueOf(intint), intint.checkjstring() );
|
||||
assertEquals( String.valueOf(longdouble), longdouble.checkjstring() );
|
||||
assertEquals( String.valueOf(doubledouble), doubledouble.checkjstring() );
|
||||
throwsErrorReq( somefunc, "checkString" );
|
||||
throwsErrorReq( someclosure, "checkString" );
|
||||
assertEquals( samplestringstring, stringstring.checkString() );
|
||||
assertEquals( samplestringint, stringint.checkString() );
|
||||
assertEquals( samplestringlong, stringlong.checkString() );
|
||||
assertEquals( samplestringdouble, stringdouble.checkString() );
|
||||
assertEquals( samplestringstring, stringstring.checkjstring() );
|
||||
assertEquals( samplestringint, stringint.checkjstring() );
|
||||
assertEquals( samplestringlong, stringlong.checkjstring() );
|
||||
assertEquals( samplestringdouble, stringdouble.checkjstring() );
|
||||
throwsErrorReq( thread, "checkString" );
|
||||
throwsErrorReq( table, "checkString" );
|
||||
throwsErrorReq( userdataobj, "checkString" );
|
||||
|
||||
@@ -89,7 +89,7 @@ public class DumpLoadEndianIntTest extends TestCase {
|
||||
// double check script result before dumping
|
||||
LuaClosure f = new LuaClosure(p, _G);
|
||||
LuaValue r = f.call();
|
||||
String actual = r.toString();
|
||||
String actual = r.tojstring();
|
||||
assertEquals( expectedPriorDump, actual );
|
||||
|
||||
// dump into bytes
|
||||
@@ -111,7 +111,7 @@ public class DumpLoadEndianIntTest extends TestCase {
|
||||
p = LoadState.compile(is, "dumped");
|
||||
f = new LuaClosure(p, _G);
|
||||
r = f.call();
|
||||
actual = r.toString();
|
||||
actual = r.tojstring();
|
||||
assertEquals( expectedPostDump, actual );
|
||||
|
||||
// write test chunk
|
||||
|
||||
@@ -48,7 +48,7 @@ public class LuaJavaCoercionTest extends TestCase {
|
||||
String s = new String("777");
|
||||
LuaValue v = CoerceJavaToLua.coerce(s);
|
||||
assertEquals( LuaString.class, v.getClass() );
|
||||
assertEquals( "777", v.toString() );
|
||||
assertEquals( "777", v.tojstring() );
|
||||
}
|
||||
|
||||
public void testLuaStringToJavaString() {
|
||||
@@ -162,22 +162,22 @@ public class LuaJavaCoercionTest extends TestCase {
|
||||
// get sample field, call with no arguments
|
||||
LuaValue method = v.get(SAMPLE);
|
||||
LuaValue result = method.call(v);
|
||||
assertEquals( "void-args", result.toString() );
|
||||
assertEquals( "void-args", result.tojstring() );
|
||||
|
||||
// get sample field, call with one arguments
|
||||
LuaValue arg = CoerceJavaToLua.coerce(new Integer(123));
|
||||
result = method.call(v,arg);
|
||||
assertEquals( "int-args 123", result.toString() );
|
||||
assertEquals( "int-args 123", result.tojstring() );
|
||||
|
||||
// get sample field, call with array argument
|
||||
arg = CoerceJavaToLua.coerce(new int[]{345,678});
|
||||
result = method.call(v,arg);
|
||||
assertEquals( "int-array-args 345,678", result.toString() );
|
||||
assertEquals( "int-array-args 345,678", result.tojstring() );
|
||||
|
||||
// get sample field, call with two-d array argument
|
||||
arg = CoerceJavaToLua.coerce(new int[][]{{22,33},{44,55}});
|
||||
result = method.call(v,arg);
|
||||
assertEquals( "int-array-array-args 22,33,44,55", result.toString() );
|
||||
assertEquals( "int-array-array-args 22,33,44,55", result.tojstring() );
|
||||
}
|
||||
|
||||
public static final class SomeException extends RuntimeException {
|
||||
@@ -198,7 +198,7 @@ public class LuaJavaCoercionTest extends TestCase {
|
||||
LuaValue status = vresult.arg1();
|
||||
LuaValue message = vresult.arg(2);
|
||||
assertEquals( LuaValue.FALSE, status );
|
||||
assertEquals( "vm error: "+SomeException.class.getName()+": this is some message", message.toString() );
|
||||
assertEquals( "vm error: "+SomeException.class.getName()+": this is some message", message.tojstring() );
|
||||
}
|
||||
|
||||
public void testLuaErrorCause() {
|
||||
@@ -234,7 +234,7 @@ public class LuaJavaCoercionTest extends TestCase {
|
||||
"} )\n";
|
||||
Varargs chunk = _G.get("loadstring").call(LuaValue.valueOf(script));
|
||||
if ( ! chunk.arg1().toboolean() )
|
||||
fail( chunk.arg(2).toString() );
|
||||
fail( chunk.arg(2).tojstring() );
|
||||
LuaValue result = chunk.arg1().call();
|
||||
Object u = result.touserdata();
|
||||
VarArgsInterface v = (VarArgsInterface) u;
|
||||
|
||||
@@ -96,7 +96,7 @@ public class Luajvm1CompatibilityTest extends TestCase {
|
||||
LuaThread.getRunning().setfenv(_G);
|
||||
_G.get("package").get("loaders").checktable().insert(1, new org.luaj.vm2.lib.OneArgFunction(_G) {
|
||||
public LuaValue call(LuaValue arg) {
|
||||
String name = arg.toString();
|
||||
String name = arg.tojstring();
|
||||
String file = name + ".lua";
|
||||
InputStream is = open( file );
|
||||
if ( is == null )
|
||||
|
||||
Reference in New Issue
Block a user