diff core/src/luan/impl/LuanParser.java @ 687:fc08c3b42010

add theme_to_luan
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 18 Apr 2016 01:08:35 -0600
parents 41f791e4206d
children f99f51bc5bea
line wrap: on
line diff
--- a/core/src/luan/impl/LuanParser.java	Sun Apr 17 16:39:28 2016 -0600
+++ b/core/src/luan/impl/LuanParser.java	Mon Apr 18 01:08:35 2016 -0600
@@ -179,14 +179,11 @@
 		}
 	}
 
-//	final LuanSource source;
 	private Frame frame;
 	private final Parser parser;
 	private final Stmts top;
-	private boolean hasTemplateWrite = false;
 
 	LuanParser(String sourceName,String sourceText) {
-//		this.source = source;
 		this.frame = new Frame();
 		this.parser = new Parser(sourceName,sourceText);
 		this.top = new Stmts();
@@ -194,11 +191,9 @@
 
 	void addVar(String name) {
 		UpSym upSym = frame.addUpSym( "-ADDED-" ,"new Pointer()");
-		if( name != null ) {
-			LocalSym sym = frame.addLocalSym( name );
-			sym.isPointer = true;
-			top.add( "final Pointer " + sym.javaName + " = upValues[" + upSym.i + "];  " );
-		}
+		LocalSym sym = frame.addLocalSym( name );
+		sym.isPointer = true;
+		top.add( "final Pointer " + sym.javaName + " = upValues[" + upSym.i + "];  " );
 	}
 
 	private int symbolsSize() {
@@ -377,12 +372,8 @@
 		Expr exprs = TemplateExpressions(In.NOTHING);
 		if( exprs == null )
 			return null;
-		if( !hasTemplateWrite ) {
-			top.add(0,"final LuanFunction template_write = Luan.checkFunction(luan.index(PackageLuan.require(luan,\"luan:Io\"),\"template_write\"));  ");
-			hasTemplateWrite = true;
-		}
 		Stmts stmt = new Stmts();
-		stmt.add( "template_write.call(luan," );
+		stmt.add( "Luan.checkFunction(luan.index(PackageLuan.require(luan,\"luan:Io\"),\"template_write\")).call(luan," );
 		stmt.addAll( exprs.array() );
 		stmt.add( ");  " );
 		return stmt;
@@ -1275,7 +1266,8 @@
 				Expr envExpr = env();
 				if( envExpr != null )
 					return indexVar( envExpr, constExpStr(name) ).set(val);
-				throw new RuntimeException();
+				parser.failure(null);
+				throw parser.exception("name '"+name+"' not defined");
 			}
 		};
 	}