...

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

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

     1<lexer>
     2  <config>
     3    <name>Bash</name>
     4    <alias>bash</alias>
     5    <alias>sh</alias>
     6    <alias>ksh</alias>
     7    <alias>zsh</alias>
     8    <alias>shell</alias>
     9    <filename>*.sh</filename>
    10    <filename>*.ksh</filename>
    11    <filename>*.bash</filename>
    12    <filename>*.ebuild</filename>
    13    <filename>*.eclass</filename>
    14    <filename>.env</filename>
    15    <filename>*.env</filename>
    16    <filename>*.exheres-0</filename>
    17    <filename>*.exlib</filename>
    18    <filename>*.zsh</filename>
    19    <filename>*.zshrc</filename>
    20    <filename>.bashrc</filename>
    21    <filename>bashrc</filename>
    22    <filename>.bash_*</filename>
    23    <filename>bash_*</filename>
    24    <filename>zshrc</filename>
    25    <filename>.zshrc</filename>
    26    <filename>PKGBUILD</filename>
    27    <mime_type>application/x-sh</mime_type>
    28    <mime_type>application/x-shellscript</mime_type>
    29  </config>
    30  <rules>
    31    <state name="data">
    32      <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
    33        <token type="LiteralStringDouble"/>
    34      </rule>
    35      <rule pattern="&#34;">
    36        <token type="LiteralStringDouble"/>
    37        <push state="string"/>
    38      </rule>
    39      <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
    40        <token type="LiteralStringSingle"/>
    41      </rule>
    42      <rule pattern="(?s)&#39;.*?&#39;">
    43        <token type="LiteralStringSingle"/>
    44      </rule>
    45      <rule pattern=";">
    46        <token type="Punctuation"/>
    47      </rule>
    48      <rule pattern="&amp;">
    49        <token type="Punctuation"/>
    50      </rule>
    51      <rule pattern="\|">
    52        <token type="Punctuation"/>
    53      </rule>
    54      <rule pattern="\s+">
    55        <token type="Text"/>
    56      </rule>
    57      <rule pattern="\d+(?= |$)">
    58        <token type="LiteralNumber"/>
    59      </rule>
    60      <rule pattern="[^=\s\[\]{}()$&#34;\&#39;`\\&lt;&amp;|;]+">
    61        <token type="Text"/>
    62      </rule>
    63      <rule pattern="&lt;">
    64        <token type="Text"/>
    65      </rule>
    66    </state>
    67    <state name="string">
    68      <rule pattern="&#34;">
    69        <token type="LiteralStringDouble"/>
    70        <pop depth="1"/>
    71      </rule>
    72      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
    73        <token type="LiteralStringDouble"/>
    74      </rule>
    75      <rule>
    76        <include state="interp"/>
    77      </rule>
    78    </state>
    79    <state name="interp">
    80      <rule pattern="\$\(\(">
    81        <token type="Keyword"/>
    82        <push state="math"/>
    83      </rule>
    84      <rule pattern="\$\(">
    85        <token type="Keyword"/>
    86        <push state="paren"/>
    87      </rule>
    88      <rule pattern="\$\{#?">
    89        <token type="LiteralStringInterpol"/>
    90        <push state="curly"/>
    91      </rule>
    92      <rule pattern="\$[a-zA-Z_]\w*">
    93        <token type="NameVariable"/>
    94      </rule>
    95      <rule pattern="\$(?:\d+|[#$?!_*@-])">
    96        <token type="NameVariable"/>
    97      </rule>
    98      <rule pattern="\$">
    99        <token type="Text"/>
   100      </rule>
   101    </state>
   102    <state name="paren">
   103      <rule pattern="\)">
   104        <token type="Keyword"/>
   105        <pop depth="1"/>
   106      </rule>
   107      <rule>
   108        <include state="root"/>
   109      </rule>
   110    </state>
   111    <state name="math">
   112      <rule pattern="\)\)">
   113        <token type="Keyword"/>
   114        <pop depth="1"/>
   115      </rule>
   116      <rule pattern="[-+*/%^|&amp;]|\*\*|\|\|">
   117        <token type="Operator"/>
   118      </rule>
   119      <rule pattern="\d+#\d+">
   120        <token type="LiteralNumber"/>
   121      </rule>
   122      <rule pattern="\d+#(?! )">
   123        <token type="LiteralNumber"/>
   124      </rule>
   125      <rule pattern="\d+">
   126        <token type="LiteralNumber"/>
   127      </rule>
   128      <rule>
   129        <include state="root"/>
   130      </rule>
   131    </state>
   132    <state name="backticks">
   133      <rule pattern="`">
   134        <token type="LiteralStringBacktick"/>
   135        <pop depth="1"/>
   136      </rule>
   137      <rule>
   138        <include state="root"/>
   139      </rule>
   140    </state>
   141    <state name="root">
   142      <rule>
   143        <include state="basic"/>
   144      </rule>
   145      <rule pattern="`">
   146        <token type="LiteralStringBacktick"/>
   147        <push state="backticks"/>
   148      </rule>
   149      <rule>
   150        <include state="data"/>
   151      </rule>
   152      <rule>
   153        <include state="interp"/>
   154      </rule>
   155    </state>
   156    <state name="basic">
   157      <rule pattern="\b(if|fi|else|while|do|done|for|then|return|function|case|select|continue|until|esac|elif)(\s*)\b">
   158        <bygroups>
   159          <token type="Keyword"/>
   160          <token type="Text"/>
   161        </bygroups>
   162      </rule>
   163      <rule pattern="\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|declare|dirs|disown|echo|enable|eval|exec|exit|export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|time|times|trap|true|type|typeset|ulimit|umask|unalias|unset|wait)(?=[\s)`])">
   164        <token type="NameBuiltin"/>
   165      </rule>
   166      <rule pattern="\A#!.+\n">
   167        <token type="CommentPreproc"/>
   168      </rule>
   169      <rule pattern="#.*(\S|$)">
   170        <token type="CommentSingle"/>
   171      </rule>
   172      <rule pattern="\\[\w\W]">
   173        <token type="LiteralStringEscape"/>
   174      </rule>
   175      <rule pattern="(\b\w+)(\s*)(\+?=)">
   176        <bygroups>
   177          <token type="NameVariable"/>
   178          <token type="Text"/>
   179          <token type="Operator"/>
   180        </bygroups>
   181      </rule>
   182      <rule pattern="[\[\]{}()=]">
   183        <token type="Operator"/>
   184      </rule>
   185      <rule pattern="&lt;&lt;&lt;">
   186        <token type="Operator"/>
   187      </rule>
   188      <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
   189        <token type="LiteralString"/>
   190      </rule>
   191      <rule pattern="&amp;&amp;|\|\|">
   192        <token type="Operator"/>
   193      </rule>
   194    </state>
   195    <state name="curly">
   196      <rule pattern="\}">
   197        <token type="LiteralStringInterpol"/>
   198        <pop depth="1"/>
   199      </rule>
   200      <rule pattern=":-">
   201        <token type="Keyword"/>
   202      </rule>
   203      <rule pattern="\w+">
   204        <token type="NameVariable"/>
   205      </rule>
   206      <rule pattern="[^}:&#34;\&#39;`$\\]+">
   207        <token type="Punctuation"/>
   208      </rule>
   209      <rule pattern=":">
   210        <token type="Punctuation"/>
   211      </rule>
   212      <rule>
   213        <include state="root"/>
   214      </rule>
   215    </state>
   216  </rules>
   217</lexer>

View as plain text