...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>DTD</name>
     4    <alias>dtd</alias>
     5    <filename>*.dtd</filename>
     6    <mime_type>application/xml-dtd</mime_type>
     7    <dot_all>true</dot_all>
     8  </config>
     9  <rules>
    10    <state name="common">
    11      <rule pattern="\s+">
    12        <token type="Text"/>
    13      </rule>
    14      <rule pattern="(%|&amp;)[^;]*;">
    15        <token type="NameEntity"/>
    16      </rule>
    17      <rule pattern="&lt;!--">
    18        <token type="Comment"/>
    19        <push state="comment"/>
    20      </rule>
    21      <rule pattern="[(|)*,?+]">
    22        <token type="Operator"/>
    23      </rule>
    24      <rule pattern="&#34;[^&#34;]*&#34;">
    25        <token type="LiteralStringDouble"/>
    26      </rule>
    27      <rule pattern="\&#39;[^\&#39;]*\&#39;">
    28        <token type="LiteralStringSingle"/>
    29      </rule>
    30    </state>
    31    <state name="comment">
    32      <rule pattern="[^-]+">
    33        <token type="Comment"/>
    34      </rule>
    35      <rule pattern="--&gt;">
    36        <token type="Comment"/>
    37        <pop depth="1"/>
    38      </rule>
    39      <rule pattern="-">
    40        <token type="Comment"/>
    41      </rule>
    42    </state>
    43    <state name="element">
    44      <rule>
    45        <include state="common"/>
    46      </rule>
    47      <rule pattern="EMPTY|ANY|#PCDATA">
    48        <token type="KeywordConstant"/>
    49      </rule>
    50      <rule pattern="[^&gt;\s|()?+*,]+">
    51        <token type="NameTag"/>
    52      </rule>
    53      <rule pattern="&gt;">
    54        <token type="Keyword"/>
    55        <pop depth="1"/>
    56      </rule>
    57    </state>
    58    <state name="attlist">
    59      <rule>
    60        <include state="common"/>
    61      </rule>
    62      <rule pattern="CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION">
    63        <token type="KeywordConstant"/>
    64      </rule>
    65      <rule pattern="#REQUIRED|#IMPLIED|#FIXED">
    66        <token type="KeywordConstant"/>
    67      </rule>
    68      <rule pattern="xml:space|xml:lang">
    69        <token type="KeywordReserved"/>
    70      </rule>
    71      <rule pattern="[^&gt;\s|()?+*,]+">
    72        <token type="NameAttribute"/>
    73      </rule>
    74      <rule pattern="&gt;">
    75        <token type="Keyword"/>
    76        <pop depth="1"/>
    77      </rule>
    78    </state>
    79    <state name="entity">
    80      <rule>
    81        <include state="common"/>
    82      </rule>
    83      <rule pattern="SYSTEM|PUBLIC|NDATA">
    84        <token type="KeywordConstant"/>
    85      </rule>
    86      <rule pattern="[^&gt;\s|()?+*,]+">
    87        <token type="NameEntity"/>
    88      </rule>
    89      <rule pattern="&gt;">
    90        <token type="Keyword"/>
    91        <pop depth="1"/>
    92      </rule>
    93    </state>
    94    <state name="notation">
    95      <rule>
    96        <include state="common"/>
    97      </rule>
    98      <rule pattern="SYSTEM|PUBLIC">
    99        <token type="KeywordConstant"/>
   100      </rule>
   101      <rule pattern="[^&gt;\s|()?+*,]+">
   102        <token type="NameAttribute"/>
   103      </rule>
   104      <rule pattern="&gt;">
   105        <token type="Keyword"/>
   106        <pop depth="1"/>
   107      </rule>
   108    </state>
   109    <state name="root">
   110      <rule>
   111        <include state="common"/>
   112      </rule>
   113      <rule pattern="(&lt;!ELEMENT)(\s+)(\S+)">
   114        <bygroups>
   115          <token type="Keyword"/>
   116          <token type="Text"/>
   117          <token type="NameTag"/>
   118        </bygroups>
   119        <push state="element"/>
   120      </rule>
   121      <rule pattern="(&lt;!ATTLIST)(\s+)(\S+)">
   122        <bygroups>
   123          <token type="Keyword"/>
   124          <token type="Text"/>
   125          <token type="NameTag"/>
   126        </bygroups>
   127        <push state="attlist"/>
   128      </rule>
   129      <rule pattern="(&lt;!ENTITY)(\s+)(\S+)">
   130        <bygroups>
   131          <token type="Keyword"/>
   132          <token type="Text"/>
   133          <token type="NameEntity"/>
   134        </bygroups>
   135        <push state="entity"/>
   136      </rule>
   137      <rule pattern="(&lt;!NOTATION)(\s+)(\S+)">
   138        <bygroups>
   139          <token type="Keyword"/>
   140          <token type="Text"/>
   141          <token type="NameTag"/>
   142        </bygroups>
   143        <push state="notation"/>
   144      </rule>
   145      <rule pattern="(&lt;!\[)([^\[\s]+)(\s*)(\[)">
   146        <bygroups>
   147          <token type="Keyword"/>
   148          <token type="NameEntity"/>
   149          <token type="Text"/>
   150          <token type="Keyword"/>
   151        </bygroups>
   152      </rule>
   153      <rule pattern="(&lt;!DOCTYPE)(\s+)([^&gt;\s]+)">
   154        <bygroups>
   155          <token type="Keyword"/>
   156          <token type="Text"/>
   157          <token type="NameTag"/>
   158        </bygroups>
   159      </rule>
   160      <rule pattern="PUBLIC|SYSTEM">
   161        <token type="KeywordConstant"/>
   162      </rule>
   163      <rule pattern="[\[\]&gt;]">
   164        <token type="Keyword"/>
   165      </rule>
   166    </state>
   167  </rules>
   168</lexer>

View as plain text