Mercurial Hosting > luan
changeset 2000:591d396bccad default tip
fix parse error
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 14 Jul 2025 00:47:19 -0600 |
parents | dd9696f18b62 |
children | |
files | src/luan/impl/LuanParser.java src/luan/impl/Parser.java |
diffstat | 2 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
diff -r dd9696f18b62 -r 591d396bccad src/luan/impl/LuanParser.java --- a/src/luan/impl/LuanParser.java Sat Jul 12 23:54:22 2025 -0600 +++ b/src/luan/impl/LuanParser.java Mon Jul 14 00:47:19 2025 -0600 @@ -1303,7 +1303,8 @@ Spaces(); Expr exp = RequiredExpr().single(); RequiredMatch(')'); - Spaces(); + Spaces(); + exp.addNewLines(); return exprVar(exp); } String name = Name(); @@ -1495,7 +1496,8 @@ Spaces(); Expr exp = RequiredExpr().single(); RequiredMatch(']'); - Spaces(); + Spaces(); + exp.addNewLines(); return parser.success(exp); }
diff -r dd9696f18b62 -r 591d396bccad src/luan/impl/Parser.java --- a/src/luan/impl/Parser.java Sat Jul 12 23:54:22 2025 -0600 +++ b/src/luan/impl/Parser.java Mon Jul 14 00:47:19 2025 -0600 @@ -4,8 +4,8 @@ final class Parser { private static class Frame { - int i; - StringBuilder sb; + int i = 0; + StringBuilder sb = null; } // private final LuanSource src; @@ -61,7 +61,8 @@ public boolean success() { Frame f = stack[frame]; - if( f.sb != null && f.sb.length() > 0 ) throw new RuntimeException("sb not emtpy"); + if( f.sb != null && f.sb.length() > 0 ) + throw new RuntimeException("sb not empty, contains '"+f.sb+"' and text is '"+text.substring(stack[frame-1].i,stack[frame].i)+"'"); frame--; stack[frame].i = f.i; return true;