comparison core/src/luan/impl/ThemeParser.java @ 646:cdc70de628b5

simplify LuanException
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 29 Mar 2016 19:58:39 -0600
parents 859c0dedc8b6
children b438a47196bc
comparison
equal deleted inserted replaced
645:859c0dedc8b6 646:cdc70de628b5
19 FnDef fnDef = new ThemeParser(sourceName,sourceText).parse(); 19 FnDef fnDef = new ThemeParser(sourceName,sourceText).parse();
20 final LuanStateImpl luanImpl = (LuanStateImpl)luan; 20 final LuanStateImpl luanImpl = (LuanStateImpl)luan;
21 return new Closure(luanImpl,fnDef); 21 return new Closure(luanImpl,fnDef);
22 } catch(ParseException e) { 22 } catch(ParseException e) {
23 //e.printStackTrace(); 23 //e.printStackTrace();
24 throw new LuanException(luan, e.getFancyMessage() ); 24 throw new LuanException( e.getFancyMessage() );
25 } 25 }
26 } 26 }
27 27
28 private static final class Frame { 28 private static final class Frame {
29 final Frame parent; 29 final Frame parent;
200 final Expr env = env(); 200 final Expr env = env();
201 Expr exp = new ExprImpl() { 201 Expr exp = new ExprImpl() {
202 @Override public Object eval(LuanStateImpl luan) throws LuanException { 202 @Override public Object eval(LuanStateImpl luan) throws LuanException {
203 Object obj = env.eval(luan); 203 Object obj = env.eval(luan);
204 if( !(obj instanceof LuanTable) ) 204 if( !(obj instanceof LuanTable) )
205 throw new LuanException(luan,"bad argument (table expected, got "+Luan.type(obj)+")"); 205 throw new LuanException("bad argument (table expected, got "+Luan.type(obj)+")");
206 LuanTable tbl = (LuanTable)obj; 206 LuanTable tbl = (LuanTable)obj;
207 String indent = (String)tbl.get(luan,INDENT); 207 String indent = (String)tbl.get(luan,INDENT);
208 if( indent==null ) throw new NullPointerException(); 208 if( indent==null ) throw new NullPointerException();
209 return indent; 209 return indent;
210 } 210 }