...

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

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

     1<lexer>
     2  <config>
     3    <name>BibTeX</name>
     4    <alias>bib</alias>
     5    <alias>bibtex</alias>
     6    <filename>*.bib</filename>
     7    <mime_type>text/x-bibtex</mime_type>
     8    <case_insensitive>true</case_insensitive>
     9    <not_multiline>true</not_multiline>
    10  </config>
    11  <rules>
    12    <state name="closing-brace">
    13      <rule>
    14        <include state="whitespace"/>
    15      </rule>
    16      <rule pattern="[})]">
    17        <token type="Punctuation"/>
    18        <pop depth="1"/>
    19      </rule>
    20    </state>
    21    <state name="braced-string">
    22      <rule pattern="\{">
    23        <token type="LiteralString"/>
    24        <push/>
    25      </rule>
    26      <rule pattern="\}">
    27        <token type="LiteralString"/>
    28        <pop depth="1"/>
    29      </rule>
    30      <rule pattern="[^\{\}]+">
    31        <token type="LiteralString"/>
    32      </rule>
    33    </state>
    34    <state name="whitespace">
    35      <rule pattern="\s+">
    36        <token type="Text"/>
    37      </rule>
    38    </state>
    39    <state name="value">
    40      <rule>
    41        <include state="whitespace"/>
    42      </rule>
    43      <rule pattern="[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
    44        <token type="NameVariable"/>
    45      </rule>
    46      <rule pattern="&#34;">
    47        <token type="LiteralString"/>
    48        <push state="quoted-string"/>
    49      </rule>
    50      <rule pattern="\{">
    51        <token type="LiteralString"/>
    52        <push state="braced-string"/>
    53      </rule>
    54      <rule pattern="[\d]+">
    55        <token type="LiteralNumber"/>
    56      </rule>
    57      <rule pattern="#">
    58        <token type="Punctuation"/>
    59      </rule>
    60      <rule>
    61        <pop depth="1"/>
    62      </rule>
    63    </state>
    64    <state name="quoted-string">
    65      <rule pattern="\{">
    66        <token type="LiteralString"/>
    67        <push state="braced-string"/>
    68      </rule>
    69      <rule pattern="&#34;">
    70        <token type="LiteralString"/>
    71        <pop depth="1"/>
    72      </rule>
    73      <rule pattern="[^\{\&#34;]+">
    74        <token type="LiteralString"/>
    75      </rule>
    76    </state>
    77    <state name="root">
    78      <rule>
    79        <include state="whitespace"/>
    80      </rule>
    81      <rule pattern="@comment">
    82        <token type="Comment"/>
    83      </rule>
    84      <rule pattern="@preamble">
    85        <token type="NameClass"/>
    86        <push state="closing-brace" state="value" state="opening-brace"/>
    87      </rule>
    88      <rule pattern="@string">
    89        <token type="NameClass"/>
    90        <push state="closing-brace" state="field" state="opening-brace"/>
    91      </rule>
    92      <rule pattern="@[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
    93        <token type="NameClass"/>
    94        <push state="closing-brace" state="command-body" state="opening-brace"/>
    95      </rule>
    96      <rule pattern=".+">
    97        <token type="Comment"/>
    98      </rule>
    99    </state>
   100    <state name="command-body">
   101      <rule>
   102        <include state="whitespace"/>
   103      </rule>
   104      <rule pattern="[^\s\,\}]+">
   105        <token type="NameLabel"/>
   106        <push state="#pop" state="fields"/>
   107      </rule>
   108    </state>
   109    <state name="fields">
   110      <rule>
   111        <include state="whitespace"/>
   112      </rule>
   113      <rule pattern=",">
   114        <token type="Punctuation"/>
   115        <push state="field"/>
   116      </rule>
   117      <rule>
   118        <pop depth="1"/>
   119      </rule>
   120    </state>
   121    <state name="=">
   122      <rule>
   123        <include state="whitespace"/>
   124      </rule>
   125      <rule pattern="=">
   126        <token type="Punctuation"/>
   127        <pop depth="1"/>
   128      </rule>
   129    </state>
   130    <state name="field">
   131      <rule>
   132        <include state="whitespace"/>
   133      </rule>
   134      <rule pattern="[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
   135        <token type="NameAttribute"/>
   136        <push state="value" state="="/>
   137      </rule>
   138      <rule>
   139        <pop depth="1"/>
   140      </rule>
   141    </state>
   142    <state name="opening-brace">
   143      <rule>
   144        <include state="whitespace"/>
   145      </rule>
   146      <rule pattern="[{(]">
   147        <token type="Punctuation"/>
   148        <pop depth="1"/>
   149      </rule>
   150    </state>
   151  </rules>
   152</lexer>

View as plain text