...

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

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

     1<lexer>
     2  <config>
     3    <name>Snobol</name>
     4    <alias>snobol</alias>
     5    <filename>*.snobol</filename>
     6    <mime_type>text/x-snobol</mime_type>
     7  </config>
     8  <rules>
     9    <state name="heredoc">
    10      <rule pattern=".*\n">
    11        <token type="LiteralStringHeredoc"/>
    12      </rule>
    13    </state>
    14    <state name="root">
    15      <rule pattern="\*.*\n">
    16        <token type="Comment"/>
    17      </rule>
    18      <rule pattern="[+.] ">
    19        <token type="Punctuation"/>
    20        <push state="statement"/>
    21      </rule>
    22      <rule pattern="-.*\n">
    23        <token type="Comment"/>
    24      </rule>
    25      <rule pattern="END\s*\n">
    26        <token type="NameLabel"/>
    27        <push state="heredoc"/>
    28      </rule>
    29      <rule pattern="[A-Za-z$][\w$]*">
    30        <token type="NameLabel"/>
    31        <push state="statement"/>
    32      </rule>
    33      <rule pattern="\s+">
    34        <token type="Text"/>
    35        <push state="statement"/>
    36      </rule>
    37    </state>
    38    <state name="statement">
    39      <rule pattern="\s*\n">
    40        <token type="Text"/>
    41        <pop depth="1"/>
    42      </rule>
    43      <rule pattern="\s+">
    44        <token type="Text"/>
    45      </rule>
    46      <rule pattern="(?&lt;=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])">
    47        <token type="NameBuiltin"/>
    48      </rule>
    49      <rule pattern="[A-Za-z][\w.]*">
    50        <token type="Name"/>
    51      </rule>
    52      <rule pattern="\*\*|[?$.!%*/#+\-@|&amp;\\=]">
    53        <token type="Operator"/>
    54      </rule>
    55      <rule pattern="&#34;[^&#34;]*&#34;">
    56        <token type="LiteralString"/>
    57      </rule>
    58      <rule pattern="&#39;[^&#39;]*&#39;">
    59        <token type="LiteralString"/>
    60      </rule>
    61      <rule pattern="[0-9]+(?=[^.EeDd])">
    62        <token type="LiteralNumberInteger"/>
    63      </rule>
    64      <rule pattern="[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?">
    65        <token type="LiteralNumberFloat"/>
    66      </rule>
    67      <rule pattern=":">
    68        <token type="Punctuation"/>
    69        <push state="goto"/>
    70      </rule>
    71      <rule pattern="[()&lt;&gt;,;]">
    72        <token type="Punctuation"/>
    73      </rule>
    74    </state>
    75    <state name="goto">
    76      <rule pattern="\s*\n">
    77        <token type="Text"/>
    78        <pop depth="2"/>
    79      </rule>
    80      <rule pattern="\s+">
    81        <token type="Text"/>
    82      </rule>
    83      <rule pattern="F|S">
    84        <token type="Keyword"/>
    85      </rule>
    86      <rule pattern="(\()([A-Za-z][\w.]*)(\))">
    87        <bygroups>
    88          <token type="Punctuation"/>
    89          <token type="NameLabel"/>
    90          <token type="Punctuation"/>
    91        </bygroups>
    92      </rule>
    93    </state>
    94  </rules>
    95</lexer>

View as plain text