diff options
author | Marius <mariausol@gmail.com> | 2013-05-19 20:40:34 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-05-19 20:40:34 +0300 |
commit | 13ec4b540e0d46c97fd7b089e0b7413da81e0a9f (patch) | |
tree | bebfa563a17c06b3bd3bf8f6f4ba6d025e00d107 /tex/context/base/buff-imp-nested.lua | |
parent | 69ad13650cda027526271179e95b5294694143a1 (diff) | |
download | context-13ec4b540e0d46c97fd7b089e0b7413da81e0a9f.tar.gz |
beta 2013.05.19 19:27
Diffstat (limited to 'tex/context/base/buff-imp-nested.lua')
-rw-r--r-- | tex/context/base/buff-imp-nested.lua | 160 |
1 files changed, 80 insertions, 80 deletions
diff --git a/tex/context/base/buff-imp-nested.lua b/tex/context/base/buff-imp-nested.lua index 019cd996d..16b8ac67a 100644 --- a/tex/context/base/buff-imp-nested.lua +++ b/tex/context/base/buff-imp-nested.lua @@ -1,80 +1,80 @@ -if not modules then modules = { } end modules ['buff-imp-nested'] = { - version = 1.001, - comment = "companion to buff-imp-nested.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local lpegmatch, patterns = lpeg.match, lpeg.patterns -local P, V, Carg = lpeg.P, lpeg.V, lpeg.Carg - -local context = context -local verbatim = context.verbatim -local variables = interfaces.variables - -local makepattern = visualizers.makepattern -local getvisualizer = visualizers.getvisualizer - -local nested = nil - -local donestedtypingstart = context.donestedtypingstart -local donestedtypingstop = context.donestedtypingstop - -local v_none = variables.none -local v_slanted = variables.slanted - -local handler = visualizers.newhandler { - initialize = function(settings) - local option = settings and settings.option - if not option or option == "" then - nested = nil - elseif option == v_slanted then - nested = nil - elseif option == v_none then - nested = nil - else - nested = getvisualizer(option,"direct") - end - end, - open = function() - donestedtypingstart() - end, - close = function() - donestedtypingstop() - end, - content = function(s) - if nested then - nested(s) - else - verbatim(s) - end - end, -} - -local open = P("<<") -local close = P(">>") -local rest = (1 - open - close - patterns.space - patterns.newline)^1 - -local grammar = visualizers.newgrammar("default", { - - initialize = patterns.beginofstring * Carg(1) / handler.initialize, - - open = makepattern(handler,"open",open), - close = makepattern(handler,"close",close), - rest = makepattern(handler,"content",rest), - - nested = V("open") * (V("pattern")^0) * V("close"), - pattern = V("line") + V("space") + V("nested") + V("rest"), - - visualizer = V("initialize") * (V("pattern")^1) - -} ) - -local parser = P(grammar) - -visualizers.register("nested", { parser = parser, handler = handler, grammar = grammar } ) - --- lpeg.match(parser,[[<<tf<<sl>>tf<<sl>>tf>>]]) context.par() --- lpeg.match(parser,[[<<tf<<sl<<tf>>sl>>tf>>]]) context.par() --- lpeg.match(parser,[[sl<<tf<<sl>>tf>>sl]]) context.par() +if not modules then modules = { } end modules ['buff-imp-nested'] = {
+ version = 1.001,
+ comment = "companion to buff-imp-nested.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local lpegmatch, patterns = lpeg.match, lpeg.patterns
+local P, V, Carg = lpeg.P, lpeg.V, lpeg.Carg
+
+local context = context
+local verbatim = context.verbatim
+local variables = interfaces.variables
+
+local makepattern = visualizers.makepattern
+local getvisualizer = visualizers.getvisualizer
+
+local nested = nil
+
+local donestedtypingstart = context.donestedtypingstart
+local donestedtypingstop = context.donestedtypingstop
+
+local v_none = variables.none
+local v_slanted = variables.slanted
+
+local handler = visualizers.newhandler {
+ initialize = function(settings)
+ local option = settings and settings.option
+ if not option or option == "" then
+ nested = nil
+ elseif option == v_slanted then
+ nested = nil
+ elseif option == v_none then
+ nested = nil
+ else
+ nested = getvisualizer(option,"direct")
+ end
+ end,
+ open = function()
+ donestedtypingstart()
+ end,
+ close = function()
+ donestedtypingstop()
+ end,
+ content = function(s)
+ if nested then
+ nested(s)
+ else
+ verbatim(s)
+ end
+ end,
+}
+
+local open = P("<<")
+local close = P(">>")
+local rest = (1 - open - close - patterns.space - patterns.newline)^1
+
+local grammar = visualizers.newgrammar("default", {
+
+ initialize = patterns.beginofstring * Carg(1) / handler.initialize,
+
+ open = makepattern(handler,"open",open),
+ close = makepattern(handler,"close",close),
+ rest = makepattern(handler,"content",rest),
+
+ nested = V("open") * (V("pattern")^0) * V("close"),
+ pattern = V("line") + V("space") + V("nested") + V("rest"),
+
+ visualizer = V("initialize") * (V("pattern")^1)
+
+} )
+
+local parser = P(grammar)
+
+visualizers.register("nested", { parser = parser, handler = handler, grammar = grammar } )
+
+-- lpeg.match(parser,[[<<tf<<sl>>tf<<sl>>tf>>]]) context.par()
+-- lpeg.match(parser,[[<<tf<<sl<<tf>>sl>>tf>>]]) context.par()
+-- lpeg.match(parser,[[sl<<tf<<sl>>tf>>sl]]) context.par()
|