package lexers import ( . "github.com/alecthomas/chroma" // nolint ) // Dtd lexer. var Dtd = Register(MustNewLexer( &Config{ Name: "DTD", Aliases: []string{"dtd"}, Filenames: []string{"*.dtd"}, MimeTypes: []string{"application/xml-dtd"}, DotAll: true, }, Rules{ "root": { Include("common"), {`(\s]+)`, ByGroups(Keyword, Text, NameTag), nil}, {`PUBLIC|SYSTEM`, KeywordConstant, nil}, {`[\[\]>]`, Keyword, nil}, }, "common": { {`\s+`, Text, nil}, {`(%|&)[^;]*;`, NameEntity, nil}, {``, Comment, Pop(1)}, {`-`, Comment, nil}, }, "element": { Include("common"), {`EMPTY|ANY|#PCDATA`, KeywordConstant, nil}, {`[^>\s|()?+*,]+`, NameTag, nil}, {`>`, Keyword, Pop(1)}, }, "attlist": { Include("common"), {`CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION`, KeywordConstant, nil}, {`#REQUIRED|#IMPLIED|#FIXED`, KeywordConstant, nil}, {`xml:space|xml:lang`, KeywordReserved, nil}, {`[^>\s|()?+*,]+`, NameAttribute, nil}, {`>`, Keyword, Pop(1)}, }, "entity": { Include("common"), {`SYSTEM|PUBLIC|NDATA`, KeywordConstant, nil}, {`[^>\s|()?+*,]+`, NameEntity, nil}, {`>`, Keyword, Pop(1)}, }, "notation": { Include("common"), {`SYSTEM|PUBLIC`, KeywordConstant, nil}, {`[^>\s|()?+*,]+`, NameAttribute, nil}, {`>`, Keyword, Pop(1)}, }, }, ))