Mercurial Hosting > luan
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 } |