...

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

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

     1<lexer>
     2  <config>
     3    <name>PL/pgSQL</name>
     4    <alias>plpgsql</alias>
     5    <mime_type>text/x-plpgsql</mime_type>
     6    <case_insensitive>true</case_insensitive>
     7    <not_multiline>true</not_multiline>
     8  </config>
     9  <rules>
    10    <state name="root">
    11      <rule pattern="\%[a-z]\w*\b">
    12        <token type="NameBuiltin"/>
    13      </rule>
    14      <rule pattern=":=">
    15        <token type="Operator"/>
    16      </rule>
    17      <rule pattern="\&lt;\&lt;[a-z]\w*\&gt;\&gt;">
    18        <token type="NameLabel"/>
    19      </rule>
    20      <rule pattern="\#[a-z]\w*\b">
    21        <token type="KeywordPseudo"/>
    22      </rule>
    23      <rule pattern="\s+">
    24        <token type="TextWhitespace"/>
    25      </rule>
    26      <rule pattern="--.*\n?">
    27        <token type="CommentSingle"/>
    28      </rule>
    29      <rule pattern="/\*">
    30        <token type="CommentMultiline"/>
    31        <push state="multiline-comments"/>
    32      </rule>
    33      <rule pattern="(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b">
    34        <token type="NameBuiltin"/>
    35      </rule>
    36      <rule pattern="(CURRENT_TIMESTAMP|CHARACTERISTICS|CURRENT_CATALOG|CURRENT_SCHEMA|LOCALTIMESTAMP|XMLATTRIBUTES|AUTHORIZATION|CONFIGURATION|CURRENT_TIME|CURRENT_ROLE|CURRENT_USER|CURRENT_DATE|MATERIALIZED|SESSION_USER|SERIALIZABLE|CONCURRENTLY|XMLSERIALIZE|DIAGNOSTICS|UNCOMMITTED|UNENCRYPTED|TRANSACTION|INSENSITIVE|CONSTRAINTS|CONVERSION|ORDINALITY|LC_COLLATE|DEALLOCATE|CONSTRAINT|CONNECTION|PRIVILEGES|PROCEDURAL|STANDALONE|DICTIONARY|XMLELEMENT|STATISTICS|DEFERRABLE|DELIMITERS|REPEATABLE|TABLESPACE|REFERENCES|CHECKPOINT|WHITESPACE|ASYMMETRIC|ASSIGNMENT|CHARACTER|INCLUDING|SYMMETRIC|IMMUTABLE|IMMEDIATE|XMLCONCAT|INTERSECT|ISOLATION|DELIMITER|COLLATION|TIMESTAMP|INCREMENT|ENCRYPTED|PROCEDURE|COMMITTED|SUBSTRING|EXCEPTION|VALIDATOR|UNBOUNDED|PARTITION|ATTRIBUTE|INITIALLY|EXCLUSIVE|SAVEPOINT|XMLEXISTS|ASSERTION|EXTENSION|STATEMENT|RETURNING|LEAKPROOF|RECURSIVE|FUNCTIONS|AGGREGATE|LOCALTIME|FOLLOWING|PRECEDING|PRECISION|SEQUENCES|XMLFOREST|TEMPORARY|EXCLUDING|DATABASE|XMLPARSE|CONTINUE|INHERITS|UNLOGGED|DEFAULTS|COMMENTS|DEFERRED|MINVALUE|TRAILING|VARIADIC|COALESCE|INTERVAL|OVERLAPS|MAXVALUE|IMPLICIT|DISTINCT|VOLATILE|DOCUMENT|SMALLINT|OPERATOR|SEQUENCE|CONSTANT|CASCADED|IDENTITY|ENCODING|SNAPSHOT|TRUNCATE|ROLLBACK|PREPARED|LANGUAGE|UNLISTEN|TEMPLATE|BACKWARD|VALIDATE|NATIONAL|REASSIGN|GREATEST|LC_CTYPE|EXTERNAL|PASSWORD|SECURITY|LOCATION|PRESERVE|FUNCTION|RELATIVE|POSITION|SQLSTATE|ABSOLUTE|RESTRICT|BOOLEAN|FORWARD|UNKNOWN|FOREIGN|RECHECK|NOTHING|NOTNULL|EXTRACT|NATURAL|GRANTED|EXPLAIN|EXECUTE|HANDLER|EXCLUDE|NUMERIC|TRUSTED|VERSION|TRIGGER|VERBOSE|WITHOUT|WRAPPER|OPTIONS|DISCARD|VARYING|DISABLE|DEFINER|DEFAULT|INDEXES|PRIMARY|DECLARE|DECIMAL|PROGRAM|RETURNS|CURRENT|XMLROOT|CONTENT|COMMENT|INSTEAD|COLLATE|INTEGER|CLUSTER|SESSION|VARCHAR|INVOKER|CATALOG|CASCADE|OVERLAY|RESTART|BETWEEN|REPLICA|PARTIAL|REPLACE|FOREACH|LATERAL|PASSING|PERFORM|LEADING|ANALYZE|ANALYSE|SIMILAR|REFRESH|MAPPING|RELEASE|PLACING|REVERSE|REINDEX|STORAGE|INHERIT|PREPARE|UPDATE|VACUUM|RENAME|ISNULL|VALUES|MINUTE|INSERT|INLINE|SCROLL|REVOKE|HEADER|HAVING|TABLES|SYSTEM|GLOBAL|FREEZE|UNIQUE|SCHEMA|SEARCH|FILTER|NOTIFY|SECOND|NOWAIT|FAMILY|NULLIF|EXISTS|EXCEPT|OBJECT|SELECT|ESCAPE|OFFSET|WINDOW|WITHIN|ENABLE|DOUBLE|OPTION|DOMAIN|DELETE|CURSOR|CREATE|SERVER|COMMIT|COLUMN|SIMPLE|CALLED|BINARY|BIGINT|PARSER|STABLE|BEFORE|NOTICE|ALWAYS|STDOUT|RETURN|POLICY|STRICT|ACTION|ACCESS|LISTEN|ABORT|PLANS|MONTH|PRIOR|OWNER|OWNED|OUTER|ORDER|QUOTE|RANGE|TREAT|TYPES|NULLS|UNION|NCHAR|NAMES|UNTIL|MATCH|LOCAL|USING|LIMIT|LEVEL|LEAST|LARGE|LABEL|RESET|VALUE|INPUT|INOUT|INNER|INDEX|RIGHT|ILIKE|VIEWS|GROUP|TABLE|GRANT|WHERE|FORCE|FLOAT|FIRST|FETCH|FALSE|EVENT|WRITE|CYCLE|CROSS|XMLPI|CLOSE|CLASS|SYSID|SETOF|SHARE|CHECK|WHILE|CHAIN|ALIAS|CACHE|ELSIF|BEGIN|ARRAY|START|QUERY|RAISE|STDIN|ALTER|AFTER|ADMIN|STRIP|VALID|WORK|ALSO|RULE|ROWS|OPEN|ROLE|TEMP|LOOP|REAL|TEXT|THEN|TIME|READ|SOME|OVER|EXIT|BOTH|ONLY|TRIM|TRUE|CASE|OIDS|TYPE|CAST|ZONE|NULL|YEAR|NONE|CHAR|NEXT|NAME|MOVE|MODE|LOCK|USER|LOAD|LIKE|LEFT|LAST|COST|JOIN|DATA|INTO|DESC|DROP|ELSE|HOUR|VIEW|HOLD|FULL|WHEN|FROM|EACH|ENUM|WITH|SHOW|COPY|OUT|FOR|ADD|XML|ALL|INT|DEC|DAY|SET|CSV|KEY|AND|ANY|NOT|YES|ROW|END|ASC|REF|GET|BIT|OFF|TO|OR|BY|ON|OF|AS|NO|AT|IS|DO|IN|IF)\b">
    37        <token type="Keyword"/>
    38      </rule>
    39      <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]+">
    40        <token type="Operator"/>
    41      </rule>
    42      <rule pattern="::">
    43        <token type="Operator"/>
    44      </rule>
    45      <rule pattern="\$\d+">
    46        <token type="NameVariable"/>
    47      </rule>
    48      <rule pattern="([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?">
    49        <token type="LiteralNumberFloat"/>
    50      </rule>
    51      <rule pattern="[0-9]+">
    52        <token type="LiteralNumberInteger"/>
    53      </rule>
    54      <rule pattern="((?:E|U&amp;)?)(&#39;)">
    55        <bygroups>
    56          <token type="LiteralStringAffix"/>
    57          <token type="LiteralStringSingle"/>
    58        </bygroups>
    59        <push state="string"/>
    60      </rule>
    61      <rule pattern="((?:U&amp;)?)(&#34;)">
    62        <bygroups>
    63          <token type="LiteralStringAffix"/>
    64          <token type="LiteralStringName"/>
    65        </bygroups>
    66        <push state="quoted-ident"/>
    67      </rule>
    68      <rule pattern="[a-z_]\w*">
    69        <token type="Name"/>
    70      </rule>
    71      <rule pattern=":([&#39;&#34;]?)[a-z]\w*\b\1">
    72        <token type="NameVariable"/>
    73      </rule>
    74      <rule pattern="[;:()\[\]{},.]">
    75        <token type="Punctuation"/>
    76      </rule>
    77    </state>
    78    <state name="multiline-comments">
    79      <rule pattern="/\*">
    80        <token type="CommentMultiline"/>
    81        <push state="multiline-comments"/>
    82      </rule>
    83      <rule pattern="\*/">
    84        <token type="CommentMultiline"/>
    85        <pop depth="1"/>
    86      </rule>
    87      <rule pattern="[^/*]+">
    88        <token type="CommentMultiline"/>
    89      </rule>
    90      <rule pattern="[/*]">
    91        <token type="CommentMultiline"/>
    92      </rule>
    93    </state>
    94    <state name="string">
    95      <rule pattern="[^&#39;]+">
    96        <token type="LiteralStringSingle"/>
    97      </rule>
    98      <rule pattern="&#39;&#39;">
    99        <token type="LiteralStringSingle"/>
   100      </rule>
   101      <rule pattern="&#39;">
   102        <token type="LiteralStringSingle"/>
   103        <pop depth="1"/>
   104      </rule>
   105    </state>
   106    <state name="quoted-ident">
   107      <rule pattern="[^&#34;]+">
   108        <token type="LiteralStringName"/>
   109      </rule>
   110      <rule pattern="&#34;&#34;">
   111        <token type="LiteralStringName"/>
   112      </rule>
   113      <rule pattern="&#34;">
   114        <token type="LiteralStringName"/>
   115        <pop depth="1"/>
   116      </rule>
   117    </state>
   118  </rules>
   119</lexer>

View as plain text