diff --git a/build.xml b/build.xml
index bff8c1d2..b88fe22a 100644
--- a/build.xml
+++ b/build.xml
@@ -61,51 +61,64 @@
-
-
+
+
+
+
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+ srcdir="build/jme/src"/>
+
+ includes="**/script/*,**/Lua2Java*"/>
-
-
-
-
+
-
-
-
-
-
-
-
-
+
diff --git a/src/jse/org/luaj/vm2/ast/NameResolver.java b/src/jse/org/luaj/vm2/ast/NameResolver.java
index fb19a05c..73ea1ede 100644
--- a/src/jse/org/luaj/vm2/ast/NameResolver.java
+++ b/src/jse/org/luaj/vm2/ast/NameResolver.java
@@ -81,8 +81,10 @@ public class NameResolver extends Visitor {
public void visit(Assign stat) {
super.visit(stat);
- for ( VarExp v : stat.vars )
+ for ( int i=0, n=stat.vars.size(); i0 && m0 && m names) {
- for ( Name n : names )
- defineLocalVar(n);
+ for ( int i=0, n=names.size(); i vars, List exps) {
+ public static Stat assignment(List vars, List exps) {
return new Assign(vars,exps);
}
@@ -82,10 +82,10 @@ public class Stat {
}
public static class Assign extends Stat {
- public final List vars;
+ public final List vars;
public final List exps;
- public Assign(List vars, List exps) {
+ public Assign(List vars, List exps) {
this.vars = vars;
this.exps = exps;
}
@@ -138,7 +138,7 @@ public class Stat {
public int nreturns() {
int n = values!=null? values.size(): 0;
- if ( n>0 && values.get(n-1).isvarargexp() )
+ if ( n>0 && ((Exp)values.get(n-1)).isvarargexp() )
n = -1;
return n;
}
diff --git a/src/jse/org/luaj/vm2/ast/Visitor.java b/src/jse/org/luaj/vm2/ast/Visitor.java
index adf8a962..8687a624 100644
--- a/src/jse/org/luaj/vm2/ast/Visitor.java
+++ b/src/jse/org/luaj/vm2/ast/Visitor.java
@@ -23,6 +23,8 @@ package org.luaj.vm2.ast;
import java.util.List;
+import org.luaj.vm2.ast.Exp.VarExp;
+
abstract public class Visitor {
public void visit(Chunk chunk) {
chunk.block.accept(this);
@@ -30,8 +32,8 @@ abstract public class Visitor {
public void visit(Block block) {
visit(block.scope);
if ( block.stats != null )
- for ( Stat s: block.stats )
- s.accept(this);
+ for ( int i=0, n=block.stats.size(); i vars) {
+ public void visitVars(List vars) {
if ( vars != null )
- for ( Exp.VarExp v: vars )
- v.accept(this);
+ for ( int i=0, n=vars.size(); i exps) {
if ( exps != null )
- for ( Exp e: exps )
- e.accept(this);
+ for ( int i=0, n=exps.size(); i names) {
if ( names != null )
- for ( Name n: names )
- visit(n);
+ for ( int i=0, n=names.size(); i values = stat.values;
int n = names.size();
int m = values != null? values.size(): 0;
- boolean isvarlist = m>0 && m0 && m values) {
int n = varsOrNames.size();
int m = values != null? values.size(): 0;
- boolean isvarlist = m>0 && m0 && m exps) {
int n = varsOrNames.size();
int m = exps != null? exps.size(): 0;
- boolean isvarlist = m>0 && m0 && m tmpnames = new ArrayList();
for ( int i=0; i3? "varargsOf(new LuaValue[] {":"varargsOf(" );
for ( int i=1; i3 )
out( "}," );
- out( evalVarargs(values.get(n-1))+")" );
+ out( evalVarargs((Exp) values.get(n-1))+")" );
return popWriter(x);
}
}
@@ -404,14 +404,14 @@ public class JavaCodeGen {
public String evalLuaValue(Exp exp) {
Writer x = pushWriter();
- callerExpects.put(exp,1);
+ callerExpects.put(exp,Integer.valueOf(1));
exp.accept(this);
return popWriter(x);
}
public String evalVarargs(Exp exp) {
Writer x = pushWriter();
- callerExpects.put(exp,-1);
+ callerExpects.put(exp,Integer.valueOf(-1));
exp.accept(this);
return popWriter(x);
}
@@ -634,7 +634,7 @@ public class JavaCodeGen {
private String evalLuaStringConstant(LuaString str) {
if ( stringConstants.containsKey(str) )
- return stringConstants.get(str);
+ return (String) stringConstants.get(str);
String declvalue = quotedStringInitializer(str);
String javaname = javascope.createConstantName(str.tojstring());
constantDeclarations.add( "static final LuaValue "+javaname+" = valueOf("+declvalue+");" );
@@ -646,12 +646,12 @@ public class JavaCodeGen {
if ( value == 0 ) return "ZERO";
if ( value == -1 ) return "MINUSONE";
if ( value == 1 ) return "ONE";
- if ( numberConstants.containsKey(value) )
- return numberConstants.get(value);
+ if ( numberConstants.containsKey(Double.valueOf(value)) )
+ return (String) numberConstants.get(Double.valueOf(value));
String declvalue = evalNumberLiteral(value);
String javaname = javascope.createConstantName(declvalue);
constantDeclarations.add( "static final LuaValue "+javaname+" = valueOf("+declvalue+");" );
- numberConstants.put(value,javaname);
+ numberConstants.put(Double.valueOf(value),javaname);
return javaname;
}
@@ -685,14 +685,14 @@ public class JavaCodeGen {
}
public void visit(VarargsExp exp) {
- int c = callerExpects.containsKey(exp)? callerExpects.get(exp): 0;
+ int c = callerExpects.containsKey(exp)? ((Integer)callerExpects.get(exp)).intValue(): 0;
out( c==1? "$arg.arg1()": "$arg" );
}
public void visit(MethodCall exp) {
List e = exp.args.exps;
int n = e != null? e.size(): 0;
- int c = callerExpects.containsKey(exp)? callerExpects.get(exp): 0;
+ int c = callerExpects.containsKey(exp)? ((Integer)callerExpects.get(exp)).intValue(): 0;
if ( c == -1 )
n = -1;
out( evalLuaValue(exp.lhs) );
@@ -717,9 +717,9 @@ public class JavaCodeGen {
public void visit(FuncCall exp) {
List e = exp.args.exps;
int n = e != null? e.size(): 0;
- if ( n > 0 && e.get(n-1).isvarargexp() )
+ if ( n > 0 && ((Exp)e.get(n-1)).isvarargexp() )
n = -1;
- int c = callerExpects.containsKey(exp)? callerExpects.get(exp): 0;
+ int c = callerExpects.containsKey(exp)? ((Integer)callerExpects.get(exp)).intValue(): 0;
if ( c == -1 )
n = -1;
out( evalLuaValue(exp.lhs) );
@@ -754,8 +754,8 @@ public class JavaCodeGen {
int n = args.exps.size();
if ( n > 0 ) {
for ( int i=1; i0? "$arg.arg("+(i+1)+")": "$arg.arg1()";
singleLocalDeclareAssign( name, value );
}
@@ -849,8 +849,8 @@ public class JavaCodeGen {
} else {
singleReference( stat.name.name );
for ( int i=0; i keyed = new ArrayList();
List list = new ArrayList();
for ( int i=0; i dest = Arrays.asList(new File[] { new File(binDirRoot) });
StandardJavaFileManager fm = compiler.getStandardFileManager( null, null, null);
- fm.setLocation(StandardLocation.CLASS_OUTPUT, dest);
+ fm.setLocation(StandardLocation.CLASS_OUTPUT, Arrays.asList(new File[] { new File(binDirRoot) }));
// compile the file
- Iterable extends JavaFileObject> compilationUnits = fm.getJavaFileObjects(source);
- CompilationTask task = compiler.getTask(null, fm, null, null, null, compilationUnits);
- boolean success = task.call();
+ CompilationTask task = compiler.getTask(null, fm, null, null, null, fm.getJavaFileObjects(source));
+ boolean success = task.call().booleanValue();
// instantiate, config and return
if (success) {
diff --git a/src/jse/org/luaj/vm2/luajc/JavaBuilder.java b/src/jse/org/luaj/vm2/luajc/JavaBuilder.java
index 1506e315..4ddc6414 100644
--- a/src/jse/org/luaj/vm2/luajc/JavaBuilder.java
+++ b/src/jse/org/luaj/vm2/luajc/JavaBuilder.java
@@ -247,7 +247,7 @@ public class JavaBuilder {
} else {
// fixed arg function between 0 and 3 arguments
for ( slot=0; slot plainSlotVars = new HashMap();
private Map upvalueSlotVars = new HashMap();
private int findSlot( int slot, Map map, String prefix, Type type ) {
- if ( map.containsKey(slot) )
- return map.get(slot);
+ Integer islot = Integer.valueOf(slot);
+ if ( map.containsKey(islot) )
+ return ((Integer)map.get(islot)).intValue();
String name = prefix+slot;
LocalVariableGen local = mg.addLocalVariable(name, type, null, null);
int index = local.getIndex();
- map.put(slot, index);
+ map.put(islot, Integer.valueOf(index));
return index;
}
private int findSlotIndex( int slot, boolean isupvalue ) {
@@ -620,7 +621,7 @@ public class JavaBuilder {
break;
case LuaValue.TNUMBER:
case LuaValue.TSTRING:
- String name = constants.get(value);
+ String name = (String) constants.get(value);
if ( name == null ) {
name = value.type() == LuaValue.TNUMBER?
value.isinttype()?
diff --git a/src/jse/org/luaj/vm2/luajc/JavaLoader.java b/src/jse/org/luaj/vm2/luajc/JavaLoader.java
index 29edbdd5..2de6053b 100644
--- a/src/jse/org/luaj/vm2/luajc/JavaLoader.java
+++ b/src/jse/org/luaj/vm2/luajc/JavaLoader.java
@@ -67,7 +67,7 @@ public class JavaLoader extends ClassLoader {
}
public Class findClass(String classname) throws ClassNotFoundException {
- byte[] bytes = unloaded.get(classname);
+ byte[] bytes = (byte[]) unloaded.get(classname);
if ( bytes != null )
return defineClass(classname, bytes, 0, bytes.length);
return super.findClass(classname);