1package a
2
3import (
4 . "github.com/alecthomas/chroma" // nolint
5 "github.com/alecthomas/chroma/lexers/internal"
6)
7
8// Abnf lexer.
9var Abnf = internal.Register(MustNewLexer(
10 &Config{
11 Name: "ABNF",
12 Aliases: []string{"abnf"},
13 Filenames: []string{"*.abnf"},
14 MimeTypes: []string{"text/x-abnf"},
15 },
16 Rules{
17 "root": {
18 {`;.*$`, CommentSingle, nil},
19 {`(%[si])?"[^"]*"`, Literal, nil},
20 {`%b[01]+\-[01]+\b`, Literal, nil},
21 {`%b[01]+(\.[01]+)*\b`, Literal, nil},
22 {`%d[0-9]+\-[0-9]+\b`, Literal, nil},
23 {`%d[0-9]+(\.[0-9]+)*\b`, Literal, nil},
24 {`%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b`, Literal, nil},
25 {`%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b`, Literal, nil},
26 {`\b[0-9]+\*[0-9]+`, Operator, nil},
27 {`\b[0-9]+\*`, Operator, nil},
28 {`\b[0-9]+`, Operator, nil},
29 {`\*`, Operator, nil},
30 {Words(``, `\b`, `ALPHA`, `BIT`, `CHAR`, `CR`, `CRLF`, `CTL`, `DIGIT`, `DQUOTE`, `HEXDIG`, `HTAB`, `LF`, `LWSP`, `OCTET`, `SP`, `VCHAR`, `WSP`), Keyword, nil},
31 {`[a-zA-Z][a-zA-Z0-9-]+\b`, NameClass, nil},
32 {`(=/|=|/)`, Operator, nil},
33 {`[\[\]()]`, Punctuation, nil},
34 {`\s+`, Text, nil},
35 {`.`, Text, nil},
36 },
37 },
38))