Mercurial Hosting > luan
comparison src/luan/interp/ExpList.java @ 49:8ede219cd111
add WebShell
git-svn-id: https://luan-java.googlecode.com/svn/trunk@50 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 28 Dec 2012 19:35:04 +0000 |
parents | 64ecb7a3aad7 |
children | 754e6030c029 |
comparison
equal
deleted
inserted
replaced
48:64ecb7a3aad7 | 49:8ede219cd111 |
---|---|
8 | 8 |
9 | 9 |
10 final class ExpList implements Expressions { | 10 final class ExpList implements Expressions { |
11 | 11 |
12 private interface Adder { | 12 private interface Adder { |
13 public void addTo(LuanStateImpl lua,List<Object> list) throws LuanException; | 13 public void addTo(LuanStateImpl luan,List<Object> list) throws LuanException; |
14 public Code code(); | 14 public Code code(); |
15 } | 15 } |
16 | 16 |
17 private static class ExprAdder implements Adder { | 17 private static class ExprAdder implements Adder { |
18 private final Expr expr; | 18 private final Expr expr; |
19 | 19 |
20 ExprAdder(Expr expr) { | 20 ExprAdder(Expr expr) { |
21 this.expr = expr; | 21 this.expr = expr; |
22 } | 22 } |
23 | 23 |
24 public void addTo(LuanStateImpl lua,List<Object> list) throws LuanException { | 24 public void addTo(LuanStateImpl luan,List<Object> list) throws LuanException { |
25 list.add( expr.eval(lua) ); | 25 list.add( expr.eval(luan) ); |
26 } | 26 } |
27 | 27 |
28 public Code code() { | 28 public Code code() { |
29 return expr; | 29 return expr; |
30 } | 30 } |
36 | 36 |
37 ExpressionsAdder(Expressions expressions) { | 37 ExpressionsAdder(Expressions expressions) { |
38 this.expressions = expressions; | 38 this.expressions = expressions; |
39 } | 39 } |
40 | 40 |
41 public void addTo(LuanStateImpl lua,List<Object> list) throws LuanException { | 41 public void addTo(LuanStateImpl luan,List<Object> list) throws LuanException { |
42 for( Object val : expressions.eval(lua) ) { | 42 for( Object val : expressions.eval(luan) ) { |
43 list.add( val ); | 43 list.add( val ); |
44 } | 44 } |
45 } | 45 } |
46 | 46 |
47 public Code code() { | 47 public Code code() { |
79 | 79 |
80 private static final Object[] EMPTY = new Object[0]; | 80 private static final Object[] EMPTY = new Object[0]; |
81 | 81 |
82 static final Expressions emptyExpList = new Expressions() { | 82 static final Expressions emptyExpList = new Expressions() { |
83 | 83 |
84 @Override public Object[] eval(LuanStateImpl lua) { | 84 @Override public Object[] eval(LuanStateImpl luan) { |
85 return EMPTY; | 85 return EMPTY; |
86 } | 86 } |
87 | 87 |
88 @Override public LuanSource.Element se() { | 88 @Override public LuanSource.Element se() { |
89 return null; | 89 return null; |
95 | 95 |
96 SingleExpList(Expr expr) { | 96 SingleExpList(Expr expr) { |
97 this.expr = expr; | 97 this.expr = expr; |
98 } | 98 } |
99 | 99 |
100 @Override public Object[] eval(LuanStateImpl lua) throws LuanException { | 100 @Override public Object[] eval(LuanStateImpl luan) throws LuanException { |
101 return new Object[]{expr.eval(lua)}; | 101 return new Object[]{expr.eval(luan)}; |
102 } | 102 } |
103 | 103 |
104 @Override public LuanSource.Element se() { | 104 @Override public LuanSource.Element se() { |
105 return expr.se(); | 105 return expr.se(); |
106 } | 106 } |
110 | 110 |
111 private ExpList(Adder[] adders) { | 111 private ExpList(Adder[] adders) { |
112 this.adders = adders; | 112 this.adders = adders; |
113 } | 113 } |
114 | 114 |
115 @Override public Object[] eval(LuanStateImpl lua) throws LuanException { | 115 @Override public Object[] eval(LuanStateImpl luan) throws LuanException { |
116 List<Object> list = new ArrayList<Object>(); | 116 List<Object> list = new ArrayList<Object>(); |
117 for( Adder adder : adders ) { | 117 for( Adder adder : adders ) { |
118 adder.addTo(lua,list); | 118 adder.addTo(luan,list); |
119 } | 119 } |
120 return list.toArray(); | 120 return list.toArray(); |
121 } | 121 } |
122 | 122 |
123 @Override public LuanSource.Element se() { | 123 @Override public LuanSource.Element se() { |