summaryrefslogtreecommitdiff
path: root/pkg/netsurf/libhubbub
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-12-23 15:32:20 -0800
committerMichael Forney <mforney@mforney.org>2016-12-29 23:29:18 -0800
commite7181404bf50baf29e3a3d9f0e9ebe8a97566316 (patch)
tree2ef48628d13ee934f9d43a37f1e4d58c6bb46ca1 /pkg/netsurf/libhubbub
parent5084e84171fc00de2d65abd61e55577cd1fe1bff (diff)
Add netsurf 3.6
{nsgenbind,webidl}-{lexer,parser}.{c,h} were generated using flex and bison on unmodified 0.4 sources.
Diffstat (limited to 'pkg/netsurf/libhubbub')
-rw-r--r--pkg/netsurf/libhubbub/entities.awk55
-rw-r--r--pkg/netsurf/libhubbub/gen.rc33
-rw-r--r--pkg/netsurf/libhubbub/rev1
m---------pkg/netsurf/libhubbub/src0
4 files changed, 89 insertions, 0 deletions
diff --git a/pkg/netsurf/libhubbub/entities.awk b/pkg/netsurf/libhubbub/entities.awk
new file mode 100644
index 00000000..43ccc89b
--- /dev/null
+++ b/pkg/netsurf/libhubbub/entities.awk
@@ -0,0 +1,55 @@
+BEGIN {
+ for (i = 32; i <= 126; ++i)
+ ord[sprintf("%c", i)] = i
+ n = -1
+}
+
+function makenode(c) {
+ ++n
+ splits[n] = c
+ left[n] = -1
+ equal[n] = -1
+ right[n] = -1
+ values[n] = 0
+}
+
+function insert(nodes, id, c) {
+ nextid = nodes[id]
+ if (nextid != -1)
+ return nextid
+ makenode(c)
+ nodes[id] = n
+ return n
+}
+
+/^(#|$)/ {next}
+
+{
+ id = 0
+ c = ord[substr($1, 1, 1)]
+ if (n < 0)
+ makenode(c)
+ for (i = 1; i <= length($1) + 1;) {
+ if (c < splits[id]) {
+ id = insert(left, id, c)
+ } else if (c == splits[id]) {
+ if (i >= length($1))
+ values[id] = $2
+ if (c == 0)
+ break
+ ++i
+ c = i <= length($1) ? ord[substr($1, i, 1)] : 0
+ id = insert(equal, id, c)
+ } else {
+ id = insert(right, id, c)
+ }
+ }
+}
+
+END {
+ print "static hubbub_entity_node dict[] = {"
+ for (i = 0; i <= n; ++i)
+ print "\t{ "splits[i]", "left[i]", "equal[i]", "right[i]", "values[i]" },"
+ print "};"
+ print "static int32_t dict_root = 0;"
+}
diff --git a/pkg/netsurf/libhubbub/gen.rc b/pkg/netsurf/libhubbub/gen.rc
new file mode 100644
index 00000000..63cef77b
--- /dev/null
+++ b/pkg/netsurf/libhubbub/gen.rc
@@ -0,0 +1,33 @@
+cflags\
+ -isystem pkg/netsurf/libdom/src/include\
+ -isystem pkg/netsurf/libparserutils/src/include\
+ -isystem pkg/netsurf/libwapcaplet/src/include\
+ -I '$outdir' \
+ -I '$srcdir'/src\
+ -I '$srcdir'/include
+
+build '$outdir'/entities.inc awk '$srcdir'/build/Entities '|' '$dir'/entities.awk ; with\
+ expr '-f $dir/entities.awk'
+
+phony deps\
+ '$outdir'/entities.inc\
+ '$builddir'/pkg/netsurf/^(libdom libparserutils libwapcaplet)^/fetch.stamp
+
+lib libhubbub.a -d '$dir'/deps src/^(\
+ parser.c\
+ charset/detect.c\
+ tokeniser/^(entities.c tokeniser.c)\
+ treebuilder/^(\
+ treebuilder.c\
+ initial.c before_html.c before_head.c in_head.c\
+ in_head_noscript.c after_head.c in_body.c in_table.c\
+ in_caption.c in_column_group.c in_table_body.c in_row.c\
+ in_cell.c in_select.c in_select_in_table.c\
+ in_foreign_content.c after_body.c in_frameset.c\
+ after_frameset.c after_after_body.c after_after_frameset.c\
+ generic_rcdata.c\
+ )\
+ utils/^(errors.c string.c)\
+) '$builddir'/pkg/netsurf/libparserutils/libparserutils.a
+
+fetch git
diff --git a/pkg/netsurf/libhubbub/rev b/pkg/netsurf/libhubbub/rev
new file mode 100644
index 00000000..d00491fd
--- /dev/null
+++ b/pkg/netsurf/libhubbub/rev
@@ -0,0 +1 @@
+1
diff --git a/pkg/netsurf/libhubbub/src b/pkg/netsurf/libhubbub/src
new file mode 160000
+Subproject 73071c0dea1e4bcfd094810d051aebc74e6c648