Mercurial Hosting > luan
comparison src/luan/impl/LuanParser.java @ 1330:f41919741100
fix security
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 Feb 2019 01:38:55 -0700 |
parents | 9fa8b8389578 |
children | 25746915a241 |
comparison
equal
deleted
inserted
replaced
1329:5a39b006acd1 | 1330:f41919741100 |
---|---|
2007 private String toFnString(Stmts stmts,List<UpSym> upValueSymbols,String className) { | 2007 private String toFnString(Stmts stmts,List<UpSym> upValueSymbols,String className) { |
2008 if( !stmts.hasReturn ) | 2008 if( !stmts.hasReturn ) |
2009 stmts.add( "\nreturn LuanFunction.NOTHING;" ); | 2009 stmts.add( "\nreturn LuanFunction.NOTHING;" ); |
2010 return "" | 2010 return "" |
2011 +"package luan.impl; " | 2011 +"package luan.impl; " |
2012 +"import luan.LuanClosure; " | |
2012 +"import luan.Luan; " | 2013 +"import luan.Luan; " |
2013 +"import luan.LuanFunction; " | 2014 +"import luan.LuanFunction; " |
2014 +"import luan.LuanState; " | 2015 +"import luan.LuanState; " |
2015 +"import luan.LuanJavaOk; " | |
2016 +"import luan.LuanException; " | 2016 +"import luan.LuanException; " |
2017 +"import luan.modules.PackageLuan; " | 2017 +"import luan.modules.PackageLuan; " |
2018 | 2018 |
2019 +"public class " + className +" extends Closure { " | 2019 +"public class " + className +" extends LuanClosure { " |
2020 +"public "+className+"(LuanJavaOk java) throws LuanException { " | 2020 +"public "+className+"(boolean javaOk,String sourceName) throws LuanException { " |
2021 +"super("+upValueSymbols.size()+",java); " | 2021 +"super("+upValueSymbols.size()+",javaOk,sourceName); " |
2022 + init(upValueSymbols) | 2022 + init(upValueSymbols) |
2023 +"} " | 2023 +"} " |
2024 | 2024 |
2025 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " | 2025 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " |
2026 +"final Pointer[] parentUpValues = upValues; " | 2026 +"final Pointer[] parentUpValues = upValues; " |
2036 stmt.addNewLines(); | 2036 stmt.addNewLines(); |
2037 if( !stmt.hasReturn ) | 2037 if( !stmt.hasReturn ) |
2038 stmt.add( "return LuanFunction.NOTHING; " ); | 2038 stmt.add( "return LuanFunction.NOTHING; " ); |
2039 Expr exp = new Expr(Val.SINGLE,false); | 2039 Expr exp = new Expr(Val.SINGLE,false); |
2040 exp.add( "" | 2040 exp.add( "" |
2041 +"new Closure("+upValueSymbols.size()+",javaOk) { " | 2041 +"new LuanClosure("+upValueSymbols.size()+",javaOk,sourceName) { " |
2042 +"{ " | 2042 +"{ " |
2043 + init(upValueSymbols) | 2043 + init(upValueSymbols) |
2044 +"} " | 2044 +"} " |
2045 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " | 2045 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " |
2046 ); | 2046 ); |