diff core/src/luan/impl/ThemeParser.java @ 667:08966099aa6d

implement Closure directly
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 08 Apr 2016 07:00:17 -0600
parents 71f8f5075df8
children 58ebfec6178b
line wrap: on
line diff
--- a/core/src/luan/impl/ThemeParser.java	Thu Apr 07 23:36:56 2016 -0600
+++ b/core/src/luan/impl/ThemeParser.java	Fri Apr 08 07:00:17 2016 -0600
@@ -15,6 +15,7 @@
 public final class ThemeParser {
 
 	public static LuanFunction compile(LuanState luan,String sourceName,String sourceText) throws LuanException {
+/*
 		try {
 			FnDef fnDef = new ThemeParser(sourceName,sourceText).parse();
 			final LuanStateImpl luanImpl = (LuanStateImpl)luan;
@@ -23,6 +24,8 @@
 //e.printStackTrace();
 			throw new LuanException( e.getFancyMessage() );
 		}
+*/
+		return null;
 	}
 
 	private static final class Frame {
@@ -106,7 +109,7 @@
 			frame.stackSize = symbolsSize();
 	}
 
-	private FnDef newFnDef(Stmt stmt) {
+	private Class newFnDef(Stmt stmt) {
 //		return new FnDef( /*stmt*/null, frame.stackSize, symbolsSize(), frame.isVarArg, frame.upValueGetters.toArray(NO_UP_VALUE_GETTERS) );
 		return null;
 	}
@@ -135,7 +138,7 @@
 		return new GetLocalVar(stackIndex(ENV));
 	}
 
-	private FnDef parse() throws ParseException {
+	private Class parse() throws ParseException {
 		List<Stmt> stmts = new ArrayList<Stmt>();
 		int stackStart = symbolsSize();
 		{
@@ -161,7 +164,7 @@
 		}
 		stmts.add( new ReturnStmt(new GetLocalVar(stackIndex(MOD))) );
 		Stmt block = new Block( stmts.toArray(new Stmt[0]), stackStart, symbolsSize() );
-		FnDef fnDef = newFnDef(block);
+		Class fnDef = newFnDef(block);
 		return fnDef;
 	}
 
@@ -186,9 +189,9 @@
 		frame = new Frame(frame);
 		addSymbol(ENV);
 		Stmt block = parseBody("define:"+name,spaces,indent);
-		FnDef fnDef = newFnDef(block);
+		Class fnDef = newFnDef(block);
 		frame = frame.parent;
-		Stmt rtn = new SetStmt(fnName,fnDef);
+		Stmt rtn = new SetStmt(fnName,/*fnDef*/null);
 		return parser.success(rtn);
 	}
 
@@ -329,14 +332,14 @@
 		frame = new Frame(frame);
 		addSymbol(ENV);
 		Stmt block = parseBody("block:"+name,spaces,false);
-		FnDef fnDef = newFnDef(block);
+		Class fnDef = newFnDef(block);
 		frame = frame.parent;
 //		String rtn = "<% env." + tag.name + "(" + (tag.attrs.isEmpty() ? "nil" : table(tag.attrs)) + ",env,function(env) %>" + block + "<% end) %>";
 		Expr env = env();
 		Expr fn = new IndexExpr( env, new ConstExpr(name) );
 		List<Expressions> args = new ArrayList<Expressions>();
 		args.add( env );
-		args.add( fnDef );
+		args.add( /*fnDef*/null );
 		FnCall fnCall = new FnCall( fn, ExpList.build(args) );
 		Stmt rtn = new ExpressionsStmt(fnCall);
 		return parser.success(rtn);