I don't need to test my programs. I have an error-correcting modem.

Difference between revisions of "User:00zX/UScript.xml"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m
m (Tidied it up abit, removed some duplicate keywords)
Line 1: Line 1:
<source lang="xml">
 
 
<?xml version="1.0"?>
 
<?xml version="1.0"?>
 
<!DOCTYPE MODE SYSTEM "xmode.dtd">
 
<!DOCTYPE MODE SYSTEM "xmode.dtd">
Line 11: Line 10:
 
-->
 
-->
  
<!--
 
db: add support for the new timers
 
function SetTimer(float inRate, optional bool inbLoop, optional Name inTimerFunc);
 
ClearTimer(optional Name inTimerFunc);
 
bool IsTimerActive(optional Name inTimerFunc);
 
float GetTimerCount(optional Name inTimerFunc);
 
float GetTimerRate(optional name TimerFuncName = 'Timer');
 
-->
 
 
<PROPS>
 
<PROPS>
 
<PROPERTY NAME="commentStart" VALUE="/*" />
 
<PROPERTY NAME="commentStart" VALUE="/*" />
Line 39: Line 30:
 
<RULES ESCAPE="\" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE"
 
<RULES ESCAPE="\" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE"
 
DIGIT_RE="0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?">
 
DIGIT_RE="0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?">
 
<!-- doc comments -->
 
<!-- <SPAN TYPE="COMMENT3" DELEGATE="DOCCOMMENT">
 
<BEGIN>/**</BEGIN>
 
<END>*/</END>
 
</SPAN>-->
 
  
 
<SPAN TYPE="COMMENT2" DELEGATE="COMMENT">
 
<SPAN TYPE="COMMENT2" DELEGATE="COMMENT">
Line 187: Line 172:
  
 
<!-- Class Syntax -->
 
<!-- Class Syntax -->
 +
<KEYWORD1>Interface</KEYWORD1>
 
<KEYWORD1>Class</KEYWORD1><!--db: added test-->
 
<KEYWORD1>Class</KEYWORD1><!--db: added test-->
 
<INVALID>Expands</INVALID><!-- only early UE1, shouldn't really be used -->
 
<INVALID>Expands</INVALID><!-- only early UE1, shouldn't really be used -->
Line 193: Line 179:
 
<!-- Class Syntax: Optional Specifiers -->
 
<!-- Class Syntax: Optional Specifiers -->
 
<!-- General -->
 
<!-- General -->
 +
<KEYWORD1>Implements</KEYWORD1><!-- UE3+ -->
 
<KEYWORD1>Abstract</KEYWORD1>
 
<KEYWORD1>Abstract</KEYWORD1>
 
<KEYWORD1>Config</KEYWORD1><!-- used for both class and var -->
 
<KEYWORD1>Config</KEYWORD1><!-- used for both class and var -->
 +
<KEYWORD1>GlobalConfig</KEYWORD1><!-- used for both class and var?? -->
 +
<KEYWORD4>PerObjectConfig</KEYWORD4>
 
<KEYWORD1>Native</KEYWORD1>
 
<KEYWORD1>Native</KEYWORD1>
 
<KEYWORD1>NativeReplication</KEYWORD1>
 
<KEYWORD1>NativeReplication</KEYWORD1>
Line 200: Line 189:
 
<KEYWORD1>NoImport</KEYWORD1>
 
<KEYWORD1>NoImport</KEYWORD1>
 
<KEYWORD1>NotTransient</KEYWORD1><!-- since UE2 -->
 
<KEYWORD1>NotTransient</KEYWORD1><!-- since UE2 -->
<KEYWORD4>PerObjectConfig</KEYWORD4>
+
<KEYWORD1>Within</KEYWORD1><!-- since UE2 -->
 +
<KEYWORD1>DependsOn</KEYWORD1><!-- since UE2 -->
  
 
<!-- Class Syntax: Secondary Specifiers -->
 
<!-- Class Syntax: Secondary Specifiers -->
Line 213: Line 203:
 
<KEYWORD4>Placeable</KEYWORD4>
 
<KEYWORD4>Placeable</KEYWORD4>
  
<KEYWORD4>ExportStructs</KEYWORD4>
+
<KEYWORD1>ExportStructs</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>SafeReplace</KEYWORD1>
 
<KEYWORD1>SafeReplace</KEYWORD1>
<!-- <KEYWORD1>HideCategories</KEYWORD1>--><!-- since UE2 -->
+
<!-- <KEYWORD1>HideCategories</KEYWORD1>--><!-- UE2+ -->
  
<KEYWORD1>DontCollapseCategories</KEYWORD1><!-- since UE2 -->
+
<KEYWORD1>DontCollapseCategories</KEYWORD1><!-- UE2+ -->
  
<!-- Advanced -->
+
<!--===================================================================================================-->
 
<KEYWORD4>Inherits</KEYWORD4><!-- native effect, since UE3 -->
 
<KEYWORD4>Inherits</KEYWORD4><!-- native effect, since UE3 -->
<KEYWORD1>Implements</KEYWORD1><!-- since UE3 -->
 
 
 
<KEYWORD1>Assert</KEYWORD1>
 
<KEYWORD1>Assert</KEYWORD1>
<KEYWORD1>Auto</KEYWORD1>
 
 
<KEYWORD1>Automated</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>Automated</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>Break</KEYWORD1>
 
 
 
<KEYWORD1>Cache</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>Cache</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>CacheExempt</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>CacheExempt</KEYWORD1><!-- only UE2 -->
<KEYWORD1>Case</KEYWORD1>
 
<KEYWORD1>Client</KEYWORD1><!-- since UE3 -->
 
 
<KEYWORD1>Coerce</KEYWORD1>
 
<KEYWORD1>Coerce</KEYWORD1>
 
<KEYWORD1>Const</KEYWORD1>
 
<KEYWORD1>Continue</KEYWORD1>
 
 
 
<KEYWORD1>cpptext</KEYWORD1><!-- only UE2? -->
 
<KEYWORD1>cpptext</KEYWORD1><!-- only UE2? -->
 
<KEYWORD1>cppstruct</KEYWORD1><!-- only UE2? -->
 
<KEYWORD1>cppstruct</KEYWORD1><!-- only UE2? -->
 
<KEYWORD1>DataBinding</KEYWORD1><!-- since UE3 -->
 
<KEYWORD1>DependsOn</KEYWORD1><!-- since UE2 -->
 
 
<LABEL>Deprecated</LABEL><!-- since UE2, marks variables that should no longer be used -->
 
<LABEL>Deprecated</LABEL><!-- since UE2, marks variables that should no longer be used -->
<KEYWORD1>Do</KEYWORD1>
 
 
 
<KEYWORD1>DuplicateTransient</KEYWORD1><!-- since UE3 -->
 
<KEYWORD1>DuplicateTransient</KEYWORD1><!-- since UE3 -->
 
 
<KEYWORD1>EdFindable</KEYWORD1>
 
<KEYWORD1>EdFindable</KEYWORD1>
 
<KEYWORD1>EditConst</KEYWORD1>
 
<KEYWORD1>EditConst</KEYWORD1>
Line 256: Line 228:
 
<KEYWORD1>EditInlineNotify</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>EditInlineNotify</KEYWORD1><!-- only UE2 -->
 
<KEYWORD1>EditInlineUse</KEYWORD1><!-- since UE2 -->
 
<KEYWORD1>EditInlineUse</KEYWORD1><!-- since UE2 -->
<KEYWORD1>Else</KEYWORD1>
 
<KEYWORD1>Enum</KEYWORD1>
 
<KEYWORD1>Event</KEYWORD1>
 
<KEYWORD1>Exec</KEYWORD1>
 
 
<KEYWORD1>Export</KEYWORD1>
 
<KEYWORD1>ExportStructs</KEYWORD1><!-- only UE2 -->
 
 
<!-- <KEYWORD1>Final</KEYWORD1>-->
 
<KEYWORD1>For</KEYWORD1>
 
<KEYWORD1>ForEach</KEYWORD1>
 
<KEYWORD1>Function</KEYWORD1>
 
 
<KEYWORD1>GlobalConfig</KEYWORD1>
 
<KEYWORD1>Goto</KEYWORD1>
 
 
<KEYWORD1>If</KEYWORD1>
 
<KEYWORD1>Ignores</KEYWORD1>
 
 
<KEYWORD1>Immutable</KEYWORD1><!-- since UE3 -->
 
<KEYWORD1>Immutable</KEYWORD1><!-- since UE3 -->
 
<KEYWORD1>Import</KEYWORD1>
 
<KEYWORD1>Import</KEYWORD1>
 
 
<KEYWORD1>Init</KEYWORD1>
 
<KEYWORD1>Init</KEYWORD1>
<KEYWORD1>Instanced</KEYWORD1><!-- since UE2 -->
 
<KEYWORD1>Interface</KEYWORD1>
 
<KEYWORD1>Intrinsic</KEYWORD1><!-- only early UE1, replaced by "native" -->
 
<KEYWORD1>Iterator</KEYWORD1>
 
 
 
<KEYWORD1>Latent</KEYWORD1>
 
<KEYWORD1>Latent</KEYWORD1>
<KEYWORD1>Local</KEYWORD1>
 
<KEYWORD1>Localized</KEYWORD1>
 
 
<KEYWORD1>Long</KEYWORD1><!-- since UE2, struct modifier -->
 
<KEYWORD1>Long</KEYWORD1><!-- since UE2, struct modifier -->
 +
<KEYWORD1>ParseConfig</KEYWORD1>
 +
<KEYWORD1>ShowCategories</KEYWORD1><!-- since UE2 -->
 +
<KEYWORD1>Skip</KEYWORD1>
 +
<KEYWORD1>Stop</KEYWORD1>
 +
<KEYWORD1>Travel</KEYWORD1>
 +
<KEYWORD1>Reliable</KEYWORD1>
 +
<KEYWORD1>Unreliable</KEYWORD1>
 +
<KEYWORD1>Export</KEYWORD1>
 +
<!--===================================================================================================-->
  
 +
<!-- Function Syntax: Primary Specifiers -->
 +
<KEYWORD1>Event</KEYWORD1>
 +
<KEYWORD1>Function</KEYWORD1>
 
<KEYWORD1>Operator</KEYWORD1>
 
<KEYWORD1>Operator</KEYWORD1>
<!-- <KEYWORD1>Optional</KEYWORD1>-->>
 
<!-- <KEYWORD1>Out</KEYWORD1>-->
 
 
<KEYWORD1>ParseConfig</KEYWORD1>
 
<!-- <KEYWORD1>PerObjectConfig</KEYWORD1>-->
 
<!-- <KEYWORD1>Placeable</KEYWORD1>--><!-- since UE2 -->
 
 
<KEYWORD1>PostOperator</KEYWORD1>
 
<KEYWORD1>PostOperator</KEYWORD1>
 
<KEYWORD1>PreOperator</KEYWORD1>
 
<KEYWORD1>PreOperator</KEYWORD1>
<!-- <KEYWORD1>Private</KEYWORD1>
+
<KEYWORD1>Replication</KEYWORD1><!-- db: Could update so replication block gets special handling -->
<KEYWORD1>Protected</KEYWORD1>-->
+
<KEYWORD1>Public</KEYWORD1><!-- redundant, members are always public unless marked private or protected -->
+
  
<KEYWORD1>Reliable</KEYWORD1>
+
<KEYWORD1>If</KEYWORD1>
<KEYWORD1>Replication</KEYWORD1>
+
<KEYWORD1>Else</KEYWORD1>
<!-- <KEYWORD1>RepNotify</KEYWORD1>--><!-- since UE3 -->
+
<KEYWORD1>Case</KEYWORD1>
 +
<KEYWORD1>Break</KEYWORD1>
 +
<KEYWORD1>Continue</KEYWORD1>
 
<KEYWORD1>Return</KEYWORD1>
 
<KEYWORD1>Return</KEYWORD1>
  
<KEYWORD1>Server</KEYWORD1><!-- since UE3 -->
+
<KEYWORD1>State</KEYWORD1>
<KEYWORD1>ShowCategories</KEYWORD1><!-- since UE2 -->
+
<KEYWORD1>Goto</KEYWORD1>
<KEYWORD1>Simulated</KEYWORD1>
+
<!-- State Syntax: Secondary Specifiers -->
<KEYWORD1>Singular</KEYWORD1>
+
<KEYWORD1>Auto</KEYWORD1>
<KEYWORD1>Skip</KEYWORD1>
+
<KEYWORD1>Ignores</KEYWORD1>
<KEYWORD1>State</KEYWORD1>
+
<KEYWORD1>Stop</KEYWORD1>
+
<KEYWORD1>Struct</KEYWORD1>
+
  
<!-- <KEYWORD1>Transient</KEYWORD1>-->
+
<!-- Function Syntax: Iterators -->
<KEYWORD1>Travel</KEYWORD1>
+
<KEYWORD1>For</KEYWORD1>
 +
<KEYWORD1>ForEach</KEYWORD1>
  
<KEYWORD1>Unreliable</KEYWORD1>
+
<KEYWORD1>While</KEYWORD1>
 +
<KEYWORD1>Do</KEYWORD1>
 
<KEYWORD1>Until</KEYWORD1>
 
<KEYWORD1>Until</KEYWORD1>
  
 +
<!-- db: Secondary Keywords - grey/italic (like uncodex)-->
 +
<KEYWORD4>Self</KEYWORD4>
 +
<KEYWORD4>Owner</KEYWORD4><!--common-->
 +
<KEYWORD4>Optional</KEYWORD4>
 +
<KEYWORD4>Out</KEYWORD4>
 +
<KEYWORD4>Object</KEYWORD4>
 +
<KEYWORD4>Native</KEYWORD4>
 +
 +
<!-- Function Secondary (Syntax)Flags-->
 +
<KEYWORD4>Static</KEYWORD4>
 +
<KEYWORD4>Final</KEYWORD4>
 +
<KEYWORD4>Server</KEYWORD4><!-- since UE3 -->
 +
<KEYWORD4>Client</KEYWORD4><!-- since UE3 -->
 +
<KEYWORD4>Simulated</KEYWORD4>
 +
<KEYWORD4>Iterator</KEYWORD4>
 +
<KEYWORD1>Singular</KEYWORD1>
 +
<INVALID>Intrinsic</INVALID><!-- only early UE1, replaced by "native" -->
 +
<KEYWORD1>Exec</KEYWORD1>
 +
 +
<!-- built-in type names -->
 +
<KEYWORD1>Const</KEYWORD1>
 
<KEYWORD1>Var</KEYWORD1>
 
<KEYWORD1>Var</KEYWORD1>
 +
<KEYWORD1>Local</KEYWORD1>
 +
<!-- db: modifed these to be keyword 1 from 3 -->
 +
<!-- Variable Primary (Syntax)Flags -->
 +
<KEYWORD1>Bool</KEYWORD1>
 +
<KEYWORD1>Byte</KEYWORD1>
 +
<KEYWORD1>Enum</KEYWORD1>
 +
<KEYWORD1>Float</KEYWORD1>
 +
<KEYWORD1>Int</KEYWORD1>
 +
<KEYWORD1>String</KEYWORD1>
 +
<KEYWORD1>Struct</KEYWORD1>
 +
<KEYWORD1>Pointer</KEYWORD1><!-- UE2+ -->
 +
<KEYWORD1>Array</KEYWORD1>
  
<KEYWORD1>While</KEYWORD1>
+
<KEYWORD1>Vector</KEYWORD1>
<KEYWORD1>Within</KEYWORD1><!-- since UE2 -->
+
<KEYWORD1>Rotator</KEYWORD1>
 +
<KEYWORD1>vector2d</KEYWORD1>
 +
<KEYWORD1>color</KEYWORD1>
 +
 
 +
<!-- Variable Secondary (Syntax)Flags-->
 +
<INVALID>Public</INVALID><!-- redundant, members are always public unless marked private or protected -->
 +
<KEYWORD4>Private</KEYWORD4>
 +
<KEYWORD4>Protected</KEYWORD4>
 +
<KEYWORD4>Localized</KEYWORD4>
 +
<KEYWORD4>Config</KEYWORD4><!--is also a class flag-->
 +
<KEYWORD4>GlobalConfig</KEYWORD4>
 +
<KEYWORD4>RepNotify</KEYWORD4>
 +
<KEYWORD4>Transient</KEYWORD4>
 +
<KEYWORD1>Instanced</KEYWORD1><!-- since UE2 -->
 +
<KEYWORD1>DataBinding</KEYWORD1><!-- since UE3 -->
  
 
<!-- literals and special function calls -->
 
<!-- literals and special function calls -->
 +
<KEYWORD2>True</KEYWORD2>
 
<KEYWORD2>False</KEYWORD2>
 
<KEYWORD2>False</KEYWORD2>
 +
 +
<KEYWORD2>Super</KEYWORD2>
 
<KEYWORD2>Global</KEYWORD2>
 
<KEYWORD2>Global</KEYWORD2>
 
<!-- <KEYWORD2>Self</KEYWORD2>-->
 
<!-- <KEYWORD2>Self</KEYWORD2>-->
<KEYWORD2>Super</KEYWORD2>
 
<KEYWORD2>True</KEYWORD2>
 
 
<KEYWORD2>New</KEYWORD2>
 
<KEYWORD2>New</KEYWORD2>
 
<KEYWORD2>None</KEYWORD2>
 
<KEYWORD2>None</KEYWORD2>
Line 354: Line 353:
 
<KEYWORD2>Remove</KEYWORD2><!-- UE2+ -->
 
<KEYWORD2>Remove</KEYWORD2><!-- UE2+ -->
 
<KEYWORD2>RemoveItem</KEYWORD2><!-- UE+ -->
 
<KEYWORD2>RemoveItem</KEYWORD2><!-- UE+ -->
 
<!-- built-in type names -->
 
<!-- db: modifed these to be keyword 1 from 3 -->
 
<!-- Variable Primary (Syntax)Flags -->
 
<KEYWORD1>Bool</KEYWORD1>
 
<KEYWORD1>Byte</KEYWORD1>
 
<KEYWORD1>Float</KEYWORD1>
 
<KEYWORD1>Int</KEYWORD1>
 
<KEYWORD1>String</KEYWORD1>
 
<KEYWORD1>Pointer</KEYWORD1><!-- UE2+ -->
 
<KEYWORD1>Array</KEYWORD1>
 
 
<KEYWORD1>Vector</KEYWORD1>
 
<KEYWORD1>Rotator</KEYWORD1>
 
<KEYWORD1>vector2d</KEYWORD1>
 
<KEYWORD1>color</KEYWORD1>
 
  
 
<!-- UE3 property tags -->
 
<!-- UE3 property tags -->
Line 433: Line 416:
 
<KEYWORD3>SoundNode</KEYWORD3><!-- UE3 -->
 
<KEYWORD3>SoundNode</KEYWORD3><!-- UE3 -->
 
<KEYWORD3>SoundCue</KEYWORD3><!-- UE3 -->
 
<KEYWORD3>SoundCue</KEYWORD3><!-- UE3 -->
 
<!-- db: Secondary Keywords - grey/italic (like uncodex)-->
 
<KEYWORD4>Self</KEYWORD4>
 
<KEYWORD4>Owner</KEYWORD4><!--common-->
 
<KEYWORD4>Optional</KEYWORD4>
 
<KEYWORD4>Out</KEYWORD4>
 
<KEYWORD4>Object</KEYWORD4>
 
<KEYWORD4>Native</KEYWORD4>
 
<!-- Variable Secondary (Syntax)Flags-->
 
<KEYWORD4>Private</KEYWORD4>
 
<KEYWORD4>Protected</KEYWORD4>
 
<KEYWORD4>Localized</KEYWORD4>
 
<KEYWORD4>Config</KEYWORD4><!--is also a class flag-->
 
<KEYWORD4>GlobalConfig</KEYWORD4>
 
<KEYWORD4>RepNotify</KEYWORD4>
 
<KEYWORD4>Transient</KEYWORD4>
 
<!-- Function Secondary (Syntax)Flags-->
 
<KEYWORD4>Static</KEYWORD4>
 
<KEYWORD4>Final</KEYWORD4>
 
<KEYWORD4>Server</KEYWORD4>
 
<KEYWORD4>Client</KEYWORD4>
 
<KEYWORD4>Simulated</KEYWORD4>
 
<KEYWORD4>Iterator</KEYWORD4>
 
  
 
<KEYWORD4>FindChild</KEYWORD4>
 
<KEYWORD4>FindChild</KEYWORD4>
Line 471: Line 431:
 
<KEYWORD4>Trace</KEYWORD4>
 
<KEYWORD4>Trace</KEYWORD4>
 
<KEYWORD4>Spawn</KEYWORD4>
 
<KEYWORD4>Spawn</KEYWORD4>
 +
 +
<!-- Timer functions: UE3-->
 +
<KEYWORD4>SetTimer</KEYWORD4>
 +
<KEYWORD4>ClearTimer</KEYWORD4>
 +
<KEYWORD4>IsTimerActive</KEYWORD4>
 +
<KEYWORD4>GetTimerCount</KEYWORD4>
 +
<KEYWORD4>GetTimerRate</KEYWORD4>
 +
 
</KEYWORDS>
 
</KEYWORDS>
 
</RULES>
 
</RULES>
Line 668: Line 636:
 
</RULES>
 
</RULES>
 
</MODE>
 
</MODE>
</source>
 

Revision as of 07:16, 25 March 2010

<?xml version="1.0"?> <!DOCTYPE MODE SYSTEM "xmode.dtd"> <MODE>

<PROPS> <PROPERTY NAME="commentStart" VALUE="/*" /> <PROPERTY NAME="commentEnd" VALUE="*/" /> <PROPERTY NAME="lineComment" VALUE="//" /> <PROPERTY NAME="newlineComment" VALUE="///" /> <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />

<PROPERTY NAME="indentOpenBrackets" VALUE="{" /> <PROPERTY NAME="indentCloseBrackets" VALUE="}" /> <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" /> <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" /> <PROPERTY NAME="indentNextLine" VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for(?:each)?\s*\(.*\))[^{;]*)" /> <PROPERTY NAME="unindentThisLine" VALUE="^.*(default:\s*|case.*:.*)$" /> </PROPS>

<RULES ESCAPE="\" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?">

<BEGIN>/**</BEGIN> <END>*/</END>

<BEGIN>/*</BEGIN> <END>*/</END>

<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN> <EOL_SPAN TYPE="COMMENT2" DELEGATE="EOLCOMMENT">///</EOL_SPAN>

<BEGIN>"</BEGIN> <END>"</END>

<BEGIN>'</BEGIN> <END>'</END>


<EOL_SPAN AT_WHITESPACE_END="TRUE" DELEGATE="DIRECTIVE" TYPE="KEYWORD2">#</EOL_SPAN>

<BEGIN>`{</BEGIN> <END>}</END>

<EOL_SPAN_REGEXP HASH_CHAR="`" AT_WHITESPACE_END="TRUE" DELEGATE="MAIN" TYPE="KEYWORD4">`(define|else|endif|if|debug)\b</EOL_SPAN_REGEXP>

<BEGIN>`include(</BEGIN> <END>)</END>

<SEQ_REGEXP HASH_CHAR="`" TYPE="KEYWORD4">`(isdefined|notdefined)\b</SEQ_REGEXP>

<MARK_FOLLOWING MATCH_TYPE="KEYWORD2" TYPE="MARKUP">`</MARK_FOLLOWING>

<MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR" AT_WHITESPACE_END="TRUE">:</MARK_PREVIOUS>

<SEQ_REGEXP HASH_CHAR="{" TYPE="COMMENT4">\{[^}]+}</SEQ_REGEXP>

<SEQ TYPE="OPERATOR">~</SEQ> <SEQ TYPE="OPERATOR">!</SEQ> <SEQ TYPE="OPERATOR">@</SEQ> <SEQ TYPE="OPERATOR">#</SEQ> <SEQ TYPE="OPERATOR">$</SEQ> <SEQ TYPE="OPERATOR">^</SEQ> <SEQ TYPE="OPERATOR">&</SEQ> <SEQ TYPE="OPERATOR">*</SEQ> <SEQ TYPE="OPERATOR">-</SEQ> <SEQ TYPE="OPERATOR">=</SEQ> <SEQ TYPE="OPERATOR">+</SEQ> <SEQ TYPE="OPERATOR">|</SEQ> <SEQ TYPE="OPERATOR">:</SEQ> <SEQ TYPE="OPERATOR"><</SEQ> <SEQ TYPE="OPERATOR">></SEQ> <SEQ TYPE="OPERATOR">/</SEQ> <SEQ TYPE="OPERATOR">?</SEQ> <SEQ TYPE="OPERATOR">\</SEQ> <SEQ TYPE="OPERATOR">)</SEQ> <SEQ TYPE="OPERATOR">{</SEQ> <SEQ TYPE="OPERATOR">}</SEQ>

<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>

<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD1">static\b(?!\s*\.)</SEQ_REGEXP>

<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD2">static\b(?=\s*\.)</SEQ_REGEXP>

<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD1">switch\b(?=\s*\()</SEQ_REGEXP>

<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">default\b(?=\s*\:)</SEQ_REGEXP> <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD2">default\b(?=\s*\.)</SEQ_REGEXP>

<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="i" TYPE="KEYWORD1">input\b(?=\s*[\w>])</SEQ_REGEXP>

<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="n" TYPE="KEYWORD3">name\b(?=\s*[\w>])</SEQ_REGEXP>


<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">delegate\b(?=\s*[\w])</SEQ_REGEXP> <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD3">delegate\b(?=\s*[\w<>])</SEQ_REGEXP>

<SPAN_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHARS="ds" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1" DELEGATE="DEFAULTS"> <BEGIN>(struct)?defaultproperties\s*$</BEGIN> <END>}</END> </SPAN_REGEXP>

<KEYWORDS>

<KEYWORD1>Interface</KEYWORD1> <KEYWORD1>Class</KEYWORD1> <INVALID>Expands</INVALID> <KEYWORD1>Extends</KEYWORD1>

<KEYWORD1>Implements</KEYWORD1> <KEYWORD1>Abstract</KEYWORD1> <KEYWORD1>Config</KEYWORD1> <KEYWORD1>GlobalConfig</KEYWORD1> <KEYWORD4>PerObjectConfig</KEYWORD4> <KEYWORD1>Native</KEYWORD1> <KEYWORD1>NativeReplication</KEYWORD1> <KEYWORD1>NoExport</KEYWORD1> <KEYWORD1>NoImport</KEYWORD1> <KEYWORD1>NotTransient</KEYWORD1> <KEYWORD1>Within</KEYWORD1> <KEYWORD1>DependsOn</KEYWORD1>

<KEYWORD4>AutoExpandCategories</KEYWORD4> <KEYWORD4>CollapseCatergories</KEYWORD4> <KEYWORD4>DontCollapseCategories</KEYWORD4> <KEYWORD4>HideCategories</KEYWORD4> <KEYWORD4>HideDropDown</KEYWORD4> <KEYWORD4>NotEditInlineNew</KEYWORD4> <KEYWORD4>NotPlaceable</KEYWORD4> <KEYWORD4>Placeable</KEYWORD4>

<KEYWORD1>ExportStructs</KEYWORD1> <KEYWORD1>SafeReplace</KEYWORD1>

<KEYWORD1>DontCollapseCategories</KEYWORD1>

<KEYWORD4>Inherits</KEYWORD4> <KEYWORD1>Assert</KEYWORD1> <KEYWORD1>Automated</KEYWORD1> <KEYWORD1>Cache</KEYWORD1> <KEYWORD1>CacheExempt</KEYWORD1> <KEYWORD1>Coerce</KEYWORD1> <KEYWORD1>cpptext</KEYWORD1> <KEYWORD1>cppstruct</KEYWORD1> <LABEL>Deprecated</LABEL> <KEYWORD1>DuplicateTransient</KEYWORD1> <KEYWORD1>EdFindable</KEYWORD1> <KEYWORD1>EditConst</KEYWORD1> <KEYWORD1>EditConstArray</KEYWORD1> <KEYWORD1>EditFixedSize</KEYWORD1> <KEYWORD1>EditInline</KEYWORD1> <KEYWORD1>EditInlineNew</KEYWORD1> <KEYWORD1>EditInlineNotify</KEYWORD1> <KEYWORD1>EditInlineUse</KEYWORD1> <KEYWORD1>Immutable</KEYWORD1> <KEYWORD1>Import</KEYWORD1> <KEYWORD1>Init</KEYWORD1> <KEYWORD1>Latent</KEYWORD1> <KEYWORD1>Long</KEYWORD1> <KEYWORD1>ParseConfig</KEYWORD1> <KEYWORD1>ShowCategories</KEYWORD1> <KEYWORD1>Skip</KEYWORD1> <KEYWORD1>Stop</KEYWORD1> <KEYWORD1>Travel</KEYWORD1> <KEYWORD1>Reliable</KEYWORD1> <KEYWORD1>Unreliable</KEYWORD1> <KEYWORD1>Export</KEYWORD1>

<KEYWORD1>Event</KEYWORD1> <KEYWORD1>Function</KEYWORD1> <KEYWORD1>Operator</KEYWORD1> <KEYWORD1>PostOperator</KEYWORD1> <KEYWORD1>PreOperator</KEYWORD1> <KEYWORD1>Replication</KEYWORD1>

<KEYWORD1>If</KEYWORD1> <KEYWORD1>Else</KEYWORD1> <KEYWORD1>Case</KEYWORD1> <KEYWORD1>Break</KEYWORD1> <KEYWORD1>Continue</KEYWORD1> <KEYWORD1>Return</KEYWORD1>

<KEYWORD1>State</KEYWORD1> <KEYWORD1>Goto</KEYWORD1> <KEYWORD1>Auto</KEYWORD1> <KEYWORD1>Ignores</KEYWORD1>

<KEYWORD1>For</KEYWORD1> <KEYWORD1>ForEach</KEYWORD1>

<KEYWORD1>While</KEYWORD1> <KEYWORD1>Do</KEYWORD1> <KEYWORD1>Until</KEYWORD1>

<KEYWORD4>Self</KEYWORD4> <KEYWORD4>Owner</KEYWORD4> <KEYWORD4>Optional</KEYWORD4> <KEYWORD4>Out</KEYWORD4> <KEYWORD4>Object</KEYWORD4> <KEYWORD4>Native</KEYWORD4>

<KEYWORD4>Static</KEYWORD4> <KEYWORD4>Final</KEYWORD4> <KEYWORD4>Server</KEYWORD4> <KEYWORD4>Client</KEYWORD4> <KEYWORD4>Simulated</KEYWORD4> <KEYWORD4>Iterator</KEYWORD4> <KEYWORD1>Singular</KEYWORD1> <INVALID>Intrinsic</INVALID> <KEYWORD1>Exec</KEYWORD1>

<KEYWORD1>Const</KEYWORD1> <KEYWORD1>Var</KEYWORD1> <KEYWORD1>Local</KEYWORD1> <KEYWORD1>Bool</KEYWORD1> <KEYWORD1>Byte</KEYWORD1> <KEYWORD1>Enum</KEYWORD1> <KEYWORD1>Float</KEYWORD1> <KEYWORD1>Int</KEYWORD1> <KEYWORD1>String</KEYWORD1> <KEYWORD1>Struct</KEYWORD1> <KEYWORD1>Pointer</KEYWORD1> <KEYWORD1>Array</KEYWORD1>

<KEYWORD1>Vector</KEYWORD1> <KEYWORD1>Rotator</KEYWORD1> <KEYWORD1>vector2d</KEYWORD1> <KEYWORD1>color</KEYWORD1>

<INVALID>Public</INVALID> <KEYWORD4>Private</KEYWORD4> <KEYWORD4>Protected</KEYWORD4> <KEYWORD4>Localized</KEYWORD4> <KEYWORD4>Config</KEYWORD4> <KEYWORD4>GlobalConfig</KEYWORD4> <KEYWORD4>RepNotify</KEYWORD4> <KEYWORD4>Transient</KEYWORD4> <KEYWORD1>Instanced</KEYWORD1> <KEYWORD1>DataBinding</KEYWORD1>

<KEYWORD2>True</KEYWORD2> <KEYWORD2>False</KEYWORD2>

<KEYWORD2>Super</KEYWORD2> <KEYWORD2>Global</KEYWORD2> <KEYWORD2>New</KEYWORD2> <KEYWORD2>None</KEYWORD2>

<KEYWORD2>Vect2D</KEYWORD2> <KEYWORD2>Vect</KEYWORD2> <KEYWORD2>Rot</KEYWORD2> <KEYWORD2>Normal</KEYWORD2> <KEYWORD2>VSize</KEYWORD2>

<KEYWORD2>ArrayCount</KEYWORD2> <KEYWORD2>EnumCount</KEYWORD2> <KEYWORD2>Length</KEYWORD2>

<KEYWORD2>Find</KEYWORD2> <KEYWORD2>Add</KEYWORD2> <KEYWORD2>AddItem</KEYWORD2> <KEYWORD2>Insert</KEYWORD2> <KEYWORD2>InsertItem</KEYWORD2> <KEYWORD2>Remove</KEYWORD2> <KEYWORD2>RemoveItem</KEYWORD2>


<KEYWORD3>Weapon</KEYWORD3> <KEYWORD3>Actor</KEYWORD3> <KEYWORD3>Controller</KEYWORD3> <KEYWORD3>LightType</KEYWORD3> <KEYWORD3>Level</KEYWORD3> <KEYWORD3>WorldInfo</KEYWORD3> <KEYWORD3>Pawn</KEYWORD3> <KEYWORD3>PlayerController</KEYWORD3> <KEYWORD3>Material</KEYWORD3> <KEYWORD3>Texture</KEYWORD3> <KEYWORD3>Effects</KEYWORD3> <KEYWORD3>Info</KEYWORD3>

<KEYWORD3>Canvas</KEYWORD3> <KEYWORD3>HUD</KEYWORD3> <KEYWORD3>UIRoot</KEYWORD3> <KEYWORD3>UIScene</KEYWORD3> <KEYWORD3>UIObject</KEYWORD3> <KEYWORD3>UIImage</KEYWORD3>

<KEYWORD3>Emitter</KEYWORD3> <KEYWORD3>Projector</KEYWORD3> <KEYWORD3>DamageType</KEYWORD3> <KEYWORD3>GameInfo</KEYWORD3> <KEYWORD3>GameRules</KEYWORD3> <KEYWORD3>PlayerReplicationInfo</KEYWORD3> <KEYWORD3>GameReplicationInfo</KEYWORD3> <KEYWORD3>Inventory</KEYWORD3> <KEYWORD3>Vehicle</KEYWORD3> <KEYWORD3>StaticMesh</KEYWORD3>

<KEYWORD3>NavigationPoint</KEYWORD3> <KEYWORD3>PhysicsVolume</KEYWORD3> <KEYWORD3>Mutator</KEYWORD3>

<KEYWORD3>Component</KEYWORD3> <KEYWORD3>ActorComponent</KEYWORD3> <KEYWORD3>PrimitiveComponent</KEYWORD3> <KEYWORD3>SVehicleSimBase</KEYWORD3> <KEYWORD3>StaticMeshComponent</KEYWORD3> <KEYWORD3>SkeletalMeshComponent</KEYWORD3> <KEYWORD3>UTSkeletalMeshComponent</KEYWORD3>

<KEYWORD3>Sound</KEYWORD3> <KEYWORD3>SoundNode</KEYWORD3> <KEYWORD3>SoundCue</KEYWORD3>

<KEYWORD4>FindChild</KEYWORD4> <KEYWORD4>IsA</KEYWORD4> <KEYWORD4>ClassIsChild</KEYWORD4> <KEYWORD4>Draw3DLine</KEYWORD4> <KEYWORD4>DeProject</KEYWORD4> <KEYWORD4>ReplicateMove</KEYWORD4> <KEYWORD4>ProcessMove</KEYWORD4> <KEYWORD4>PlayerTick</KEYWORD4> <KEYWORD4>Tick</KEYWORD4> <KEYWORD4>PostRender</KEYWORD4> <KEYWORD4>PostBeginPlay</KEYWORD4> <KEYWORD4>PreBeginPlay</KEYWORD4> <KEYWORD4>Trace</KEYWORD4> <KEYWORD4>Spawn</KEYWORD4>

<KEYWORD4>SetTimer</KEYWORD4> <KEYWORD4>ClearTimer</KEYWORD4> <KEYWORD4>IsTimerActive</KEYWORD4> <KEYWORD4>GetTimerCount</KEYWORD4> <KEYWORD4>GetTimerRate</KEYWORD4>

</KEYWORDS> </RULES>

<RULES IGNORE_CASE="TRUE" SET="DIRECTIVE"> <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>

<EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">exec</EOL_SPAN> <EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">alwaysexec</EOL_SPAN> <EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">forceexec</EOL_SPAN> <EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">include</EOL_SPAN> <EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">call</EOL_SPAN> <EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">alwayscall</EOL_SPAN>

<EOL_SPAN DELEGATE="IGNORED" TYPE="KEYWORD1">error</EOL_SPAN>

<EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">ifdef</EOL_SPAN> <EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">ifndef</EOL_SPAN> <EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">if</EOL_SPAN> <EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">elif</EOL_SPAN> <EOL_SPAN DELEGATE="IGNORED" TYPE="KEYWORD1">else</EOL_SPAN> <EOL_SPAN DELEGATE="IGNORED" TYPE="KEYWORD1">endif</EOL_SPAN>

<EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">define</EOL_SPAN> <EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">undef</EOL_SPAN> <EOL_SPAN DELEGATE="MAIN" TYPE="KEYWORD1">linenumber</EOL_SPAN>

<EOL_SPAN DELEGATE="PRAGMA" TYPE="KEYWORD1">pragma</EOL_SPAN> <EOL_SPAN DELEGATE="PRAGMA" TYPE="KEYWORD1">ucpp</EOL_SPAN> </RULES>

<RULES DEFAULT="COMMENT1" SET="COMMENT"> <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="@" TYPE="LABEL">(?<!\w)@\w+</SEQ_REGEXP> </RULES>

<RULES DEFAULT="COMMENT3" SET="DOCCOMMENT"> <IMPORT DELEGATE="COMMENT"/> </RULES>

<RULES DEFAULT="COMMENT2" SET="EOLCOMMENT"> <IMPORT DELEGATE="COMMENT"/> </RULES>

<RULES DEFAULT="COMMENT1" SET="IGNORED"> <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN> </RULES>

<RULES DEFAULT="MARKUP" SET="PRAGMA">

<EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>

<KEYWORDS> <KEYWORD1>ucpp</KEYWORD1>

<KEYWORD3>notice</KEYWORD3> <KEYWORD3>rename</KEYWORD3> <KEYWORD3>include</KEYWORD3> <KEYWORD3>warning</KEYWORD3> <KEYWORD3>config</KEYWORD3>

<LITERAL2>true</LITERAL2> <LITERAL2>false</LITERAL2> <LITERAL2>on</LITERAL2> <LITERAL2>off</LITERAL2> </KEYWORDS> </RULES>

<RULES IGNORE_CASE="TRUE" SET="EXEC_COMMAND" NO_WORD_SEP="_\\.,+-<>/?^&*">

<EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>

<BEGIN>"</BEGIN> <END>"</END>

<SEQ_REGEXP HASH_CHARS="0123456789" TYPE="DIGIT">\b(0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?)\b</SEQ_REGEXP>

<MARK_PREVIOUS MATCH_TYPE="OPERATOR" TYPE="MARKUP">=</MARK_PREVIOUS>

<KEYWORDS> <LITERAL2>true</LITERAL2> <LITERAL2>false</LITERAL2> <LITERAL2>yes</LITERAL2> <LITERAL2>no</LITERAL2> <LITERAL2>on</LITERAL2> <LITERAL2>off</LITERAL2> </KEYWORDS> </RULES>

<RULES SET="DEFAULTS" ESCAPE="\" IGNORE_CASE="TRUE">

<SEQ TYPE="KEYWORD1">{</SEQ>

<BEGIN>/*</BEGIN> <END>*/</END>

<EOL_SPAN TYPE="COMMENT2" DELEGATE="EOLCOMMENT">//</EOL_SPAN>

<BEGIN>"</BEGIN> <END>"</END>

<BEGIN>'</BEGIN> <END>'</END>


<EOL_SPAN_REGEXP HASH_CHAR="b" AT_WHITESPACE_END="TRUE" DELEGATE="BEGINOBJECT" MATCH_TYPE="KEYWORD1">begin\s+object\s*</EOL_SPAN_REGEXP> <EOL_SPAN_REGEXP HASH_CHAR="e" AT_WHITESPACE_END="TRUE" MATCH_TYPE="KEYWORD1">end\s+object\s*</EOL_SPAN_REGEXP>

<SEQ_REGEXP HASH_CHARS="+-0123456789" TYPE="DIGIT">\b0x[\p{XDigit}]+|[+-]?\b\d+(\.\d*)?([eE][+-]?\d+)?[fF]?\b</SEQ_REGEXP>

<MARK_PREVIOUS AT_WORD_START="TRUE" MATCH_TYPE="OPERATOR" TYPE="MARKUP">=</MARK_PREVIOUS> <MARK_PREVIOUS AT_WORD_START="TRUE" MATCH_TYPE="OPERATOR" TYPE="MARKUP">.</MARK_PREVIOUS> <MARK_PREVIOUS AT_WORD_START="TRUE" MATCH_TYPE="OPERATOR" TYPE="MARKUP">(</MARK_PREVIOUS> <MARK_PREVIOUS AT_WORD_START="TRUE" MATCH_TYPE="OPERATOR" TYPE="MARKUP">[</MARK_PREVIOUS>

<SEQ TYPE="OPERATOR">]</SEQ> <SEQ TYPE="OPERATOR">)</SEQ>

<SEQ TYPE="OPERATOR">,</SEQ>

<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHARS="abcdefghijklmnopqrstuvwxyz" TYPE="MARKUP">\w+</SEQ_REGEXP>

<KEYWORDS> <KEYWORD1>Add</KEYWORD1> <KEYWORD1>Empty</KEYWORD1> <KEYWORD1>Remove</KEYWORD1>

<KEYWORD2>False</KEYWORD2> <KEYWORD2>None</KEYWORD2> <KEYWORD2>True</KEYWORD2> </KEYWORDS> </RULES>

<RULES SET="BEGINOBJECT"> <SEQ TYPE="OPERATOR">=</SEQ>

<BEGIN>/*</BEGIN> <END>*/</END>

<BEGIN>'</BEGIN> <END>'</END>

<KEYWORDS> <KEYWORD1>Class</KEYWORD1> <KEYWORD1>Name</KEYWORD1> <KEYWORD1>LegacyClassName</KEYWORD1> <KEYWORD1>ObjName</KEYWORD1> <KEYWORD1>Archetype</KEYWORD1> </KEYWORDS> </RULES> </MODE>