scite-context-lexer-pdf-xref.lua /size: 1308 b    last modification: 2020-07-01 14:35
1local info = {
2    version   = 1.002,
3    comment   = "scintilla lpeg lexer for pdf xref",
4    author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
5    copyright = "PRAGMA ADE / ConTeXt Development Team",
6    license   = "see context related readme files",
7}
8
9-- no longer used: nesting lexers with whitespace in start/stop is unreliable
10
11local P, R = lpeg.P, lpeg.R
12
13local lexer          = require("scite-context-lexer")
14local context        = lexer.context
15local patterns       = context.patterns
16
17local token          = lexer.token
18
19local pdfxreflexer   = lexer.new("pdfxref","scite-context-lexer-pdf-xref")
20local whitespace     = pdfxreflexer.whitespace
21
22local spacing        = patterns.spacing
23local cardinal       = patterns.cardinal
24local alpha          = patterns.alpha
25
26local t_spacing      = token(whitespace, spacing)
27
28local p_xref         = P("xref")
29local t_xref         = token("keyword",p_xref)
30                     * token("number", cardinal * spacing * cardinal * spacing)
31
32local t_number       = token("number", cardinal * spacing * cardinal * spacing)
33                     * token("keyword", alpha)
34
35pdfxreflexer._rules = {
36    { "whitespace", t_spacing },
37    { "xref",       t_xref    },
38    { "number",     t_number  },
39}
40
41pdfxreflexer._tokenstyles = context.styleset
42
43return pdfxreflexer
44