Mercurial Hosting > luan
comparison core/src/luan/impl/LuanCompiler.java @ 503:92c3d22745b8
make _ENV optional
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 20 May 2015 23:24:46 -0600 |
parents | b48cfa14ba60 |
children | 60c549d43988 |
comparison
equal
deleted
inserted
replaced
502:d3183a330ff5 | 503:92c3d22745b8 |
---|---|
13 | 13 |
14 public final class LuanCompiler { | 14 public final class LuanCompiler { |
15 private LuanCompiler() {} // never | 15 private LuanCompiler() {} // never |
16 | 16 |
17 public static LuanFunction compile(LuanState luan,LuanSource src,LuanTable env,boolean allowExpr) throws LuanException { | 17 public static LuanFunction compile(LuanState luan,LuanSource src,LuanTable env,boolean allowExpr) throws LuanException { |
18 if( env==null ) | 18 LuanParser parser = new LuanParser(src,env); |
19 env = new LuanTable(); | |
20 UpValue.Getter envGetter = new UpValue.ValueGetter(env); | |
21 LuanParser parser = new LuanParser(src,envGetter); | |
22 parser.addVar( "java", JavaLuan.javaFn ); | 19 parser.addVar( "java", JavaLuan.javaFn ); |
23 parser.addVar( "require", PackageLuan.requireFn ); | 20 parser.addVar( "require", PackageLuan.requireFn ); |
24 FnDef fnDef = parse(luan,parser,allowExpr); | 21 FnDef fnDef = parse(luan,parser,allowExpr); |
25 final LuanStateImpl luanImpl = (LuanStateImpl)luan; | 22 final LuanStateImpl luanImpl = (LuanStateImpl)luan; |
26 return new Closure(luanImpl,fnDef); | 23 return new Closure(luanImpl,fnDef); |