Mercurial Hosting > luan
diff src/luan/modules/parsers/Html.java @ 1267:9fa8b8389578
add LuanTable.luan;
support metatable __gc();
add luan.sql;
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 12 Nov 2018 02:10:41 -0700 |
parents | 88b5b81cad4a |
children | 323743a7f317 |
line wrap: on
line diff
--- a/src/luan/modules/parsers/Html.java Sun Sep 30 19:10:48 2018 -0600 +++ b/src/luan/modules/parsers/Html.java Mon Nov 12 02:10:41 2018 -0700 @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Set; import java.util.HashSet; +import luan.LuanState; import luan.LuanTable; import luan.lib.parser.Parser; import luan.lib.parser.ParseException; @@ -11,14 +12,18 @@ public final class Html { - public static LuanTable toList(String text,LuanTable containerTagsTbl) throws ParseException { - return new Html(text,containerTagsTbl).parse(); + public static LuanTable toList(LuanState luan,String text,LuanTable containerTagsTbl) + throws ParseException + { + return new Html(luan,text,containerTagsTbl).parse(); } + private final LuanState luan; private final Parser parser; private final Set<String> containerTags = new HashSet<String>(); - private Html(String text,LuanTable containerTagsTbl) { + private Html(LuanState luan,String text,LuanTable containerTagsTbl) { + this.luan = luan; this.parser = new Parser(text); for( Object v : containerTagsTbl.asList() ) { containerTags.add((String)v); @@ -56,7 +61,7 @@ } if( sb.length() > 0 ) list.add(sb.toString()); - return new LuanTable(list); + return new LuanTable(luan,list); } private LuanTable parseComment() { @@ -69,7 +74,7 @@ return parser.failure(null); } String text = parser.textFrom(start); - LuanTable tbl = new LuanTable(); + LuanTable tbl = new LuanTable(luan); tbl.rawPut("type","comment"); tbl.rawPut("text",text); return parser.success(tbl); @@ -85,7 +90,7 @@ return parser.failure(null); } String text = parser.textFrom(start); - LuanTable tbl = new LuanTable(); + LuanTable tbl = new LuanTable(luan); tbl.rawPut("type","cdata"); tbl.rawPut("text",text); return parser.success(tbl); @@ -107,7 +112,7 @@ return parser.failure(null); } String text = parser.text.substring(start,end); - LuanTable tbl = new LuanTable(); + LuanTable tbl = new LuanTable(luan); tbl.rawPut("type","container"); tbl.rawPut("tag",tag); tbl.rawPut("text",text); @@ -124,7 +129,7 @@ return parser.failure(null); while( matchNameChar() ); String name = parser.textFrom(start).toLowerCase(); - LuanTable attributes = new LuanTable(); + LuanTable attributes = new LuanTable(luan); String attrName; while( (attrName = parseAttrName()) != null ) { String attrValue = parseAttrValue(); @@ -134,7 +139,7 @@ boolean isEmpty = parser.match('/'); if( !parser.match('>') ) return parser.failure(null); - LuanTable tbl = new LuanTable(); + LuanTable tbl = new LuanTable(luan); tbl.rawPut("type","tag"); tbl.rawPut("name",name); tbl.rawPut("attributes",attributes);