...

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

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

     1<lexer>
     2  <config>
     3    <name>MonkeyC</name>
     4    <alias>monkeyc</alias>
     5    <filename>*.mc</filename>
     6    <mime_type>text/x-monkeyc</mime_type>
     7  </config>
     8  <rules>
     9    <state name="class">
    10      <rule pattern="([a-zA-Z_][\w_\.]*)(?:(\s+)(extends)(\s+)([a-zA-Z_][\w_\.]*))?">
    11        <bygroups>
    12          <token type="NameClass"/>
    13          <token type="Text"/>
    14          <token type="KeywordDeclaration"/>
    15          <token type="Text"/>
    16          <token type="NameClass"/>
    17        </bygroups>
    18      </rule>
    19      <rule>
    20        <pop depth="1"/>
    21      </rule>
    22    </state>
    23    <state name="function">
    24      <rule pattern="initialize">
    25        <token type="NameFunctionMagic"/>
    26      </rule>
    27      <rule pattern="[a-zA-Z_][\w_\.]*">
    28        <token type="NameFunction"/>
    29      </rule>
    30      <rule>
    31        <pop depth="1"/>
    32      </rule>
    33    </state>
    34    <state name="module">
    35      <rule pattern="[a-zA-Z_][\w_\.]*">
    36        <token type="NameNamespace"/>
    37      </rule>
    38      <rule>
    39        <pop depth="1"/>
    40      </rule>
    41    </state>
    42    <state name="root">
    43      <rule pattern="[^\S\n]+">
    44        <token type="Text"/>
    45      </rule>
    46      <rule pattern="\n">
    47        <token type="Text"/>
    48      </rule>
    49      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
    50        <token type="CommentSingle"/>
    51      </rule>
    52      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
    53        <token type="CommentMultiline"/>
    54      </rule>
    55      <rule pattern="/(\\\n)?[*][\w\W]*">
    56        <token type="CommentMultiline"/>
    57      </rule>
    58      <rule pattern=":[a-zA-Z_][\w_\.]*">
    59        <token type="LiteralStringSymbol"/>
    60      </rule>
    61      <rule pattern="[{}\[\]\(\),;:\.]">
    62        <token type="Punctuation"/>
    63      </rule>
    64      <rule pattern="[&amp;~\|\^!+\-*\/%=?]">
    65        <token type="Operator"/>
    66      </rule>
    67      <rule pattern="=&gt;|[+-]=|&amp;&amp;|\|\||&gt;&gt;|&lt;&lt;|[&lt;&gt;]=?|[!=]=">
    68        <token type="Operator"/>
    69      </rule>
    70      <rule pattern="\b(and|or|instanceof|has|extends|new)">
    71        <token type="OperatorWord"/>
    72      </rule>
    73      <rule pattern="(false|null|true|NaN)\b">
    74        <token type="KeywordConstant"/>
    75      </rule>
    76      <rule pattern="(using)((?:\s|\\\\s)+)">
    77        <bygroups>
    78          <token type="KeywordNamespace"/>
    79          <token type="Text"/>
    80        </bygroups>
    81        <push state="import"/>
    82      </rule>
    83      <rule pattern="(class)((?:\s|\\\\s)+)">
    84        <bygroups>
    85          <token type="KeywordDeclaration"/>
    86          <token type="Text"/>
    87        </bygroups>
    88        <push state="class"/>
    89      </rule>
    90      <rule pattern="(function)((?:\s|\\\\s)+)">
    91        <bygroups>
    92          <token type="KeywordDeclaration"/>
    93          <token type="Text"/>
    94        </bygroups>
    95        <push state="function"/>
    96      </rule>
    97      <rule pattern="(module)((?:\s|\\\\s)+)">
    98        <bygroups>
    99          <token type="KeywordDeclaration"/>
   100          <token type="Text"/>
   101        </bygroups>
   102        <push state="module"/>
   103      </rule>
   104      <rule pattern="\b(if|else|for|switch|case|while|break|continue|default|do|try|catch|finally|return|throw|extends|function)\b">
   105        <token type="Keyword"/>
   106      </rule>
   107      <rule pattern="\b(const|enum|hidden|public|protected|private|static)\b">
   108        <token type="KeywordType"/>
   109      </rule>
   110      <rule pattern="\bvar\b">
   111        <token type="KeywordDeclaration"/>
   112      </rule>
   113      <rule pattern="\b(Activity(Monitor|Recording)?|Ant(Plus)?|Application|Attention|Background|Communications|Cryptography|FitContributor|Graphics|Gregorian|Lang|Math|Media|Persisted(Content|Locations)|Position|Properties|Sensor(History|Logging)?|Storage|StringUtil|System|Test|Time(r)?|Toybox|UserProfile|WatchUi|Rez|Drawables|Strings|Fonts|method)\b">
   114        <token type="NameBuiltin"/>
   115      </rule>
   116      <rule pattern="\b(me|self|\$)\b">
   117        <token type="NameBuiltinPseudo"/>
   118      </rule>
   119      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
   120        <token type="LiteralStringDouble"/>
   121      </rule>
   122      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;&#39;])*&#39;">
   123        <token type="LiteralStringSingle"/>
   124      </rule>
   125      <rule pattern="-?(0x[0-9a-fA-F]+l?)">
   126        <token type="LiteralNumberHex"/>
   127      </rule>
   128      <rule pattern="-?([0-9]+(\.[0-9]+[df]?|[df]))\b">
   129        <token type="LiteralNumberFloat"/>
   130      </rule>
   131      <rule pattern="-?([0-9]+l?)">
   132        <token type="LiteralNumberInteger"/>
   133      </rule>
   134      <rule pattern="[a-zA-Z_]\w*">
   135        <token type="Name"/>
   136      </rule>
   137    </state>
   138    <state name="import">
   139      <rule pattern="([a-zA-Z_][\w_\.]*)(?:(\s+)(as)(\s+)([a-zA-Z_][\w_]*))?">
   140        <bygroups>
   141          <token type="NameNamespace"/>
   142          <token type="Text"/>
   143          <token type="KeywordNamespace"/>
   144          <token type="Text"/>
   145          <token type="NameNamespace"/>
   146        </bygroups>
   147      </rule>
   148      <rule>
   149        <pop depth="1"/>
   150      </rule>
   151    </state>
   152  </rules>
   153</lexer>

View as plain text