summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua')
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua28
1 files changed, 27 insertions, 1 deletions
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
index 9de6471d148..c356d4c3785 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
@@ -20,6 +20,7 @@ local chardata = characters.data
local tags = { }
local char = { }
local attr = { }
+local ents = { }
local name = nil
local function analyze(filename)
@@ -40,6 +41,7 @@ local function analyze(filename)
tags = { }
char = { }
attr = { }
+ ents = { }
table.setmetatableindex(tags,function(t,k)
local v = {
@@ -62,6 +64,11 @@ local function analyze(filename)
return 0
end)
+ table.setmetatableindex(ents,function(t,k)
+ t[k] = 0
+ return 0
+ end)
+
local function collect(e,parent)
local dt = e.dt
if e.special then
@@ -112,12 +119,19 @@ local function analyze(filename)
end
for i=1,#filename do
- collect(xml.load(filename[i]))
+ local root = xml.load(filename[i])
+ collect(root)
+ --
+ local names = root.statistics.entities.names
+ for n in next, names do
+ ents[n] = ents[n] + 1
+ end
end
table.setmetatableindex(tags,nil)
table.setmetatableindex(char,nil)
table.setmetatableindex(attr,nil)
+ table.setmetatableindex(ents,nil)
end
@@ -170,3 +184,15 @@ function moduledata.xml.analyzers.characters(filename)
context.stoptabulate()
end
+function moduledata.xml.analyzers.entities(filename)
+ analyze(filename)
+ context.starttabulate { "|l|r|" }
+ for e, n in table.sortedhash(ents) do
+ NC() context(e)
+ NC() context(n)
+ NC() NR()
+ end
+ context.stoptabulate()
+end
+
+