diff options
Diffstat (limited to 'tex/context/base/buff-imp-xml.lua')
-rw-r--r-- | tex/context/base/buff-imp-xml.lua | 266 |
1 files changed, 133 insertions, 133 deletions
diff --git a/tex/context/base/buff-imp-xml.lua b/tex/context/base/buff-imp-xml.lua index 0c48ed3b0..298a98ac0 100644 --- a/tex/context/base/buff-imp-xml.lua +++ b/tex/context/base/buff-imp-xml.lua @@ -1,133 +1,133 @@ -if not modules then modules = { } end modules ['buff-imp-xml'] = { - version = 1.001, - comment = "companion to v-xml.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local P, S, V, patterns = lpeg.P, lpeg.S, lpeg.V, lpeg.patterns - -local context = context -local verbatim = context.verbatim -local makepattern = visualizers.makepattern - -local XmlSnippet = context.XmlSnippet -local startXmlSnippet = context.startXmlSnippet -local stopXmlSnippet = context.stopXmlSnippet - -local XmlSnippetName = verbatim.XmlSnippetName -local XmlSnippetKey = verbatim.XmlSnippetKey -local XmlSnippetBoundary = verbatim.XmlSnippetBoundary -local XmlSnippetString = verbatim.XmlSnippetString -local XmlSnippetEqual = verbatim.XmlSnippetEqual -local XmlSnippetEntity = verbatim.XmlSnippetEntity -local XmlSnippetComment = verbatim.XmlSnippetComment -local XmlSnippetCdata = verbatim.XmlSnippetCdata - -local handler = visualizers.newhandler { - startinline = function() XmlSnippet(false,"{") end, - stopinline = function() context("}") end, - startdisplay = function() startXmlSnippet() end, - stopdisplay = function() stopXmlSnippet () end, - name = function(s) XmlSnippetName(s) end, - key = function(s) XmlSnippetKey(s) end, - boundary = function(s) XmlSnippetBoundary(s) end, - string = function(s) XmlSnippetString(s) end, - equal = function(s) XmlSnippetEqual(s) end, - entity = function(s) XmlSnippetEntity(s) end, - comment = function(s) XmlSnippetComment(s) end, - cdata = function(s) XmlSnippetCdata(s) end, -} - -local comment = P("--") -local name = (patterns.letter + patterns.digit + S('_-.'))^1 -local entity = P("&") * (1-P(";"))^1 * P(";") -local openbegin = P("<") -local openend = P("</") -local closebegin = P("/>") + P(">") -local closeend = P(">") -local opencomment = P("<!--") -local closecomment = P("-->") -local openinstruction = P("<?") -local closeinstruction = P("?>") -local opencdata = P("<![CDATA[") -local closecdata = P("]]>") - -local grammar = visualizers.newgrammar("default", { "visualizer", - sstring = - makepattern(handler,"string",patterns.dquote) - * (V("whitespace") + makepattern(handler,"default",1-patterns.dquote))^0 - * makepattern(handler,"string",patterns.dquote), - dstring = - makepattern(handler,"string",patterns.squote) - * (V("whitespace") + makepattern(handler,"default",1-patterns.squote))^0 - * makepattern(handler,"string",patterns.squote), - entity = - makepattern(handler,"entity",entity), - name = - makepattern(handler,"name",name) - * ( - makepattern(handler,"default",patterns.colon) - * makepattern(handler,"name",name) - )^0, - key = - makepattern(handler,"key",name) - * ( - makepattern(handler,"default",patterns.colon) - * makepattern(handler,"key",name) - )^0, - attributes = ( - V("optionalwhitespace") - * V("key") - * V("optionalwhitespace") - * makepattern(handler,"equal",patterns.equal) - * V("optionalwhitespace") - * (V("dstring") + V("sstring")) - * V("optionalwhitespace") - )^0, - open = - makepattern(handler,"boundary",openbegin) - * V("name") - * V("optionalwhitespace") - * V("attributes") - * makepattern(handler,"boundary",closebegin), - close = - makepattern(handler,"boundary",openend) - * V("name") - * V("optionalwhitespace") - * makepattern(handler,"boundary",closeend), - comment = - makepattern(handler,"boundary",opencomment) - * (V("whitespace") + makepattern(handler,"comment",(1-closecomment)^1))^0 -- slow - * makepattern(handler,"boundary",closecomment), - cdata = - makepattern(handler,"boundary",opencdata) - * (V("whitespace") + makepattern(handler,"comment",(1-closecdata)^1))^0 -- slow - * makepattern(handler,"boundary",closecdata), - instruction = - makepattern(handler,"boundary",openinstruction) - * V("name") - * V("optionalwhitespace") - * V("attributes") - * V("optionalwhitespace") - * makepattern(handler,"boundary",closeinstruction), - - pattern = - V("comment") - + V("instruction") - + V("cdata") - + V("close") - + V("open") - + V("entity") - + V("space") - + V("line") - + V("default"), - - visualizer = - V("pattern")^1 -} ) - -local parser = P(grammar) - -visualizers.register("xml", { parser = parser, handler = handler, grammar = grammar } ) +if not modules then modules = { } end modules ['buff-imp-xml'] = {
+ version = 1.001,
+ comment = "companion to v-xml.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local P, S, V, patterns = lpeg.P, lpeg.S, lpeg.V, lpeg.patterns
+
+local context = context
+local verbatim = context.verbatim
+local makepattern = visualizers.makepattern
+
+local XmlSnippet = context.XmlSnippet
+local startXmlSnippet = context.startXmlSnippet
+local stopXmlSnippet = context.stopXmlSnippet
+
+local XmlSnippetName = verbatim.XmlSnippetName
+local XmlSnippetKey = verbatim.XmlSnippetKey
+local XmlSnippetBoundary = verbatim.XmlSnippetBoundary
+local XmlSnippetString = verbatim.XmlSnippetString
+local XmlSnippetEqual = verbatim.XmlSnippetEqual
+local XmlSnippetEntity = verbatim.XmlSnippetEntity
+local XmlSnippetComment = verbatim.XmlSnippetComment
+local XmlSnippetCdata = verbatim.XmlSnippetCdata
+
+local handler = visualizers.newhandler {
+ startinline = function() XmlSnippet(false,"{") end,
+ stopinline = function() context("}") end,
+ startdisplay = function() startXmlSnippet() end,
+ stopdisplay = function() stopXmlSnippet () end,
+ name = function(s) XmlSnippetName(s) end,
+ key = function(s) XmlSnippetKey(s) end,
+ boundary = function(s) XmlSnippetBoundary(s) end,
+ string = function(s) XmlSnippetString(s) end,
+ equal = function(s) XmlSnippetEqual(s) end,
+ entity = function(s) XmlSnippetEntity(s) end,
+ comment = function(s) XmlSnippetComment(s) end,
+ cdata = function(s) XmlSnippetCdata(s) end,
+}
+
+local comment = P("--")
+local name = (patterns.letter + patterns.digit + S('_-.'))^1
+local entity = P("&") * (1-P(";"))^1 * P(";")
+local openbegin = P("<")
+local openend = P("</")
+local closebegin = P("/>") + P(">")
+local closeend = P(">")
+local opencomment = P("<!--")
+local closecomment = P("-->")
+local openinstruction = P("<?")
+local closeinstruction = P("?>")
+local opencdata = P("<![CDATA[")
+local closecdata = P("]]>")
+
+local grammar = visualizers.newgrammar("default", { "visualizer",
+ sstring =
+ makepattern(handler,"string",patterns.dquote)
+ * (V("whitespace") + makepattern(handler,"default",1-patterns.dquote))^0
+ * makepattern(handler,"string",patterns.dquote),
+ dstring =
+ makepattern(handler,"string",patterns.squote)
+ * (V("whitespace") + makepattern(handler,"default",1-patterns.squote))^0
+ * makepattern(handler,"string",patterns.squote),
+ entity =
+ makepattern(handler,"entity",entity),
+ name =
+ makepattern(handler,"name",name)
+ * (
+ makepattern(handler,"default",patterns.colon)
+ * makepattern(handler,"name",name)
+ )^0,
+ key =
+ makepattern(handler,"key",name)
+ * (
+ makepattern(handler,"default",patterns.colon)
+ * makepattern(handler,"key",name)
+ )^0,
+ attributes = (
+ V("optionalwhitespace")
+ * V("key")
+ * V("optionalwhitespace")
+ * makepattern(handler,"equal",patterns.equal)
+ * V("optionalwhitespace")
+ * (V("dstring") + V("sstring"))
+ * V("optionalwhitespace")
+ )^0,
+ open =
+ makepattern(handler,"boundary",openbegin)
+ * V("name")
+ * V("optionalwhitespace")
+ * V("attributes")
+ * makepattern(handler,"boundary",closebegin),
+ close =
+ makepattern(handler,"boundary",openend)
+ * V("name")
+ * V("optionalwhitespace")
+ * makepattern(handler,"boundary",closeend),
+ comment =
+ makepattern(handler,"boundary",opencomment)
+ * (V("whitespace") + makepattern(handler,"comment",(1-closecomment)^1))^0 -- slow
+ * makepattern(handler,"boundary",closecomment),
+ cdata =
+ makepattern(handler,"boundary",opencdata)
+ * (V("whitespace") + makepattern(handler,"comment",(1-closecdata)^1))^0 -- slow
+ * makepattern(handler,"boundary",closecdata),
+ instruction =
+ makepattern(handler,"boundary",openinstruction)
+ * V("name")
+ * V("optionalwhitespace")
+ * V("attributes")
+ * V("optionalwhitespace")
+ * makepattern(handler,"boundary",closeinstruction),
+
+ pattern =
+ V("comment")
+ + V("instruction")
+ + V("cdata")
+ + V("close")
+ + V("open")
+ + V("entity")
+ + V("space")
+ + V("line")
+ + V("default"),
+
+ visualizer =
+ V("pattern")^1
+} )
+
+local parser = P(grammar)
+
+visualizers.register("xml", { parser = parser, handler = handler, grammar = grammar } )
|