...

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

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

     1<lexer>
     2  <config>
     3    <name>Awk</name>
     4    <alias>awk</alias>
     5    <alias>gawk</alias>
     6    <alias>mawk</alias>
     7    <alias>nawk</alias>
     8    <filename>*.awk</filename>
     9    <mime_type>application/x-awk</mime_type>
    10  </config>
    11  <rules>
    12    <state name="root">
    13      <rule pattern="^(?=\s|/)">
    14        <token type="Text"/>
    15        <push state="slashstartsregex"/>
    16      </rule>
    17      <rule>
    18        <include state="commentsandwhitespace"/>
    19      </rule>
    20      <rule pattern="\+\+|--|\|\||&amp;&amp;|in\b|\$|!?~|\|&amp;|(\*\*|[-&lt;&gt;+*%\^/!=|])=?">
    21        <token type="Operator"/>
    22        <push state="slashstartsregex"/>
    23      </rule>
    24      <rule pattern="[{(\[;,]">
    25        <token type="Punctuation"/>
    26        <push state="slashstartsregex"/>
    27      </rule>
    28      <rule pattern="[})\].]">
    29        <token type="Punctuation"/>
    30      </rule>
    31      <rule pattern="(break|continue|do|while|exit|for|if|else|return|switch|case|default)\b">
    32        <token type="Keyword"/>
    33        <push state="slashstartsregex"/>
    34      </rule>
    35      <rule pattern="function\b">
    36        <token type="KeywordDeclaration"/>
    37        <push state="slashstartsregex"/>
    38      </rule>
    39      <rule pattern="(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|length|match|split|patsplit|sprintf|sub|substr|tolower|toupper|close|fflush|getline|next(file)|print|printf|strftime|systime|mktime|delete|system|strtonum|and|compl|lshift|or|rshift|asorti?|isarray|bindtextdomain|dcn?gettext|@(include|load|namespace))\b">
    40        <token type="KeywordReserved"/>
    41      </rule>
    42      <rule pattern="(ARGC|ARGIND|ARGV|BEGIN(FILE)?|BINMODE|CONVFMT|ENVIRON|END(FILE)?|ERRNO|FIELDWIDTHS|FILENAME|FNR|FPAT|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS|PROCINFO|RLENGTH|RS|RSTART|RT|SUBSEP|TEXTDOMAIN)\b">
    43        <token type="NameBuiltin"/>
    44      </rule>
    45      <rule pattern="[@$a-zA-Z_]\w*">
    46        <token type="NameOther"/>
    47      </rule>
    48      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
    49        <token type="LiteralNumberFloat"/>
    50      </rule>
    51      <rule pattern="0x[0-9a-fA-F]+">
    52        <token type="LiteralNumberHex"/>
    53      </rule>
    54      <rule pattern="[0-9]+">
    55        <token type="LiteralNumberInteger"/>
    56      </rule>
    57      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    58        <token type="LiteralStringDouble"/>
    59      </rule>
    60      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
    61        <token type="LiteralStringSingle"/>
    62      </rule>
    63    </state>
    64    <state name="commentsandwhitespace">
    65      <rule pattern="\s+">
    66        <token type="Text"/>
    67      </rule>
    68      <rule pattern="#.*$">
    69        <token type="CommentSingle"/>
    70      </rule>
    71    </state>
    72    <state name="slashstartsregex">
    73      <rule>
    74        <include state="commentsandwhitespace"/>
    75      </rule>
    76      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\B">
    77        <token type="LiteralStringRegex"/>
    78        <pop depth="1"/>
    79      </rule>
    80      <rule pattern="(?=/)">
    81        <token type="Text"/>
    82        <push state="#pop" state="badregex"/>
    83      </rule>
    84      <rule>
    85        <pop depth="1"/>
    86      </rule>
    87    </state>
    88    <state name="badregex">
    89      <rule pattern="\n">
    90        <token type="Text"/>
    91        <pop depth="1"/>
    92      </rule>
    93    </state>
    94  </rules>
    95</lexer>

View as plain text