diff options
author | Marius <mariausol@gmail.com> | 2013-05-20 03:20:28 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-05-20 03:20:28 +0300 |
commit | 5fc5cfb5014ddcc2942e13a559f4082fb66aa6e7 (patch) | |
tree | 53f81e99fac8c80ddd2fb70e233a7e5d5735722f /tex/context/base/buff-imp-nested.lua | |
parent | 13ec4b540e0d46c97fd7b089e0b7413da81e0a9f (diff) | |
download | context-5fc5cfb5014ddcc2942e13a559f4082fb66aa6e7.tar.gz |
beta 2013.05.20 02:00
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 16b8ac67a..019cd996d 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() |