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

simplify LuanException
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 29 Mar 2016 19:58:39 -0600
parents 859c0dedc8b6
children 37f0cf43f191
comparison
equal deleted inserted replaced
645:859c0dedc8b6 646:cdc70de628b5
14 14
15 public static LuanFunction compile(LuanState luan,String sourceName,String sourceText,LuanTable env,boolean allowExpr) throws LuanException { 15 public static LuanFunction compile(LuanState luan,String sourceName,String sourceText,LuanTable env,boolean allowExpr) throws LuanException {
16 LuanParser parser = new LuanParser(sourceName,sourceText,env); 16 LuanParser parser = new LuanParser(sourceName,sourceText,env);
17 parser.addVar( "java", JavaLuan.javaFn ); 17 parser.addVar( "java", JavaLuan.javaFn );
18 parser.addVar( "require", PackageLuan.requireFn ); 18 parser.addVar( "require", PackageLuan.requireFn );
19 FnDef fnDef = parse(luan,parser,allowExpr); 19 FnDef fnDef = parse(parser,allowExpr);
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 } 22 }
23 23
24 private static FnDef parse(LuanState luan,LuanParser parser,boolean allowExpr) throws LuanException { 24 private static FnDef parse(LuanParser parser,boolean allowExpr) throws LuanException {
25 try { 25 try {
26 if( allowExpr ) { 26 if( allowExpr ) {
27 FnDef fnDef = parser.Expression(); 27 FnDef fnDef = parser.Expression();
28 if( fnDef != null ) 28 if( fnDef != null )
29 return fnDef; 29 return fnDef;
30 } 30 }
31 return parser.RequiredModule(); 31 return parser.RequiredModule();
32 } catch(ParseException e) { 32 } catch(ParseException e) {
33 //e.printStackTrace(); 33 //e.printStackTrace();
34 throw new LuanException(luan, e.getFancyMessage() ); 34 throw new LuanException( e.getFancyMessage() );
35 } 35 }
36 } 36 }
37 37
38 public static LuanState newLuanState() { 38 public static LuanState newLuanState() {
39 return new LuanStateImpl(); 39 return new LuanStateImpl();