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
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 |