You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kate/data/sql-postgresql.xml

826 lines
25 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- PostgreSQL SQL, syntax definition based on sql.xml by Yury Lebedev
v5 fix comments by Gene Thomas <gene@genethomas.com>
-->
<language name="SQL (PostgreSQL)" version="6" kateversion="2.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">
<highlighting>
<list name="keywords">
<item>ABORT</item>
<item>ACCESS</item>
<item>ACTION</item>
<item>ADD</item>
<item>ADMIN</item>
<item>AFTER</item>
<item>AGGREGATE</item>
<item>ALIAS</item>
<item>ALL</item>
<item>ALLOCATE</item>
<item>ALTER</item>
<item>ANALYSE</item>
<item>ANALYZE</item>
<item>ANY</item>
<item>ARE</item>
<item>AS</item>
<item>ASC</item>
<item>ASENSITIVE</item>
<item>ASSERTION</item>
<item>ASSIGNMENT</item>
<item>ASYMMETRIC</item>
<item>AT</item>
<item>ATOMIC</item>
<item>ATTACH</item>
<item>AUTHORIZATION</item>
<item>BACKWARD</item>
<item>BEFORE</item>
<item>BEGIN</item>
<item>BETWEEN</item>
<item>BINARY</item>
<item>BOTH</item>
<item>BREADTH</item>
<item>BY</item>
<item>C</item>
<item>CACHE</item>
<item>CALL</item>
<item>CALLED</item>
<item>CARDINALITY</item>
<item>CASCADE</item>
<item>CASCADED</item>
<item>CASE</item>
<item>CAST</item>
<item>CATALOG</item>
<item>CATALOG_NAME</item>
<item>CHAIN</item>
<item>CHARACTERISTICS</item>
<item>CHARACTER_LENGTH</item>
<item>CHARACTER_SET_CATALOG</item>
<item>CHARACTER_SET_NAME</item>
<item>CHARACTER_SET_SCHEMA</item>
<item>CHAR_LENGTH</item>
<item>CHECK</item>
<item>CHECKED</item>
<item>CHECKPOINT</item>
<item>CLASS</item>
<item>CLASS_ORIGIN</item>
<item>CLOB</item>
<item>CLOSE</item>
<item>CLUSTER</item>
<item>COALESCE</item>
<item>COBOL</item>
<item>COLLATE</item>
<item>COLLATION</item>
<item>COLLATION_CATALOG</item>
<item>COLLATION_NAME</item>
<item>COLLATION_SCHEMA</item>
<item>COLUMN</item>
<item>COLUMN_NAME</item>
<item>COMMAND_FUNCTION</item>
<item>COMMAND_FUNCTION_CODE</item>
<item>COMMENT</item>
<item>COMMIT</item>
<item>COMMITTED</item>
<item>COMPLETION</item>
<item>CONDITION_NUMBER</item>
<item>CONNECT</item>
<item>CONNECTION</item>
<item>CONNECTION_NAME</item>
<item>CONSTRAINTS</item>
<item>CONSTRAINT</item>
<item>CONSTRAINT_CATALOG</item>
<item>CONSTRAINT_NAME</item>
<item>CONSTRAINT_SCHEMA</item>
<item>CONSTRUCTOR</item>
<item>CONTAINS</item>
<item>CONTINUE</item>
<item>CONVERT</item>
<item>COPY</item>
<item>CORRESPONDING</item>
<item>COUNT</item>
<item>CREATE</item>
<item>CREATEDB</item>
<item>CREATEUSER</item>
<item>CROSS</item>
<item>CUBE</item>
<item>CURRENT</item>
<item>CURRENT_DATE</item>
<item>CURRENT_PATH</item>
<item>CURRENT_ROLE</item>
<item>CURRENT_TIME</item>
<item>CURRENT_TIMESTAMP</item>
<item>CURRENT_USER</item>
<item>CURSOR</item>
<item>CURSOR_NAME</item>
<item>CYCLE</item>
<item>DATA</item>
<item>DATABASE</item>
<item>DATE</item>
<item>DATETIME_INTERVAL_CODE</item>
<item>DATETIME_INTERVAL_PRECISION</item>
<item>DAY</item>
<item>DEALLOCATE</item>
<item>DEC</item>
<item>DECIMAL</item>
<item>DECLARE</item>
<item>DEFAULT</item>
<item>DEFERRABLE</item>
<item>DEFERRED</item>
<item>DEFINED</item>
<item>DEFINER</item>
<item>DELETE</item>
<item>DELIMITERS</item>
<item>DEPTH</item>
<item>DEREF</item>
<item>DESC</item>
<item>DESCRIBE</item>
<item>DESCRIPTOR</item>
<item>DESTROY</item>
<item>DESTRUCTOR</item>
<item>DETACH</item>
<item>DETERMINISTIC</item>
<item>DIAGNOSTICS</item>
<item>DICTIONARY</item>
<item>DISCONNECT</item>
<item>DISPATCH</item>
<item>DISTINCT</item>
<item>DO</item>
<item>DOMAIN</item>
<item>DOUBLE</item>
<item>DROP</item>
<item>DYNAMIC</item>
<item>DYNAMIC_FUNCTION</item>
<item>DYNAMIC_FUNCTION_CODE</item>
<item>EACH</item>
<item>ELSE</item>
<item>ENCODING</item>
<item>ENCRYPTED</item>
<item>END</item>
<item>END-EXEC</item>
<item>EQUALS</item>
<item>ESCAPE</item>
<item>EVERY</item>
<item>EXCEPT</item>
<item>EXCEPTION</item>
<item>EXCLUSIVE</item>
<item>EXEC</item>
<item>EXECUTE</item>
<item>EXISTING</item>
<item>EXISTS</item>
<item>EXPLAIN</item>
<item>EXTERNAL</item>
<item>FALSE</item>
<item>FETCH</item>
<item>FINAL</item>
<item>FIRST</item>
<item>FOR</item>
<item>FORCE</item>
<item>FOREIGN</item>
<item>FORTRAN</item>
<item>FORWARD</item>
<item>FOUND</item>
<item>FREE</item>
<item>FREEZE</item>
<item>FROM</item>
<item>FULL</item>
<item>FUNCTION</item>
<item>G</item>
<item>GENERAL</item>
<item>GENERATED</item>
<item>GET</item>
<item>GLOBAL</item>
<item>GO</item>
<item>GOTO</item>
<item>GRANT</item>
<item>GRANTED</item>
<item>GROUP</item>
<item>GROUPING</item>
<item>HANDLER</item>
<item>HAVING</item>
<item>HIERARCHY</item>
<item>HOLD</item>
<item>HOST</item>
<item>HOUR</item>
<item>IDENTITY</item>
<item>IGNORE</item>
<item>ILIKE</item>
<item>IMMEDIATE</item>
<item>IMMUTABLE</item>
<item>IMPLEMENTATION</item>
<item>IN</item>
<item>INCREMENT</item>
<item>INDEX</item>
<item>INDICATOR</item>
<item>INFIX</item>
<item>INHERITS</item>
<item>INITIALIZE</item>
<item>INITIALLY</item>
<item>INNER</item>
<item>INOUT</item>
<item>INPUT</item>
<item>INSENSITIVE</item>
<item>INSERT</item>
<item>INSTANCE</item>
<item>INSTANTIABLE</item>
<item>INSTEAD</item>
<item>INTERSECT</item>
<item>INTERVAL</item>
<item>INTO</item>
<item>INVOKER</item>
<item>IS</item>
<item>ISNULL</item>
<item>ISOLATION</item>
<item>ITERATE</item>
<item>JOIN</item>
<item>K</item>
<item>KEY</item>
<item>KEY_MEMBER</item>
<item>KEY_TYPE</item>
<item>LANCOMPILER</item>
<item>LANGUAGE</item>
<item>LARGE</item>
<item>LAST</item>
<item>LATERAL</item>
<item>LEADING</item>
<item>LEFT</item>
<item>LENGTH</item>
<item>LESS</item>
<item>LEVEL</item>
<item>LIKE</item>
<item>LIMIT</item>
<item>LISTEN</item>
<item>LOAD</item>
<item>LOCAL</item>
<item>LOCALTIME</item>
<item>LOCALTIMESTAMP</item>
<item>LOCATION</item>
<item>LOCATOR</item>
<item>LOCK</item>
<item>LOWER</item>
<item>M</item>
<item>MAP</item>
<item>MATCH</item>
<item>MAX</item>
<item>MAXVALUE</item>
<item>MESSAGE_LENGTH</item>
<item>MESSAGE_OCTET_LENGTH</item>
<item>MESSAGE_TEXT</item>
<item>METHOD</item>
<item>MIN</item>
<item>MINUTE</item>
<item>MINVALUE</item>
<item>MOD</item>
<item>MODE</item>
<item>MODIFIES</item>
<item>MODIFY</item>
<item>MODULE</item>
<item>MONTH</item>
<item>MORE</item>
<item>MOVE</item>
<item>MUMPS</item>
<item>NAME</item>
<item>NAMES</item>
<item>NATIONAL</item>
<item>NATURAL</item>
<item>NEW</item>
<item>NEXT</item>
<item>NO</item>
<item>NOCREATEDB</item>
<item>NOCREATEUSER</item>
<item>NONE</item>
<item>NOT</item>
<item>NOTHING</item>
<item>NOTIFY</item>
<item>NOTNULL</item>
<item>NULL</item>
<item>NULLABLE</item>
<item>NULLIF</item>
<item>NUMBER</item>
<item>NUMERIC</item>
<item>OBJECT</item>
<item>OCTET_LENGTH</item>
<item>OF</item>
<item>OFF</item>
<item>OFFSET</item>
<item>OIDS</item>
<item>OLD</item>
<item>ON</item>
<item>ONLY</item>
<item>OPEN</item>
<item>OPERATION</item>
<item>OPERATOR</item>
<item>OPTION</item>
<item>OPTIONS</item>
<item>ORDER</item>
<item>ORDINALITY</item>
<item>OUT</item>
<item>OUTER</item>
<item>OUTPUT</item>
<item>OVER</item>
<item>OVERLAPS</item>
<item>OVERLAY</item>
<item>OVERRIDING</item>
<item>OWNER</item>
<item>PAD</item>
<item>PARAMETER</item>
<item>PARAMETERS</item>
<item>PARAMETER_MODE</item>
<item>PARAMETER_NAME</item>
<item>PARAMETER_ORDINAL_POSITION</item>
<item>PARAMETER_SPECIFIC_CATALOG</item>
<item>PARAMETER_SPECIFIC_NAME</item>
<item>PARAMETER_SPECIFIC_SCHEMA</item>
<item>PARTIAL</item>
<item>PARTITION</item>
<item>PASCAL</item>
<item>PASSWORD</item>
<item>PATH</item>
<item>PENDANT</item>
<item>PLI</item>
<item>POSITION</item>
<item>POSTFIX</item>
<item>PRECISION</item>
<item>PREFIX</item>
<item>PREORDER</item>
<item>PREPARE</item>
<item>PRESERVE</item>
<item>PRIMARY</item>
<item>PRIOR</item>
<item>PRIVILEGES</item>
<item>PROCEDURAL</item>
<item>PROCEDURE</item>
<item>PUBLIC</item>
<item>RANGE</item>
<item>READ</item>
<item>READS</item>
<item>REAL</item>
<item>RECURSIVE</item>
<item>REF</item>
<item>REFERENCES</item>
<item>REFERENCING</item>
<item>REINDEX</item>
<item>RELATIVE</item>
<item>RENAME</item>
<item>REPEATABLE</item>
<item>REPLACE</item>
<item>RESET</item>
<item>RESTRICT</item>
<item>RESULT</item>
<item>RETURN</item>
<item>RETURNED_LENGTH</item>
<item>RETURNED_OCTET_LENGTH</item>
<item>RETURNED_SQLSTATE</item>
<item>RETURNS</item>
<item>REVOKE</item>
<item>RIGHT</item>
<item>ROLE</item>
<item>ROLLBACK</item>
<item>ROLLUP</item>
<item>ROUTINE</item>
<item>ROUTINE_CATALOG</item>
<item>ROUTINE_NAME</item>
<item>ROUTINE_SCHEMA</item>
<item>ROW</item>
<item>ROWS</item>
<item>ROW_COUNT</item>
<item>RULE</item>
<item>SAVEPOINT</item>
<item>SCALE</item>
<item>SCHEMA</item>
<item>SCHEMA_NAME</item>
<item>SCOPE</item>
<item>SCROLL</item>
<item>SEARCH</item>
<item>SECOND</item>
<item>SECTION</item>
<item>SECURITY</item>
<item>SELECT</item>
<item>SELF</item>
<item>SENSITIVE</item>
<item>SEQUENCE</item>
<item>SERIALIZABLE</item>
<item>SERVER_NAME</item>
<item>SESSION</item>
<item>SESSION_USER</item>
<item>SET</item>
<item>SETOF</item>
<item>SETS</item>
<item>SHARE</item>
<item>SHOW</item>
<item>SIMILAR</item>
<item>SIMPLE</item>
<item>SIZE</item>
<item>SOME</item>
<item>SOURCE</item>
<item>SPACE</item>
<item>SPECIFIC</item>
<item>SPECIFICTYPE</item>
<item>SPECIFIC_NAME</item>
<item>SQL</item>
<item>SQLCODE</item>
<item>SQLERROR</item>
<item>SQLEXCEPTION</item>
<item>SQLSTATE</item>
<item>SQLWARNING</item>
<item>STABLE</item>
<item>START</item>
<item>STATE</item>
<item>STATEMENT</item>
<item>STATIC</item>
<item>STATISTICS</item>
<item>STDIN</item>
<item>STDOUT</item>
<item>STRUCTURE</item>
<item>STYLE</item>
<item>SUBCLASS_ORIGIN</item>
<item>SUBLIST</item>
<item>SUBSTRING</item>
<item>SUM</item>
<item>SYMMETRIC</item>
<item>SYSID</item>
<item>SYSTEM</item>
<item>SYSTEM_USER</item>
<item>TABLE</item>
<item>TABLE_NAME</item>
<item>TEMP</item>
<item>TEMPLATE</item>
<item>TEMPORARY</item>
<item>TERMINATE</item>
<item>THAN</item>
<item>THEN</item>
<item>TIMEZONE_HOUR</item>
<item>TIMEZONE_MINUTE</item>
<item>TO</item>
<item>TOAST</item>
<item>TRAILING</item>
<item>TRANSACTION</item>
<item>TRANSACTIONS_COMMITTED</item>
<item>TRANSACTIONS_ROLLED_BACK</item>
<item>TRANSACTION_ACTIVE</item>
<item>TRANSFORM</item>
<item>TRANSFORMS</item>
<item>TRANSLATE</item>
<item>TRANSLATION</item>
<item>TREAT</item>
<item>TRIGGER</item>
<item>TRIGGER_CATALOG</item>
<item>TRIGGER_NAME</item>
<item>TRIGGER_SCHEMA</item>
<item>TRIM</item>
<item>TRUE</item>
<item>TRUNCATE</item>
<item>TRUSTED</item>
<item>TYPE</item>
<item>UNCOMMITTED</item>
<item>UNDER</item>
<item>UNENCRYPTED</item>
<item>UNION</item>
<item>UNIQUE</item>
<item>UNKNOWN</item>
<item>UNLISTEN</item>
<item>UNNAMED</item>
<item>UNNEST</item>
<item>UNTIL</item>
<item>UPDATE</item>
<item>UPPER</item>
<item>USAGE</item>
<item>USER</item>
<item>USER_DEFINED_TYPE_CATALOG</item>
<item>USER_DEFINED_TYPE_NAME</item>
<item>USER_DEFINED_TYPE_SCHEMA</item>
<item>USING</item>
<item>VACUUM</item>
<item>VALID</item>
<item>VALUE</item>
<item>VALUES</item>
<item>VARIABLE</item>
<item>VARYING</item>
<item>VERBOSE</item>
<item>VERSION</item>
<item>VIEW</item>
<item>VOLATILE</item>
<item>WHEN</item>
<item>WHENEVER</item>
<item>WHERE</item>
<item>WHILE</item>
<item>WITH</item>
<item>WITHOUT</item>
<item>WORK</item>
<item>WRITE</item>
<item>YEAR</item>
<item>ZONE</item>
</list>
<list name="operators">
<item>+</item>
<item>-</item>
<item>*</item>
<item>/</item>
<item>||</item>
<item>|/</item>
<item>||/</item>
<item>!</item>
<item>!!</item>
<item>@</item>
<item>&amp;</item>
<item>|</item>
<item>#</item>
<item>&lt;&lt;</item>
<item>&gt;&gt;</item>
<item>%</item>
<item>^</item>
<item>=</item>
<item>!=</item>
<item>&lt;&gt;</item>
<item>&lt;</item>
<item>&lt;=</item>
<item>&gt;</item>
<item>&gt;=</item>
<item>~</item>
<item>~*</item>
<item>!~</item>
<item>!~*</item>
<item>^=</item>
<item>:=</item>
<item>=&gt;</item>
<item>**</item>
<item>..</item>
<item>AND</item>
<item>OR</item>
<item>NOT</item>
<!-- geometric -->
<item>##</item>
<item>&amp;&amp;</item>
<item>&amp;&lt;</item>
<item>&amp;&gt;</item>
<item>&lt;-&gt;</item>
<item>&lt;^</item>
<item>&gt;^</item>
<item>?#</item>
<item>?-</item>
<item>?-|</item>
<item>@-@</item>
<item>?|</item>
<item>?||</item>
<item>@@</item>
<item>~=</item>
<!-- network address type -->
<item>&lt;&lt;=</item>
<item>&gt;&gt;=</item>
</list>
<list name="functions">
<!-- math -->
<item>ABS</item>
<item>CBRT</item>
<item>CEIL</item>
<item>DEGREES</item>
<item>EXP</item>
<item>FLOOR</item>
<item>LN</item>
<item>LOG</item>
<item>MOD</item>
<item>PI</item>
<item>POW</item>
<item>RADIANS</item>
<item>RANDOM</item>
<item>ROUND</item>
<item>SIGN</item>
<item>SQRT</item>
<item>TRUNC</item>
<!-- trig -->
<item>ACOS</item>
<item>ASIN</item>
<item>ATAN</item>
<item>ATAN2</item>
<item>COS</item>
<item>COT</item>
<item>SIN</item>
<item>TAN</item>
<!-- string -->
<item>BIT_LENGTH</item>
<item>CHAR_LENGTH</item>
<item>CHARACTER_LENGTH</item>
<item>LOWER</item>
<item>OCTET_LENGTH</item>
<item>POSITION</item>
<item>SUBSTRING</item>
<item>TRIM</item>
<item>UPPER</item>
<!-- other string -->
<item>ASCII</item>
<item>BTRIM</item>
<item>CHR</item>
<item>CONVERT</item>
<item>INITCAP</item>
<item>LENGTH</item>
<item>LPAD</item>
<item>LTRIM</item>
<item>PG_CLIENT_ENCODING</item>
<item>REPEAT</item>
<item>RPAD</item>
<item>RTRIM</item>
<item>STRPOS</item>
<item>SUBSTR</item>
<item>TO_ASCII</item>
<item>TRANSLATE</item>
<item>ENCODE</item>
<item>DECODE</item>
<!-- data type formatting -->
<item>TO_CHAR</item>
<item>TO_DATE</item>
<item>TO_TIMESTAMP</item>
<item>TO_NUMBER</item>
<!-- date/time -->
<item>AGE</item>
<item>DATE_PART</item>
<item>DATE_TRUNC</item>
<item>EXTRACT</item>
<item>ISFINITE</item>
<item>NOW</item>
<item>TIMEOFDAY</item>
<item>TIMESTAMP</item>
<item>EXTRACT</item>
<!-- geometric -->
<item>AREA</item>
<item>BOX</item>
<item>CENTER</item>
<item>DIAMETER</item>
<item>HEIGHT</item>
<item>ISCLOSED</item>
<item>ISOPEN</item>
<item>PCLOSE</item>
<item>NPOINT</item>
<item>POPEN</item>
<item>RADIUS</item>
<item>WIDTH</item>
<!-- geometric type conversion -->
<item>BOX</item>
<item>CIRCLE</item>
<item>LSEG</item>
<item>PATH</item>
<item>POINT</item>
<item>POLYGON</item>
<!-- network address type, TEXT is omitted as it is more commonly a data type -->
<item>BROADCAST</item>
<item>HOST</item>
<item>MASKLEN</item>
<item>SET_MASKLEN</item>
<item>NETMASK</item>
<item>NETWORK</item>
<item>ABBREV</item>
<!-- sequence manipulation -->
<item>NEXTVAL</item>
<item>CURRVAL</item>
<item>SETVAL</item>
<!-- conditional expressions -->
<item>COALESCE</item>
<item>NULLIF</item>
<!-- misc -->
<item>HAS_TABLE_PRIVILEGE</item>
<item>PG_GET_VIEWDEF</item>
<item>PG_GET_RULEDEF</item>
<item>PG_GET_INDEXDEF</item>
<item>PG_GET_USERBYID</item>
<item>OBJ_DESCRIPTION</item>
<item>COL_DESCRIPTION</item>
<!-- aggregate -->
<item>AVG</item>
<item>COUNT</item>
<item>MAX</item>
<item>MIN</item>
<item>STDDEV</item>
<item>SUM</item>
<item>VARIANCE</item>
</list>
<list name="types">
<!-- https://www.postgresql.org/docs/current/static/datatype.html#DATATYPE-TABLE -->
<item>BIGINT</item>
<item>BIGSERIAL</item>
<item>BIT</item>
<item>BOOL</item>
<item>BOOLEAN</item>
<item>BOX</item>
<item>BYTEA</item>
<item>CHAR</item>
<item>CHARACTER</item>
<item>CIDR</item>
<item>CIRCLE</item>
<item>DATE</item>
<item>DECIMAL</item>
<item>FLOAT4</item>
<item>FLOAT8</item>
<item>INET</item>
<item>INT</item>
<item>INT2</item>
<item>INT4</item>
<item>INT8</item>
<item>INTEGER</item>
<item>INTERVAL</item>
<item>JSON</item>
<item>JSONB</item>
<item>LINE</item>
<item>LSEG</item>
<item>LZTEXT</item>
<item>MACADDR</item>
<item>MACADDR8</item>
<item>MONEY</item>
<item>NUMERIC</item>
<item>OID</item>
<item>PATH</item>
<item>POINT</item>
<item>POLYGON</item>
<item>REAL</item>
<item>SERIAL</item>
<item>SERIAL2</item>
<item>SERIAL4</item>
<item>SERIAL8</item>
<item>SMALLINT</item>
<item>SMALLSERIAL</item>
<item>TEXT</item>
<item>TIME</item>
<item>TIMESTAMP</item>
<item>TIMESTAMPTZ</item>
<item>TIMETZ</item>
<item>TSQUERY</item>
<item>TSVECTOR</item>
<item>UUID</item>
<item>VARBIT</item>
<item>VARCHAR</item>
<item>XML</item>
</list>
<contexts>
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
<!-- comments before operators -->
<DetectChar attribute="Comment" context="SingleLineComment" char="#"/>
<Detect2Chars attribute="Comment" context="SingleLineComment" char="-" char1="-"/>
<Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
<RegExpr attribute="Comment" context="SingleLineComment" String="rem\b" insensitive="true" column="0"/>
<!-- HACK: don't jump into MultiLineString for CREATE FUNCTION $funcName$...$funcName$ -->
<RegExpr String="create\s+(or\s+replace\s+)?function" insensitive="true" context="CreateFunction" attribute="Keyword"/>
<RegExpr String="do\s+\$([^\$\n\r]*)\$" insensitive="true" context="FunctionBody" attribute="Keyword"/>
<LineContinue attribute="Symbol" context="#stay" char="/" column="0"/>
<keyword attribute="Keyword" context="#stay" String="keywords"/>
<keyword attribute="Operator" context="#stay" String="operators"/>
<keyword attribute="Function" context="#stay" String="functions"/>
<keyword attribute="Data Type" context="#stay" String="types"/>
<RegExpr attribute="Data Type" context="#stay" String="%(bulk_(exceptions|rowcount)|(not)?found|isopen|rowcount|(row)?type)\b" insensitive="true"/>
<Float attribute="Float" context="#stay"/>
<Int attribute="Decimal" context="#stay"/>
<DetectChar attribute="String" context="String" char="'"/>
<DetectChar attribute="Comment" context="Identifier" char="&quot;"/>
<AnyChar attribute="Symbol" context="#stay" String=":&#38;"/>
<RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>
<RegExpr attribute="Operator" context="MultiLineString" String="\$([^\$\n\r]*)\$" dynamic="true"/>
</context>
<context name="CreateFunction" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Function" context="FunctionBody" String="\$([^\$\n\r]*)\$" dynamic="true"/>
<IncludeRules context="Normal"/>
</context>
<context name="FunctionBody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="Function" context="#pop#pop" String="\$%1\$" dynamic="true"/>
<IncludeRules context="Normal"/>
</context>
<context name="MultiLineString" attribute="String" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="Operator" context="#pop" String="\$%1\$" dynamic="true"/>
</context>
<context name="String" attribute="String" lineEndContext="#stay">
<LineContinue attribute="String" context="#pop"/>
<HlCStringChar attribute="String Char" context="#stay"/>
<DetectChar attribute="Symbol" context="#stay" char="&#38;"/>
<DetectChar attribute="String" context="#pop" char="'"/>
</context>
<context name="SingleLineComment" attribute="Comment" lineEndContext="#pop"/>
<context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
<LineContinue attribute="Comment" context="#pop"/>
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
</context>
<context name="Identifier" attribute="Identifier" lineEndContext="#pop">
<DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
</context>
<context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Operator" defStyleNum="dsNormal"/>
<itemData name="Function" defStyleNum="dsFunction"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Identifier" defStyleNum="dsOthers"/>
<itemData name="Symbol" defStyleNum="dsChar"/>
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="--"/>
<comment name="multiLine" start="/*" end="*/"/>
</comments>
<keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:.@&amp;#%?"/>
</general>
</language>