Mercurial Hosting > luan
changeset 1093:a656fa45e315
fix multiline statements
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 08 Jan 2017 21:13:45 -0700 |
parents | a26fbde7ee28 |
children | cb4c20fce7d0 |
files | src/luan/impl/LuanParser.java |
diffstat | 1 files changed, 16 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan/impl/LuanParser.java Sun Jan 08 17:23:06 2017 -0700 +++ b/src/luan/impl/LuanParser.java Sun Jan 08 21:13:45 2017 -0700 @@ -1355,6 +1355,7 @@ if( !parser.match(')') ) throw parser.exception("Expression or ')' expected"); Spaces(); + parser.upSb(); return parser.success(); } Expr exp = TableExpr(); @@ -1395,7 +1396,7 @@ return parser.success(); } exp = RequiredExpr(in); - exp.addNewLines(); + exp.prependNewLines(); builder.add(exp); } return parser.success(); @@ -1473,6 +1474,7 @@ if( !parser.match(keyword) || NameChar() ) return parser.failure(); Spaces(); + parser.upSb(); return parser.success(); } @@ -1508,15 +1510,16 @@ private Expr Literal() throws ParseException { parser.begin(); + Expr exp = new Expr(Val.SINGLE,false); if( NilLiteral() ) { - Expr exp = new Expr(Val.SINGLE,false); exp.add( "null" ); + exp.addNewLines(); return parser.success(exp); } Boolean b = BooleanLiteral(); if( b != null ) { - Expr exp = new Expr(Val.SINGLE,false); exp.add( b.toString() ); + exp.addNewLines(); return parser.success(exp); } Number n = NumberLiteral(); @@ -1524,8 +1527,8 @@ String s = n.toString(); if( n instanceof Long ) s += "L"; - Expr exp = new Expr(Val.SINGLE,false); exp.add( s ); + exp.addNewLines(); return parser.success(exp); } Expr s = StringLiteral(); @@ -1589,6 +1592,7 @@ if( n==null || NameChar() ) return parser.failure(null); Spaces(); + parser.upSb(); return parser.success(n); } @@ -1696,6 +1700,7 @@ ) return null; Spaces(); + s.addNewLines(); return s; } @@ -1841,6 +1846,13 @@ } } + void prependNewLines() { + if( parser.sb().length() > 0 ) { + add( 0, parser.sb().toString() ); + parser.sb().setLength(0); + } + } + ParseList() { addNewLines(); }