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);