comparison src/luan/interp/ExpList.java @ 13:3b22ffbdb83a

minor git-svn-id: https://luan-java.googlecode.com/svn/trunk@14 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 23 Nov 2012 13:04:03 +0000
parents b7d7069fee58
children 5cf15507d77e
comparison
equal deleted inserted replaced
12:9cea1aea5eef 13:3b22ffbdb83a
66 } 66 }
67 return new ExpList( adders.toArray(new Adder[0]) ); 67 return new ExpList( adders.toArray(new Adder[0]) );
68 } 68 }
69 } 69 }
70 70
71 private static final Object[] EMPTY = new Object[0];
72
71 static final Expressions emptyExpList = new Expressions() { 73 static final Expressions emptyExpList = new Expressions() {
72 @Override public List eval(LuaState lua) { 74 @Override public Object[] eval(LuaState lua) {
73 return Collections.emptyList(); 75 return EMPTY;
74 } 76 }
75 }; 77 };
76 78
77 static class SingleExpList implements Expressions { 79 static class SingleExpList implements Expressions {
78 private final Expr expr; 80 private final Expr expr;
79 81
80 SingleExpList(Expr expr) { 82 SingleExpList(Expr expr) {
81 this.expr = expr; 83 this.expr = expr;
82 } 84 }
83 85
84 @Override public List eval(LuaState lua) throws LuaException { 86 @Override public Object[] eval(LuaState lua) throws LuaException {
85 return Collections.singletonList( expr.eval(lua) ); 87 return new Object[]{expr.eval(lua)};
86 } 88 }
87 } 89 }
88 90
89 private final Adder[] adders; 91 private final Adder[] adders;
90 92
91 private ExpList(Adder[] adders) { 93 private ExpList(Adder[] adders) {
92 this.adders = adders; 94 this.adders = adders;
93 } 95 }
94 96
95 @Override public List eval(LuaState lua) throws LuaException { 97 @Override public Object[] eval(LuaState lua) throws LuaException {
96 List<Object> list = new ArrayList<Object>(); 98 List<Object> list = new ArrayList<Object>();
97 for( Adder adder : adders ) { 99 for( Adder adder : adders ) {
98 adder.addTo(lua,list); 100 adder.addTo(lua,list);
99 } 101 }
100 return list; 102 return list.toArray();
101 } 103 }
102 } 104 }