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);