...

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

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

     1<lexer>
     2  <config>
     3    <name>Lua</name>
     4    <alias>lua</alias>
     5    <filename>*.lua</filename>
     6    <filename>*.wlua</filename>
     7    <mime_type>text/x-lua</mime_type>
     8    <mime_type>application/x-lua</mime_type>
     9  </config>
    10  <rules>
    11    <state name="funcname">
    12      <rule>
    13        <include state="ws"/>
    14      </rule>
    15      <rule pattern="[.:]">
    16        <token type="Punctuation"/>
    17      </rule>
    18      <rule pattern="(?:[^\W\d]\w*)(?=(?:(?:--\[(=*)\[[\w\W]*?\](\2)\])|(?:--.*$)|(?:\s+))*[.:])">
    19        <token type="NameClass"/>
    20      </rule>
    21      <rule pattern="(?:[^\W\d]\w*)">
    22        <token type="NameFunction"/>
    23        <pop depth="1"/>
    24      </rule>
    25      <rule pattern="\(">
    26        <token type="Punctuation"/>
    27        <pop depth="1"/>
    28      </rule>
    29    </state>
    30    <state name="label">
    31      <rule>
    32        <include state="ws"/>
    33      </rule>
    34      <rule pattern="::">
    35        <token type="Punctuation"/>
    36        <pop depth="1"/>
    37      </rule>
    38      <rule pattern="(?:[^\W\d]\w*)">
    39        <token type="NameLabel"/>
    40      </rule>
    41    </state>
    42    <state name="dqs">
    43      <rule pattern="&#34;">
    44        <token type="LiteralStringDouble"/>
    45        <pop depth="1"/>
    46      </rule>
    47      <rule pattern="[^\\&#34;]+">
    48        <token type="LiteralStringDouble"/>
    49      </rule>
    50    </state>
    51    <state name="root">
    52      <rule pattern="#!.*">
    53        <token type="CommentPreproc"/>
    54      </rule>
    55      <rule>
    56        <push state="base"/>
    57      </rule>
    58    </state>
    59    <state name="ws">
    60      <rule pattern="(?:--\[(=*)\[[\w\W]*?\](\1)\])">
    61        <token type="CommentMultiline"/>
    62      </rule>
    63      <rule pattern="(?:--.*$)">
    64        <token type="CommentSingle"/>
    65      </rule>
    66      <rule pattern="(?:\s+)">
    67        <token type="Text"/>
    68      </rule>
    69    </state>
    70    <state name="goto">
    71      <rule>
    72        <include state="ws"/>
    73      </rule>
    74      <rule pattern="(?:[^\W\d]\w*)">
    75        <token type="NameLabel"/>
    76        <pop depth="1"/>
    77      </rule>
    78    </state>
    79    <state name="sqs">
    80      <rule pattern="&#39;">
    81        <token type="LiteralStringSingle"/>
    82        <pop depth="1"/>
    83      </rule>
    84      <rule pattern="[^\\&#39;]+">
    85        <token type="LiteralStringSingle"/>
    86      </rule>
    87    </state>
    88    <state name="base">
    89      <rule>
    90        <include state="ws"/>
    91      </rule>
    92      <rule pattern="(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?">
    93        <token type="LiteralNumberHex"/>
    94      </rule>
    95      <rule pattern="(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?">
    96        <token type="LiteralNumberFloat"/>
    97      </rule>
    98      <rule pattern="(?i)\d+e[+-]?\d+">
    99        <token type="LiteralNumberFloat"/>
   100      </rule>
   101      <rule pattern="\d+">
   102        <token type="LiteralNumberInteger"/>
   103      </rule>
   104      <rule pattern="(?s)\[(=*)\[.*?\]\1\]">
   105        <token type="LiteralString"/>
   106      </rule>
   107      <rule pattern="::">
   108        <token type="Punctuation"/>
   109        <push state="label"/>
   110      </rule>
   111      <rule pattern="\.{3}">
   112        <token type="Punctuation"/>
   113      </rule>
   114      <rule pattern="[=&lt;&gt;|~&amp;+\-*/%#^]+|\.\.">
   115        <token type="Operator"/>
   116      </rule>
   117      <rule pattern="[\[\]{}().,:;]">
   118        <token type="Punctuation"/>
   119      </rule>
   120      <rule pattern="(and|or|not)\b">
   121        <token type="OperatorWord"/>
   122      </rule>
   123      <rule pattern="(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b">
   124        <token type="KeywordReserved"/>
   125      </rule>
   126      <rule pattern="goto\b">
   127        <token type="KeywordReserved"/>
   128        <push state="goto"/>
   129      </rule>
   130      <rule pattern="(local)\b">
   131        <token type="KeywordDeclaration"/>
   132      </rule>
   133      <rule pattern="(true|false|nil)\b">
   134        <token type="KeywordConstant"/>
   135      </rule>
   136      <rule pattern="(function)\b">
   137        <token type="KeywordReserved"/>
   138        <push state="funcname"/>
   139      </rule>
   140      <rule pattern="[A-Za-z_]\w*(\.[A-Za-z_]\w*)?">
   141        <token type="Name"/>
   142      </rule>
   143      <rule pattern="&#39;">
   144        <token type="LiteralStringSingle"/>
   145        <combined state="stringescape" state="sqs"/>
   146      </rule>
   147      <rule pattern="&#34;">
   148        <token type="LiteralStringDouble"/>
   149        <combined state="stringescape" state="dqs"/>
   150      </rule>
   151    </state>
   152    <state name="stringescape">
   153      <rule pattern="\\([abfnrtv\\&#34;\&#39;]|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|u\{[0-9a-fA-F]+\})">
   154        <token type="LiteralStringEscape"/>
   155      </rule>
   156    </state>
   157  </rules>
   158</lexer>

View as plain text