Mercurial Hosting > luan
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"); } }; }