Mercurial Hosting > luan
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(); |