...

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

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

     1<lexer>
     2  <config>
     3    <name>ArangoDB AQL</name>
     4    <alias>aql</alias>
     5    <filename>*.aql</filename>
     6    <mime_type>text/x-aql</mime_type>
     7    <dot_all>true</dot_all>
     8    <ensure_nl>true</ensure_nl>
     9    <case_insensitive>true</case_insensitive>
    10  </config>
    11  <rules>
    12    <state name="comments-and-whitespace">
    13      <rule pattern="\s+">
    14        <token type="Text"/>
    15      </rule>
    16      <rule pattern="//.*?\n">
    17        <token type="CommentSingle"/>
    18      </rule>
    19      <rule pattern="/\*">
    20        <token type="CommentMultiline"/>
    21        <push state="multiline-comment"/>
    22      </rule>
    23    </state>
    24    <state name="multiline-comment">
    25      <rule pattern="[^*]+">
    26        <token type="CommentMultiline"/>
    27      </rule>
    28      <rule pattern="\*/">
    29        <token type="CommentMultiline"/>
    30        <pop depth="1"/>
    31      </rule>
    32      <rule pattern="\*">
    33        <token type="CommentMultiline"/>
    34      </rule>
    35    </state>
    36    <state name="double-quote">
    37      <rule pattern="\\.">
    38        <token type="LiteralStringDouble"/>
    39      </rule>
    40      <rule pattern="[^&quot;\\]+">
    41        <token type="LiteralStringDouble"/>
    42      </rule>
    43      <rule pattern="&quot;">
    44        <token type="LiteralStringDouble"/>
    45        <pop depth="1"/>
    46      </rule>
    47    </state>
    48    <state name="single-quote">
    49      <rule pattern="\\.">
    50        <token type="LiteralStringSingle"/>
    51      </rule>
    52      <rule pattern="[^'\\]+">
    53        <token type="LiteralStringSingle"/>
    54      </rule>
    55      <rule pattern="'">
    56        <token type="LiteralStringSingle"/>
    57        <pop depth="1"/>
    58      </rule>
    59    </state>
    60    <state name="backtick">
    61      <rule pattern="\\.">
    62        <token type="Name"/>
    63      </rule>
    64      <rule pattern="[^`\\]+">
    65        <token type="Name"/>
    66      </rule>
    67      <rule pattern="`">
    68        <token type="Name"/>
    69        <pop depth="1"/>
    70      </rule>
    71    </state>
    72    <state name="forwardtick">
    73      <rule pattern="\\.">
    74        <token type="Name"/>
    75      </rule>
    76      <rule pattern="[^´\\]+">
    77        <token type="Name"/>
    78      </rule>
    79      <rule pattern="´">
    80        <token type="Name"/>
    81        <pop depth="1"/>
    82      </rule>
    83    </state>
    84    <state name="identifier">
    85      <rule pattern="(?:\$?|_+)[a-z]+[_a-z0-9]*">
    86        <token type="Name"/>
    87      </rule>
    88      <rule pattern="`">
    89        <token type="Name"/>
    90        <push state="backtick"/>
    91      </rule>
    92      <rule pattern="´">
    93        <token type="Name"/>
    94        <push state="forwardtick"/>
    95      </rule>
    96    </state>
    97    <state name="root">
    98      <rule>
    99        <include state="comments-and-whitespace"/>
   100      </rule>
   101      <rule pattern="0b[01]+">
   102        <token type="LiteralNumberBin"/>
   103      </rule>
   104      <rule pattern="0x[0-9a-f]+">
   105        <token type="LiteralNumberHex"/>
   106      </rule>
   107      <rule pattern="(?:0|[1-9][0-9]*)(?![\.e])">
   108        <token type="LiteralNumberInteger"/>
   109      </rule>
   110      <rule pattern="(?:(?:0|[1-9][0-9]*)(?:\.[0-9]+)?|\.[0-9]+)(?:e[\-\+]?[0-9]+)?">
   111        <token type="LiteralNumberFloat"/>
   112      </rule>
   113      <rule pattern="@@(?:_+[a-z0-9]+[a-z0-9_]*|[a-z0-9][a-z0-9_]*)">
   114        <token type="NameVariableGlobal"/>
   115      </rule>
   116      <rule pattern="@(?:_+[a-z0-9]+[a-z0-9_]*|[a-z0-9][a-z0-9_]*)">
   117        <token type="NameVariable"/>
   118      </rule>
   119      <rule pattern="=~|!~|[=!&lt;&gt;]=?|[%?:/*+-]|\.\.|&amp;&amp;|\|\|">
   120        <token type="Operator"/>
   121      </rule>
   122      <rule pattern="[.,(){}\[\]]">
   123        <token type="Punctuation"/>
   124      </rule>
   125      <rule pattern="[a-zA-Z0-9][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)+(?=\s*\()">
   126        <token type="NameFunction"/>
   127      </rule>
   128      <rule pattern="(WITH)(\s+)(COUNT)(\s+)(INTO)\b">
   129        <bygroups>
   130          <token type="KeywordReserved"/>
   131          <token type="Text"/>
   132          <token type="KeywordPseudo"/>
   133          <token type="Text"/>
   134          <token type="KeywordReserved"/>
   135        </bygroups>
   136      </rule>
   137      <rule pattern="(?:KEEP|PRUNE|SEARCH|TO)\b">
   138        <token type="KeywordPseudo"/>
   139      </rule>
   140      <rule pattern="OPTIONS(?=\s*\{)">
   141        <token type="KeywordPseudo"/>
   142      </rule>
   143      <rule pattern="(?:AGGREGATE|ALL|ALL_SHORTEST_PATHS|AND|ANY|ASC|AT LEAST|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LIKE|LIMIT|NONE|NOT|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WITH|WINDOW)\b">
   144        <token type="KeywordReserved"/>
   145      </rule>
   146      <rule pattern="LET\b">
   147        <token type="KeywordDeclaration"/>
   148      </rule>
   149      <rule pattern="(?:true|false|null)\b">
   150        <token type="KeywordConstant"/>
   151      </rule>
   152      <rule pattern="(?-i)(?:CURRENT|NEW|OLD)\b">
   153        <token type="NameBuiltinPseudo"/>
   154      </rule>
   155      <rule pattern="(?:to_bool|to_number|to_string|to_array|to_list|is_null|is_bool|is_number|is_string|is_array|is_list|is_object|is_document|is_datestring|typename|json_stringify|json_parse|concat|concat_separator|char_length|lower|upper|substring|substring_bytes|left|right|trim|reverse|contains|log|log2|log10|exp|exp2|sin|cos|tan|asin|acos|atan|atan2|radians|degrees|pi|regex_test|regex_replace|like|floor|ceil|round|abs|rand|sqrt|pow|length|count|min|max|average|avg|sum|product|median|variance_population|variance_sample|variance|percentile|bit_and|bit_or|bit_xor|bit_negate|bit_test|bit_popcount|bit_shift_left|bit_shift_right|bit_construct|bit_deconstruct|bit_to_string|bit_from_string|first|last|unique|outersection|interleave|in_range|jaccard|matches|merge|merge_recursive|has|attributes|keys|values|unset|unset_recursive|keep|keep_recursive|near|within|within_rectangle|is_in_polygon|distance|fulltext|stddev_sample|stddev_population|stddev|slice|nth|position|contains_array|translate|zip|call|apply|push|append|pop|shift|unshift|remove_value|remove_values|remove_nth|replace_nth|date_now|date_timestamp|date_iso8601|date_dayofweek|date_year|date_month|date_day|date_hour|date_minute|date_second|date_millisecond|date_dayofyear|date_isoweek|date_isoweekyear|date_leapyear|date_quarter|date_days_in_month|date_trunc|date_round|date_add|date_subtract|date_diff|date_compare|date_format|date_utctolocal|date_localtoutc|date_timezone|date_timezones|fail|passthru|v8|sleep|schema_get|schema_validate|shard_id|version|noopt|noeval|not_null|first_list|first_document|parse_identifier|current_user|current_database|collection_count|pregel_result|collections|document|decode_rev|range|union|union_distinct|minus|intersection|flatten|is_same_collection|check_document|ltrim|rtrim|find_first|find_last|split|substitute|ipv4_to_number|ipv4_from_number|is_ipv4|md5|sha1|sha256|sha512|crc32|fnv64|hash|random_token|to_base64|to_hex|encode_uri_component|soundex|assert|warn|is_key|sorted|sorted_unique|count_distinct|count_unique|levenshtein_distance|levenshtein_match|regex_matches|regex_split|ngram_match|ngram_similarity|ngram_positional_similarity|uuid|tokens|exists|starts_with|phrase|min_match|bm25|tfidf|boost|analyzer|offset_info|value|cosine_similarity|decay_exp|decay_gauss|decay_linear|l1_distance|l2_distance|minhash|minhash_count|minhash_error|minhash_match|geo_point|geo_multipoint|geo_polygon|geo_multipolygon|geo_linestring|geo_multilinestring|geo_contains|geo_intersects|geo_equals|geo_distance|geo_area|geo_in_range)(?=\s*\()">
   156        <token type="NameFunction"/>
   157      </rule>
   158      <rule pattern="&quot;">
   159        <token type="LiteralStringDouble"/>
   160        <push state="double-quote"/>
   161      </rule>
   162      <rule pattern="'">
   163        <token type="LiteralStringSingle"/>
   164        <push state="single-quote"/>
   165      </rule>
   166      <!-- not part of the language but useful for highlighting query explain outputs -->
   167      <rule pattern="#\d+\b">
   168        <token type="NameLabel"/>
   169      </rule>
   170      <rule>
   171        <include state="identifier"/>
   172      </rule>
   173    </state>
   174  </rules>
   175</lexer>

View as plain text