summaryrefslogtreecommitdiff
path: root/context/data/textadept/context/lexers/scite-context-lexer-mps.lua
diff options
context:
space:
mode:
Diffstat (limited to 'context/data/textadept/context/lexers/scite-context-lexer-mps.lua')
-rw-r--r--context/data/textadept/context/lexers/scite-context-lexer-mps.lua189
1 files changed, 0 insertions, 189 deletions
diff --git a/context/data/textadept/context/lexers/scite-context-lexer-mps.lua b/context/data/textadept/context/lexers/scite-context-lexer-mps.lua
deleted file mode 100644
index 356bf1f6b..000000000
--- a/context/data/textadept/context/lexers/scite-context-lexer-mps.lua
+++ /dev/null
@@ -1,189 +0,0 @@
-local info = {
- version = 1.002,
- comment = "scintilla lpeg lexer for metafun",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files",
-}
-
-local global, string, table, lpeg = _G, string, table, lpeg
-local P, R, S, V = lpeg.P, lpeg.R, lpeg.S, lpeg.V
-local type = type
-
-local lexer = require("scite-context-lexer")
-local context = lexer.context
-local patterns = context.patterns
-
-local token = lexer.token
-local exact_match = lexer.exact_match
-
-local metafunlexer = lexer.new("mps","scite-context-lexer-mps")
-local whitespace = metafunlexer.whitespace
-
-local metapostprimitives = { }
-local metapostinternals = { }
-local metapostshortcuts = { }
-local metapostcommands = { }
-
-local metafuninternals = { }
-local metafunshortcuts = { }
-local metafuncommands = { }
-
-local mergedshortcuts = { }
-local mergedinternals = { }
-
-do
-
- local definitions = context.loaddefinitions("scite-context-data-metapost")
-
- if definitions then
- metapostprimitives = definitions.primitives or { }
- metapostinternals = definitions.internals or { }
- metapostshortcuts = definitions.shortcuts or { }
- metapostcommands = definitions.commands or { }
- end
-
- local definitions = context.loaddefinitions("scite-context-data-metafun")
-
- if definitions then
- metafuninternals = definitions.internals or { }
- metafunshortcuts = definitions.shortcuts or { }
- metafuncommands = definitions.commands or { }
- end
-
- for i=1,#metapostshortcuts do
- mergedshortcuts[#mergedshortcuts+1] = metapostshortcuts[i]
- end
- for i=1,#metafunshortcuts do
- mergedshortcuts[#mergedshortcuts+1] = metafunshortcuts[i]
- end
-
- for i=1,#metapostinternals do
- mergedinternals[#mergedinternals+1] = metapostinternals[i]
- end
- for i=1,#metafuninternals do
- mergedinternals[#mergedinternals+1] = metafuninternals[i]
- end
-
-end
-
-local space = patterns.space -- S(" \n\r\t\f\v")
-local any = patterns.any
-
-local dquote = P('"')
-local cstoken = patterns.idtoken
-local mptoken = patterns.alpha
-local leftbrace = P("{")
-local rightbrace = P("}")
-local number = patterns.real
-
-local cstokentex = R("az","AZ","\127\255") + S("@!?_")
-
--- we could collapse as in tex
-
-local spacing = token(whitespace, space^1)
-local rest = token("default", any)
-local comment = token("comment", P("%") * (1-S("\n\r"))^0)
-local internal = token("reserved", exact_match(mergedshortcuts,false))
-local shortcut = token("data", exact_match(mergedinternals))
-
-local helper = token("command", exact_match(metafuncommands))
-local plain = token("plain", exact_match(metapostcommands))
-local quoted = token("quote", dquote)
- * token("string", P(1-dquote)^0)
- * token("quote", dquote)
-local separator = P(" ") + S("\n\r")^1
-local btex = (P("btex") + P("verbatimtex")) * separator
-local etex = separator * P("etex")
-local texstuff = token("quote", btex)
- * token("string", (1-etex)^0)
- * token("quote", etex)
-local primitive = token("primitive", exact_match(metapostprimitives))
-local identifier = token("default", cstoken^1)
-local number = token("number", number)
-local grouping = token("grouping", S("()[]{}")) -- can be an option
-local suffix = token("number", P("#@") + P("@#") + P("#"))
-local special = token("special", P("#@") + P("@#") + S("#()[]{}<>=:\"")) -- or else := <> etc split
-local texlike = token("warning", P("\\") * cstokentex^1)
-local extra = token("extra", P("+-+") + P("++") + S("`~%^&_-+*/\'|\\"))
-
-local nested = P { leftbrace * (V(1) + (1-rightbrace))^0 * rightbrace }
-local texlike = token("embedded", P("\\") * (P("MP") + P("mp")) * mptoken^1)
- * spacing^0
- * token("grouping", leftbrace)
- * token("default", (nested + (1-rightbrace))^0 )
- * token("grouping", rightbrace)
- + token("warning", P("\\") * cstokentex^1)
-
--- lua: we assume: lua ( "lua code" )
-
-local cldlexer = lexer.load("scite-context-lexer-cld","mps-cld")
-
-local startlua = P("lua") * space^0 * P('(') * space^0 * P('"')
-local stoplua = P('"') * space^0 * P(')')
-
-local startluacode = token("embedded", startlua)
-local stopluacode = #stoplua * token("embedded", stoplua)
-
-lexer.embed_lexer(metafunlexer, cldlexer, startluacode, stopluacode)
-
-local luacall = token("embedded",P("lua") * ( P(".") * R("az","AZ","__")^1 )^1)
-
-local keyword = token("default", (R("AZ","az","__")^1) * # P(space^0 * P("=")))
-
-metafunlexer._rules = {
- { "whitespace", spacing },
- { "comment", comment },
- { "keyword", keyword }, -- experiment, maybe to simple
- { "internal", internal },
- { "shortcut", shortcut },
- { "luacall", luacall },
- { "helper", helper },
- { "plain", plain },
- { "primitive", primitive },
- { "texstuff", texstuff },
- { "suffix", suffix },
- { "identifier", identifier },
- { "number", number },
- { "quoted", quoted },
- -- { "grouping", grouping }, -- can be an option
- { "special", special },
- { "texlike", texlike },
- { "extra", extra },
- { "rest", rest },
-}
-
-metafunlexer._tokenstyles = context.styleset
-
-metafunlexer._foldpattern = patterns.lower^2 -- separate entry else interference
-
-metafunlexer._foldsymbols = {
- _patterns = {
- "[a-z][a-z]+",
- },
- ["plain"] = {
- ["beginfig"] = 1,
- ["endfig"] = -1,
- ["beginglyph"] = 1,
- ["endglyph"] = -1,
- -- ["begingraph"] = 1,
- -- ["endgraph"] = -1,
- },
- ["primitive"] = {
- ["def"] = 1,
- ["vardef"] = 1,
- ["primarydef"] = 1,
- ["secondarydef" ] = 1,
- ["tertiarydef"] = 1,
- ["enddef"] = -1,
- ["if"] = 1,
- ["fi"] = -1,
- ["for"] = 1,
- ["forever"] = 1,
- ["endfor"] = -1,
- }
-}
-
--- if inspect then inspect(metafunlexer) end
-
-return metafunlexer