User:00zX/UScript.xml: Difference between revisions
From Unreal Wiki, The Unreal Engine Documentation Site
mNo edit summary |
mNo edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 27: | Line 27: | ||
<PROPERTY NAME="unindentThisLine" | <PROPERTY NAME="unindentThisLine" | ||
VALUE="^.*(default:\s*|case.*:.*)$" /> | VALUE="^.*(default:\s*|case.*:.*)$" /> | ||
<PROPERTY NAME="lineUpClosingBracket" VALUE="true" /> | |||
</PROPS> | </PROPS> | ||
<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]?"> | ||
<SPAN TYPE=" | <!-- multi line comments --> | ||
<BEGIN>/ | <SPAN TYPE="COMMENT1" DELEGATE="COMMENT"> | ||
<BEGIN>/*</BEGIN> | |||
<END>*/</END> | <END>*/</END> | ||
</SPAN> | </SPAN> | ||
<SPAN TYPE="COMMENT2" DELEGATE="COMMENT"> | |||
<SPAN TYPE=" | <BEGIN>/**</BEGIN> | ||
<BEGIN>/*</BEGIN> | |||
<END>*/</END> | <END>*/</END> | ||
</SPAN> | </SPAN> | ||
Line 53: | Line 54: | ||
</SPAN> | </SPAN> | ||
<!-- name and object literals --> | <!-- name and object literals NOTE: Defaults dont actually use these--> | ||
<SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\"> | <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\"> | ||
<BEGIN>'</BEGIN> | <BEGIN>'</BEGIN> | ||
Line 59: | Line 60: | ||
</SPAN> | </SPAN> | ||
<!-- | <!-- <SPAN_REGEXP AT_WORD_START="TRUE" TYPE="LITERAL2" NO_LINE_BREAK="TRUE"> | ||
<BEGIN>\w*\s*'</BEGIN> | <BEGIN>\w*\s*'</BEGIN> | ||
<END>'</END> | <END>'</END> | ||
Line 92: | Line 93: | ||
<!-- UE3 native replacements --> | <!-- UE3 native replacements --> | ||
<SEQ_REGEXP HASH_CHAR="{" TYPE="COMMENT4">\{[^}]+}</SEQ_REGEXP> | <!--<SEQ_REGEXP HASH_CHAR="{" TYPE="COMMENT4">\{[^}]+}</SEQ_REGEXP>--> | ||
<!-- operators, separators and brackets --> | <!-- operators, separators and brackets --> | ||
Line 108: | Line 109: | ||
<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> | ||
Line 118: | Line 119: | ||
<!-- functions --> | <!-- functions --> | ||
<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS> | <!--<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>--> | ||
<!-- static modifier --> | <!-- static modifier --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD1">static\b(?!\s*\.)</SEQ_REGEXP> | ||
<!-- static function call --> | <!-- static function call --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD2">static\b(?=\s*\.)</SEQ_REGEXP> | ||
<!-- switch keyword --> | <!-- switch keyword --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD1">switch\b(?=\s*\()</SEQ_REGEXP> | ||
<!-- default switch case --> | <!-- default switch case --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">default\b(?=\s*\:)</SEQ_REGEXP> | ||
<!-- default value access --> | <!-- default value access --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD2">default\b(?=\s*\.)</SEQ_REGEXP> | ||
<!-- input variable modifier --> | <!-- input variable modifier --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="i" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="i" TYPE="KEYWORD1">input\b(?=\s*[\w>])</SEQ_REGEXP> | ||
<!-- name datatype --> | <!-- name datatype --> | ||
<!-- <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="n" TYPE="KEYWORD3">name\b(?=\s*[\w>])</SEQ_REGEXP>--> | |||
<!-- class keyword --> | <!-- class keyword --> | ||
<!-- <SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="c" | <!-- <SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="c" TYPE="KEYWORD1">class\b(?=\s*[\w])</SEQ_REGEXP>--> | ||
<!-- class identifier?? --> | <!-- class identifier?? --> | ||
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="c" TYPE="KEYWORD1">class\b(?=[\s*\w'])</SEQ_REGEXP> | |||
<!-- class datatype --> | <!-- class / array datatype --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHARS="ac." TYPE="KEYWORD1">(?!\.)(array|class)\b(?=\s*[(^\()\w(?!(array|class))><])</SEQ_REGEXP> | |||
<!-- class accessor --> | |||
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="." TYPE="KEYWORD1">(?!\s*)\.class</SEQ_REGEXP> | |||
<!-- delegate keyword --> | <!-- delegate keyword --> | ||
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="d" | <SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">delegate\b(?=\s*[\w])</SEQ_REGEXP> | ||
<!-- delegate datatype --> | <!-- delegate datatype --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" | <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">delegate\b(?=\s*[\w<>])</SEQ_REGEXP> | ||
<!-- default values section for class and structs --> | <!-- default values section for class and structs --> | ||
Line 169: | Line 161: | ||
<END>}</END> | <END>}</END> | ||
</SPAN_REGEXP> | </SPAN_REGEXP> | ||
<!-- Standard Variable Keyword --> | |||
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="v" TYPE="KEYWORD1" MATCH_TYPE="KEYWORD4">var(\b\s+)(?![\s*(])</SEQ_REGEXP> | |||
<!-- New Operator / Special Editor version of variable declaration --> | |||
<SPAN_REGEXP HASH_CHARS="vn" TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1"> | |||
<BEGIN>(var|new)\b\s*[\w(]</BEGIN> | |||
<END>)</END> | |||
</SPAN_REGEXP> | |||
<!-- Editor Markup --> | |||
<SPAN_REGEXP HASH_CHAR="<" NO_LINE_BREAK="TRUE" TYPE="MARKUP" DELEGATE="METADATA"> | |||
<BEGIN><</BEGIN><!--([^(array)<])--> | |||
<END>></END> | |||
</SPAN_REGEXP> | |||
<!--<SEQ_REGEXP HASH_CHARS="sc" MATCH_TYPE="KEYWORD1" DELEGATE="CPPTEXT">(struct)?cpptext\b\s*\n*\{.*\}</SEQ_REGEXP>--> | |||
<KEYWORDS> | <KEYWORDS> | ||
Line 174: | Line 183: | ||
<!-- Class Syntax --> | <!-- Class Syntax --> | ||
<KEYWORD1>Interface</KEYWORD1> | <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 --> | ||
<KEYWORD1>Extends</KEYWORD1> | <KEYWORD1>Extends</KEYWORD1> | ||
Line 192: | Line 201: | ||
<KEYWORD1>Within</KEYWORD1><!-- since UE2 --> | <KEYWORD1>Within</KEYWORD1><!-- since UE2 --> | ||
<KEYWORD1>DependsOn</KEYWORD1><!-- since UE2 --> | <KEYWORD1>DependsOn</KEYWORD1><!-- since UE2 --> | ||
<KEYWORD4>Deprecated</KEYWORD4><!-- since UE2, marks variables that should no longer be used --> | |||
<!-- Class Syntax: Secondary Specifiers --> | <!-- Class Syntax: Secondary Specifiers --> | ||
Line 197: | Line 207: | ||
<KEYWORD4>AutoExpandCategories</KEYWORD4><!-- since UE3? --> | <KEYWORD4>AutoExpandCategories</KEYWORD4><!-- since UE3? --> | ||
<KEYWORD4>CollapseCatergories</KEYWORD4><!-- since UE2 --> | <KEYWORD4>CollapseCatergories</KEYWORD4><!-- since UE2 --> | ||
<KEYWORD4>DontCollapseCategories</KEYWORD4> | <KEYWORD4>DontCollapseCategories</KEYWORD4><!-- UE2+ --> | ||
< | <KEYWORD1>EdFindable</KEYWORD1> | ||
<KEYWORD4> | <KEYWORD1>EditConst</KEYWORD1> | ||
<KEYWORD4> | <KEYWORD1>EditConstArray</KEYWORD1><!-- only UE2 --> | ||
<KEYWORD4>NotPlaceable</KEYWORD4><!-- | <KEYWORD1>EditFixedSize</KEYWORD1><!-- since UE3 --> | ||
<KEYWORD4>HideCategories</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>HideDropDown</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>NotPlaceable</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>Placeable</KEYWORD4> | <KEYWORD4>Placeable</KEYWORD4> | ||
<KEYWORD1>ExportStructs</KEYWORD1><!-- only UE2 --> | <KEYWORD1>ExportStructs</KEYWORD1><!-- only UE2 --> | ||
<KEYWORD1>SafeReplace</KEYWORD1> | <KEYWORD1>SafeReplace</KEYWORD1> | ||
<KEYWORD1>ShowCategories</KEYWORD1><!-- since UE2 --> | |||
<KEYWORD1> | <!-- Object Specifiers --> | ||
<KEYWORD4>EditInline</KEYWORD4><!-- since UE2 --> | |||
<KEYWORD4>EditInlineUse</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD1>EditInlineNew</KEYWORD1><!-- since UE2 --> | |||
<KEYWORD1>EditInlineNotify</KEYWORD1><!-- only UE2 --> | |||
<KEYWORD4>NotEditInlineNew</KEYWORD4><!-- since UE2 --> | |||
<!--===================================================================================================--> | <!--===================================================================================================--> | ||
<KEYWORD4>Inherits</KEYWORD4><!-- native effect, since UE3 --> | <KEYWORD4>Inherits</KEYWORD4><!-- native effect, since UE3 --> | ||
<KEYWORD1>Assert</KEYWORD1> | <KEYWORD1>Assert</KEYWORD1> | ||
<KEYWORD1>Cache</KEYWORD1><!-- only UE2 --> | <KEYWORD1>Cache</KEYWORD1><!-- only UE2 --> | ||
<KEYWORD1>CacheExempt</KEYWORD1><!-- only UE2 --> | <KEYWORD1>CacheExempt</KEYWORD1><!-- only UE2 --> | ||
<KEYWORD1>Import</KEYWORD1> | <KEYWORD1>Import</KEYWORD1> | ||
<KEYWORD1>Init</KEYWORD1> | <KEYWORD1>Init</KEYWORD1> | ||
<KEYWORD1>Latent</KEYWORD1> | <KEYWORD1>Latent</KEYWORD1> | ||
<KEYWORD1>ParseConfig</KEYWORD1> | <KEYWORD1>ParseConfig</KEYWORD1> | ||
<KEYWORD1>Skip</KEYWORD1> | <KEYWORD1>Skip</KEYWORD1> | ||
<KEYWORD1>Stop</KEYWORD1> | <KEYWORD1>Stop</KEYWORD1> | ||
<KEYWORD1>Travel</KEYWORD1> | <KEYWORD1>Travel</KEYWORD1> | ||
<KEYWORD1>Export</KEYWORD1> | <KEYWORD1>Export</KEYWORD1> | ||
<KEYWORD1>forcescriptorder</KEYWORD1> | |||
<!--===================================================================================================--> | <!--===================================================================================================--> | ||
<!-- Function Syntax: Primary Specifiers --> | <!-- Function Syntax: Primary Specifiers --> | ||
<!--<KEYWORD1>cpptext</KEYWORD1>--><!-- only UE2+ --> | |||
<!--<KEYWORD1>cppstruct</KEYWORD1>--><!-- only UE2? --> | |||
<!--<KEYWORD1>structcpptext</KEYWORD1>--><!-- UE3+ --> | |||
<KEYWORD1>Event</KEYWORD1> | <KEYWORD1>Event</KEYWORD1> | ||
<KEYWORD1>Function</KEYWORD1> | <KEYWORD1>Function</KEYWORD1> | ||
Line 261: | Line 263: | ||
<KEYWORD1>State</KEYWORD1> | <KEYWORD1>State</KEYWORD1> | ||
<KEYWORD1>Goto</KEYWORD1> | <KEYWORD1>Goto</KEYWORD1> | ||
<KEYWORD2>GotoState</KEYWORD2> | |||
<!-- State Syntax: Secondary Specifiers --> | <!-- State Syntax: Secondary Specifiers --> | ||
< | <KEYWORD4>Auto</KEYWORD4> | ||
< | <KEYWORD4>Ignores</KEYWORD4> | ||
<!-- Function Syntax: Iterators --> | <!-- Function Syntax: Iterators --> | ||
Line 273: | Line 276: | ||
<KEYWORD1>Until</KEYWORD1> | <KEYWORD1>Until</KEYWORD1> | ||
<!-- db: Secondary Keywords - grey/italic (like uncodex)--> | |||
<KEYWORD4>Self</KEYWORD4> | <KEYWORD4>Self</KEYWORD4> | ||
<KEYWORD4>Owner</KEYWORD4><!--common--> | <KEYWORD4>Outer</KEYWORD4><!--common--> | ||
<COMMENT3>Owner</COMMENT3><!--common--> | |||
<KEYWORD4>Instigator</KEYWORD4><!--common--> | |||
<KEYWORD4>Optional</KEYWORD4> | <KEYWORD4>Optional</KEYWORD4> | ||
<KEYWORD4>Out</KEYWORD4> | <KEYWORD4>Out</KEYWORD4> | ||
<KEYWORD4>Object</KEYWORD4> | <KEYWORD4>Object</KEYWORD4> | ||
<KEYWORD4>Native</KEYWORD4> | <KEYWORD4>Native</KEYWORD4> | ||
<!--<KEYWORD2>New</KEYWORD2>--> | |||
<KEYWORD2>None</KEYWORD2> | |||
<KEYWORD2>Super</KEYWORD2> | |||
<KEYWORD2>Global</KEYWORD2> | |||
<INVALID>Null</INVALID> | |||
<!-- Function Secondary | <!-- Function Syntax: Secondary Specifiers --> | ||
<INVALID>Intrinsic</INVALID><!-- only early UE1, replaced by "native" --> | |||
<INVALID>Virtual</INVALID> | |||
<KEYWORD4>Static</KEYWORD4> | <KEYWORD4>Static</KEYWORD4> | ||
<KEYWORD4>Final</KEYWORD4> | <KEYWORD4>Final</KEYWORD4> | ||
<KEYWORD4>Server</KEYWORD4><!-- | <KEYWORD4>Server</KEYWORD4><!-- UE3+ --> | ||
<KEYWORD4>Client</KEYWORD4><!-- | <KEYWORD4>Client</KEYWORD4><!-- UE3+ --> | ||
<KEYWORD4>Simulated</KEYWORD4> | <KEYWORD4>Simulated</KEYWORD4> | ||
<KEYWORD4>Iterator</KEYWORD4> | <KEYWORD4>Iterator</KEYWORD4> | ||
<KEYWORD1> | <KEYWORD4>Singular</KEYWORD4> | ||
< | <KEYWORD4>Exec</KEYWORD4> | ||
< | <KEYWORD1>Reliable</KEYWORD1> | ||
<KEYWORD1>Unreliable</KEYWORD1> | |||
<KEYWORD1>Automated</KEYWORD1><!-- only UE2 --> | |||
<KEYWORD4>k2override</KEYWORD4><!-- UDK+ --> | |||
<!-- built-in type names --> | <!-- built-in type names --> | ||
<KEYWORD1>Const</KEYWORD1> | <KEYWORD1>Const</KEYWORD1> | ||
<KEYWORD1>Var</KEYWORD1> | <!--<KEYWORD1>Var</KEYWORD1>--> | ||
<KEYWORD1>Local</KEYWORD1> | <KEYWORD1>Local</KEYWORD1> | ||
<!-- db: modifed these to be keyword 1 from 3 --> | <!-- db: modifed these to be keyword 1 from 3 --> | ||
<!-- Variable Primary (Syntax)Flags --> | <!-- Variable Primary (Syntax)Flags --> | ||
Line 306: | Line 322: | ||
<KEYWORD1>Struct</KEYWORD1> | <KEYWORD1>Struct</KEYWORD1> | ||
<KEYWORD1>Pointer</KEYWORD1><!-- UE2+ --> | <KEYWORD1>Pointer</KEYWORD1><!-- UE2+ --> | ||
<KEYWORD1>Array</KEYWORD1> | <!--<KEYWORD1>Array</KEYWORD1>--> | ||
<KEYWORD1>Name</KEYWORD1> | |||
<KEYWORD1> | <KEYWORD1>vector</KEYWORD1> | ||
<KEYWORD1> | <KEYWORD1>rotator</KEYWORD1> | ||
<KEYWORD1>vector2d</KEYWORD1> | <KEYWORD1>vector2d</KEYWORD1> | ||
<KEYWORD1>color</KEYWORD1> | <KEYWORD1>color</KEYWORD1> | ||
<KEYWORD1>quat</KEYWORD1> | |||
<KEYWORD1>matrix</KEYWORD1> | |||
<!-- Variable Secondary (Syntax)Flags--> | <!-- Variable Secondary (Syntax)Flags--> | ||
Line 322: | Line 341: | ||
<KEYWORD4>RepNotify</KEYWORD4> | <KEYWORD4>RepNotify</KEYWORD4> | ||
<KEYWORD4>Transient</KEYWORD4> | <KEYWORD4>Transient</KEYWORD4> | ||
<KEYWORD1>Instanced</KEYWORD1><!-- | <KEYWORD1>DuplicateTransient</KEYWORD1><!-- since UE3 --> | ||
<KEYWORD1>DataBinding</KEYWORD1><!-- | <KEYWORD1>Instanced</KEYWORD1><!-- UE2+ --> | ||
<KEYWORD1>DataBinding</KEYWORD1><!-- UE3+ --> | |||
<KEYWORD1>Immutable</KEYWORD1><!-- UE3+ (struct) --> | |||
<KEYWORD1>Coerce</KEYWORD1><!-- (string) --> | |||
<KEYWORD1>Long</KEYWORD1><!-- UE2+ (struct) --> | |||
<KEYWORD4>k2Call</KEYWORD4> | |||
<KEYWORD4>PrivateWrite</KEYWORD4> | |||
<KEYWORD4>interp</KEYWORD4> | |||
<KEYWORD4>Archetype</KEYWORD4> | |||
<KEYWORD4>k2pure</KEYWORD4> | |||
<!-- Editor --> | |||
<KEYWORD4>EditorOnly</KEYWORD4> | |||
<KEYWORD4>EditHide</KEYWORD4> | |||
<!-- literals and special function calls --> | <!-- literals and special function calls --> | ||
<KEYWORD2> | <KEYWORD2>true</KEYWORD2> | ||
<KEYWORD2> | <KEYWORD2>false</KEYWORD2> | ||
<KEYWORD2>enable</KEYWORD2> | |||
<KEYWORD2>disable</KEYWORD2> | |||
<KEYWORD2> | |||
<KEYWORD2> | |||
<!-- literals --> | <!-- literals --> | ||
Line 339: | Line 366: | ||
<KEYWORD2>Vect</KEYWORD2> | <KEYWORD2>Vect</KEYWORD2> | ||
<KEYWORD2>Rot</KEYWORD2> | <KEYWORD2>Rot</KEYWORD2> | ||
<KEYWORD2>NameOf</KEYWORD2> | |||
<KEYWORD2>Normal</KEYWORD2> | |||
<KEYWORD2>VSize</KEYWORD2> | |||
<KEYWORD2>ArrayCount</KEYWORD2> | <KEYWORD2>ArrayCount</KEYWORD2> | ||
<KEYWORD2>EnumCount</KEYWORD2> | <KEYWORD2>EnumCount</KEYWORD2> | ||
<KEYWORD2>Length</KEYWORD2><!-- UE2+ --> | <KEYWORD2>Length</KEYWORD2><!-- UE2+ --> | ||
<KEYWORD2>PathName</KEYWORD2> | |||
</KEYWORDS> | |||
<!-- Expanded UnrealEngine highlighting rules --> | |||
<IMPORT DELEGATE="uscript::UEOBJECT"/> | |||
<IMPORT DELEGATE="uscript::UEFUNCTION"/> | |||
</RULES> | |||
<!-- UnrealEngine Classes--> | |||
<RULES SET="UEOBJECT" IGNORE_CASE="TRUE"> | |||
<KEYWORDS> | |||
<!--<KEYWORD1>Class</KEYWORD1>--> | |||
<KEYWORD1>Name</KEYWORD1> | |||
<KEYWORD1>LegacyClassName</KEYWORD1><!-- UE3 --> | |||
<KEYWORD1>Archetype</KEYWORD1><!-- UE3 --> | |||
<!-- literals --> | |||
<!-- | <KEYWORD2>False</KEYWORD2> | ||
<KEYWORD2>None</KEYWORD2> | |||
< | <KEYWORD2>True</KEYWORD2> | ||
< | |||
< | |||
<KEYWORD3>Weapon</KEYWORD3> | <KEYWORD3>Weapon</KEYWORD3> | ||
<!-- <KEYWORD3>Other</KEYWORD3> | <!-- <KEYWORD3>Other</KEYWORD3> | ||
Line 377: | Line 407: | ||
<KEYWORD3>PlayerController</KEYWORD3> | <KEYWORD3>PlayerController</KEYWORD3> | ||
<KEYWORD3>Material</KEYWORD3> | <KEYWORD3>Material</KEYWORD3> | ||
<KEYWORD3>PhysicalMaterial</KEYWORD3> | |||
<KEYWORD3>MaterialInterface</KEYWORD3><!-- UE3 --> | |||
<KEYWORD3>Texture</KEYWORD3> | <KEYWORD3>Texture</KEYWORD3> | ||
<KEYWORD3>Texture2D</KEYWORD3> | |||
<KEYWORD3>Effects</KEYWORD3> | <KEYWORD3>Effects</KEYWORD3> | ||
<KEYWORD3>Info</KEYWORD3> | <KEYWORD3>Info</KEYWORD3> | ||
<KEYWORD3>Font</KEYWORD3> | |||
<KEYWORD3>Projectile</KEYWORD3> | |||
<KEYWORD3>PlayerInput</KEYWORD3> | |||
<KEYWORD3>SkeletalMesh</KEYWORD3> | |||
<KEYWORD3>AnimTree</KEYWORD3> | |||
<KEYWORD3>PhysicsAsset</KEYWORD3> | |||
<!-- UnrealEngine Enums --> | |||
<KEYWORD3>LinearColor</KEYWORD3><!-- UE3 --> | |||
<KEYWORD3>FontRenderInfo</KEYWORD3> | |||
<KEYWORD3>InterpCurveVector</KEYWORD3> | |||
<KEYWORD3>InterpCurvePointVector</KEYWORD3> | |||
<KEYWORD3>TraceHitInfo</KEYWORD3> | |||
<!-- User Interface --> | <!-- User Interface --> | ||
Line 388: | Line 434: | ||
<KEYWORD3>UIObject</KEYWORD3> | <KEYWORD3>UIObject</KEYWORD3> | ||
<KEYWORD3>UIImage</KEYWORD3> | <KEYWORD3>UIImage</KEYWORD3> | ||
<KEYWORD3>TextureCoordinates</KEYWORD3> | |||
<KEYWORD3>AnimSet</KEYWORD3><!-- UE3 --> | |||
<KEYWORD3>AnimNode</KEYWORD3> | |||
<KEYWORD3>AnimNodeSequence</KEYWORD3> | |||
<KEYWORD3>CameraAnim</KEYWORD3> | |||
<KEYWORD3>Emitter</KEYWORD3> | <KEYWORD3>Emitter</KEYWORD3> | ||
<KEYWORD3>ParticleSystem</KEYWORD3> | |||
<KEYWORD3>Projector</KEYWORD3><!-- UE2+ --> | <KEYWORD3>Projector</KEYWORD3><!-- UE2+ --> | ||
<KEYWORD3>DamageType</KEYWORD3> | <KEYWORD3>DamageType</KEYWORD3> | ||
Line 404: | Line 457: | ||
<KEYWORD3>Mutator</KEYWORD3> | <KEYWORD3>Mutator</KEYWORD3> | ||
<KEYWORD3>ForceFeedbackWaveform</KEYWORD3> | |||
<KEYWORD3>FluidSurfaceActor</KEYWORD3> | |||
<KEYWORD3>Sequence</KEYWORD3> | |||
<KEYWORD3>SequenceEvent</KEYWORD3> | |||
<KEYWORD3>SequenceObject</KEYWORD3> | |||
<KEYWORD3>FaceFXAsset</KEYWORD3> | |||
<!--Components UE3--> | |||
<KEYWORD3>Component</KEYWORD3> | |||
<KEYWORD3>ActorComponent</KEYWORD3> | |||
<KEYWORD3>PrimitiveComponent</KEYWORD3> | |||
<KEYWORD3>SVehicleSimBase</KEYWORD3> | |||
<KEYWORD3>StaticMeshComponent</KEYWORD3> | |||
<KEYWORD3>SkeletalMeshComponent</KEYWORD3> | |||
<KEYWORD3>ParticleSystemComponent</KEYWORD3> | |||
<KEYWORD3>PointLightComponent</KEYWORD3> | |||
<KEYWORD3>SplineComponent</KEYWORD3> | |||
<KEYWORD3>AudioComponent</KEYWORD3> | |||
<KEYWORD3>DynamicLightEnvironmentComponent</KEYWORD3> | |||
<!--UDK specific--> | |||
<KEYWORD3>UDKParticleSystemComponent</KEYWORD3> | |||
<KEYWORD3>UDKExplosionLight</KEYWORD3> | |||
<!--UT3 specific--> | |||
<KEYWORD3>UTSkeletalMeshComponent</KEYWORD3> | |||
<!--Sound, was changed--> | |||
<KEYWORD3>Sound</KEYWORD3> | |||
<KEYWORD3>SoundNode</KEYWORD3><!-- UE3 --> | |||
<KEYWORD3>SoundCue</KEYWORD3><!-- UE3 --> | |||
</KEYWORDS> | |||
</RULES> | |||
<RULES SET="UEFUNCTION" IGNORE_CASE="TRUE"> | |||
<!-- UnrealEngine functions --> | |||
<SEQ_REGEXP HASH_CHAR="fi" TYPE="KEYWORD4">FindChild(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="is" TYPE="KEYWORD4">IsA(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="c" TYPE="KEYWORD4">ClassIsChildOf(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="isi" TYPE="KEYWORD4">IsInState(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="dr" TYPE="KEYWORD4">Draw3DLine(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="de" TYPE="KEYWORD4">DeProject(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="re" TYPE="KEYWORD4">ReplicateMove(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="pr" TYPE="KEYWORD4">ProcessMove(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="pl" TYPE="KEYWORD4">PlayerTick(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="po" TYPE="KEYWORD4">PostRender(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="ge" TYPE="KEYWORD4">GetEnum(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="fi" TYPE="KEYWORD4">FindObject(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="tr" TYPE="KEYWORD4">Trace(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="fa" TYPE="KEYWORD4">FastTrace(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<SEQ_REGEXP HASH_CHAR="sp" TYPE="KEYWORD4">Spawn(?=[(]\s*|\w*[)])</SEQ_REGEXP> | |||
<KEYWORDS> | |||
<!-- Dynamic Arrays --> | |||
<KEYWORD2>Find</KEYWORD2><!-- (since UE3) --> | |||
<KEYWORD2>Add</KEYWORD2><!-- (since UE3) --> | |||
<KEYWORD2>AddItem</KEYWORD2><!-- (since UE3) --> | |||
<KEYWORD2>Insert</KEYWORD2><!-- (since UE2) --> | |||
<KEYWORD2>InsertItem</KEYWORD2><!-- (since UE3) --> | |||
<KEYWORD2>Remove</KEYWORD2><!-- UE2+ --> | |||
<KEYWORD2>RemoveItem</KEYWORD2><!-- UE+ --> | |||
<KEYWORD1>index_none</KEYWORD1> | |||
<!-- Constants --> | |||
<KEYWORD2>MaxInt</KEYWORD2> | |||
<KEYWORD2>Pi</KEYWORD2> | |||
<KEYWORD2>RadToDeg</KEYWORD2> | |||
<KEYWORD2>DegToRad</KEYWORD2> | |||
<KEYWORD2>UnrRotToRad</KEYWORD2> | |||
<KEYWORD2>RadToUnrRot</KEYWORD2> | |||
<KEYWORD2>DegToUnrRot</KEYWORD2> | |||
<KEYWORD2>UnrRotToDeg</KEYWORD2> | |||
<KEYWORD3>Velocity</KEYWORD3> | |||
<!-- Math Functions --> | |||
<KEYWORD4>min</KEYWORD4> | |||
<KEYWORD4>max</KEYWORD4> | |||
<KEYWORD4>abs</KEYWORD4> | |||
<KEYWORD4>clamp</KEYWORD4> | |||
<KEYWORD4>sin</KEYWORD4> | |||
<KEYWORD4>cos</KEYWORD4> | |||
<KEYWORD4>atan</KEYWORD4> | |||
<KEYWORD4>vlerp</KEYWORD4> | |||
<KEYWORD4>vsize</KEYWORD4> | |||
<KEYWORD4>vsize2d</KEYWORD4> | |||
<KEYWORD4>round</KEYWORD4> | |||
< | <KEYWORD4>fclamp</KEYWORD4> | ||
< | <KEYWORD4>fmin</KEYWORD4> | ||
< | <KEYWORD4>fmax</KEYWORD4> | ||
< | <KEYWORD4>frand</KEYWORD4> | ||
<KEYWORD4>RDiff</KEYWORD4> | |||
<KEYWORD4>RLerp</KEYWORD4> | |||
<KEYWORD4>Normalize</KEYWORD4> | |||
<!-- Timer functions: UE3--> | |||
<KEYWORD4>SetTimer</KEYWORD4> | <KEYWORD4>SetTimer</KEYWORD4> | ||
<KEYWORD4>ClearTimer</KEYWORD4> | <KEYWORD4>ClearTimer</KEYWORD4> | ||
Line 439: | Line 569: | ||
<KEYWORD4>GetTimerCount</KEYWORD4> | <KEYWORD4>GetTimerCount</KEYWORD4> | ||
<KEYWORD4>GetTimerRate</KEYWORD4> | <KEYWORD4>GetTimerRate</KEYWORD4> | ||
<KEYWORD4>ClearAllTimers</KEYWORD4> | |||
<KEYWORD4>PauseTimer</KEYWORD4> | |||
<!-- Object Events --> | |||
<KEYWORD4>BeginState</KEYWORD4> | |||
<KEYWORD4>EndState</KEYWORD4> | |||
<KEYWORD4>PushedState</KEYWORD4> | |||
<KEYWORD4>PoppedState</KEYWORD4> | |||
<KEYWORD4>PausedState</KEYWORD4> | |||
<KEYWORD4>ContinuedState</KEYWORD4> | |||
<KEYWORD4>DynamicLoadObject</KEYWORD4> | |||
<!--Components UE3--> | |||
<KEYWORD4>AttachComponent</KEYWORD4> | |||
<KEYWORD4>DetachComponent</KEYWORD4> | |||
<KEYWORD4>ReattachComponent</KEYWORD4> | |||
<COMMENT3>AttachComponentToSocket</COMMENT3> | |||
<!-- SkeletalMesh Component functions --> | |||
<KEYWORD4>GetSocketWorldLocationAndRotation</KEYWORD4> | |||
<KEYWORD4>GetSocketByName</KEYWORD4> | |||
<KEYWORD4>MatchRefBone</KEYWORD4> | |||
<KEYWORD4>TransformFromBoneSpace</KEYWORD4> | |||
<!-- Actor Functions --> | |||
<KEYWORD4>SetLocation</KEYWORD4> | |||
<KEYWORD4>SetRotation</KEYWORD4> | |||
<KEYWORD4>SetBase</KEYWORD4> | |||
<KEYWORD4>SetHidden</KEYWORD4> | |||
<KEYWORD4>SetHardAttach</KEYWORD4> | |||
<KEYWORD4>SetCollision</KEYWORD4> | |||
<!-- Actor Events --> | |||
<KEYWORD4>ReplicatedEvent</KEYWORD4><!-- UE3+ --> | |||
<KEYWORD4>Destroyed</KEYWORD4> | |||
<KEYWORD4>GainedChild</KEYWORD4> | |||
<KEYWORD4>LostChild</KEYWORD4> | |||
<KEYWORD4>Tick</KEYWORD4> | |||
<KEYWORD4>Timer</KEYWORD4> | |||
<KEYWORD4>HitWall</KEYWORD4> | |||
<KEYWORD4>Falling</KEYWORD4> | |||
<KEYWORD4>Landed</KEYWORD4> | |||
<KEYWORD4>PhysicsVolumeChange</KEYWORD4> | |||
<KEYWORD4>Touch</KEYWORD4> | |||
<KEYWORD4>PostTouch</KEYWORD4> | |||
<KEYWORD4>UnTouch</KEYWORD4> | |||
<KEYWORD4>Bump</KEYWORD4> | |||
<KEYWORD4>BaseChange</KEYWORD4> | |||
<KEYWORD4>Attach</KEYWORD4> | |||
<KEYWORD4>Detach</KEYWORD4> | |||
<KEYWORD4>SpecialHandling</KEYWORD4> | |||
<KEYWORD4>CollisionChanged</KEYWORD4> | |||
<KEYWORD4>EncroachingOn</KEYWORD4> | |||
<KEYWORD4>EncroachedBy</KEYWORD4> | |||
<KEYWORD4>RanInto</KEYWORD4> | |||
<KEYWORD4>OnWakeRBPhysics</KEYWORD4> | |||
<KEYWORD4>OnSleepRBPhysics</KEYWORD4> | |||
<KEYWORD4>OverRotated</KEYWORD4> | |||
<KEYWORD4>FellOutOfWorld</KEYWORD4> | |||
<KEYWORD4>OutsideWorldBounds</KEYWORD4> | |||
<KEYWORD4>TornOff</KEYWORD4> | |||
<KEYWORD4>PreBeginPlay</KEYWORD4> | |||
<KEYWORD4>BroadcastLocalizedMessage</KEYWORD4> | |||
<KEYWORD4>BroadcastLocalizedTeamMessage</KEYWORD4> | |||
<KEYWORD4>PostBeginPlay</KEYWORD4> | |||
<KEYWORD4>SetInitialState</KEYWORD4> | |||
<KEYWORD4>ConstraintBrokenNotify</KEYWORD4> | |||
<KEYWORD4>NotifySkelControlBeyondLimit</KEYWORD4> | |||
<KEYWORD4>TakeDamage</KEYWORD4> | |||
<KEYWORD4>HealDamage</KEYWORD4> | |||
<KEYWORD4>DebugFreezeGame</KEYWORD4> | |||
<KEYWORD4>BecomeViewTarget</KEYWORD4> | |||
<KEYWORD4>EndViewTarget</KEYWORD4> | |||
<KEYWORD4>ModifyHearSoundComponent</KEYWORD4> | |||
<KEYWORD4>GetFaceFXAudioComponent</KEYWORD4> | |||
<KEYWORD4>Reset</KEYWORD4> | |||
<KEYWORD4>DebugMessagePlayer</KEYWORD4> | |||
<KEYWORD4>ReceivedNewEvent</KEYWORD4> | |||
<KEYWORD4>ForceNetRelevant</KEYWORD4> | |||
<KEYWORD4>ShutDown</KEYWORD4> | |||
<KEYWORD4>OnAnimEnd</KEYWORD4> | |||
<KEYWORD4>OnAnimPlay</KEYWORD4> | |||
<KEYWORD4>BeginAnimControl</KEYWORD4> | |||
<KEYWORD4>SetAnimPosition</KEYWORD4> | |||
<KEYWORD4>FinishAnimControl</KEYWORD4> | |||
<KEYWORD4>PlayActorFaceFXAnim</KEYWORD4> | |||
<KEYWORD4>StopActorFaceFXAnim</KEYWORD4> | |||
<KEYWORD4>SetMorphWeight</KEYWORD4> | |||
<KEYWORD4>SetSkelControlScale</KEYWORD4> | |||
<KEYWORD4>GetActorFaceFXAsset</KEYWORD4> | |||
<KEYWORD4>GetActorEyesViewPoint</KEYWORD4> | |||
<KEYWORD4>ScriptGetTeamNum</KEYWORD4> | |||
<KEYWORD4>SpawnedByKismet</KEYWORD4> | |||
<KEYWORD4>InterpolationStarted</KEYWORD4> | |||
<KEYWORD4>InterpolationFinished</KEYWORD4> | |||
<KEYWORD4>InterpolationChanged</KEYWORD4> | |||
<KEYWORD4>RigidBodyCollision</KEYWORD4> | |||
<KEYWORD4>OnRanOver</KEYWORD4> | |||
<KEYWORD4>PostRenderFor</KEYWORD4> | |||
<KEYWORD4>RootMotionModeChanged</KEYWORD4> | |||
<KEYWORD4>RootMotionProcessed</KEYWORD4> | |||
<KEYWORD4>RootMotionExtracted</KEYWORD4> | |||
<KEYWORD4>PostInitAnimTree</KEYWORD4> | |||
<KEYWORD4>OnRigidBodySpringOverextension</KEYWORD4> | |||
<KEYWORD4>PlayParticleEffect</KEYWORD4> | |||
<KEYWORD4>CreateForceField</KEYWORD4> | |||
<KEYWORD4>TrailsNotify</KEYWORD4> | |||
<KEYWORD4>TrailsNotifyTick</KEYWORD4> | |||
<KEYWORD4>TrailsNotifyEnd</KEYWORD4> | |||
<KEYWORD4>AnimTreeUpdated</KEYWORD4> | |||
<KEYWORD4>PostDemoRewind</KEYWORD4> | |||
<KEYWORD4>ReplicationEnded</KEYWORD4> | |||
<!-- Native Iterators --> | |||
<KEYWORD4>AllActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>DynamicActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>ChildActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>BasedActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>TouchingActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>TraceActors</KEYWORD4> | |||
<KEYWORD4>VisibleActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>VisibleCollidingActors</KEYWORD4><!-- UE2+ --> | |||
<KEYWORD4>CollidingActors</KEYWORD4> | |||
<KEYWORD4>OverlappingActors</KEYWORD4> | |||
<KEYWORD4>ComponentList</KEYWORD4><!-- UE3+ --> | |||
<KEYWORD4>AllOwnedComponents</KEYWORD4><!-- UE3+ --> | |||
<KEYWORD4>LocalPlayerControllers</KEYWORD4> | |||
</KEYWORDS> | </KEYWORDS> | ||
</RULES> | </RULES> | ||
Line 473: | Line 731: | ||
<EOL_SPAN DELEGATE="PRAGMA" TYPE="KEYWORD1">pragma</EOL_SPAN> | <EOL_SPAN DELEGATE="PRAGMA" TYPE="KEYWORD1">pragma</EOL_SPAN> | ||
<EOL_SPAN DELEGATE="PRAGMA" TYPE="KEYWORD1">ucpp</EOL_SPAN> | <EOL_SPAN DELEGATE="PRAGMA" TYPE="KEYWORD1">ucpp</EOL_SPAN> | ||
</RULES> | |||
<RULES SET="METADATA" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?"> | |||
<!-- operators, separators and brackets --> | |||
<SEQ TYPE="OPERATOR">|</SEQ> | |||
<IMPORT DELEGATE="uscript::UEOBJECT"/> | |||
<KEYWORDS> | |||
<!-- UE3 property tags --> | |||
<MARKUP>AllowAbstract</MARKUP> | |||
<MARKUP>AutoComment</MARKUP> | |||
<MARKUP>DisplayName</MARKUP> | |||
<MARKUP>EditCondition</MARKUP> | |||
<MARKUP>Tooltip</MARKUP> | |||
<MARKUP>ClampMin</MARKUP> | |||
<MARKUP>ClampMax</MARKUP> | |||
<MARKUP>UIMin</MARKUP> | |||
<MARKUP>UIMax</MARKUP> | |||
<MARKUP>MultilineWithMaxRows</MARKUP> | |||
</KEYWORDS> | |||
</RULES> | </RULES> | ||
<RULES DEFAULT="COMMENT1" SET="COMMENT"> | <RULES DEFAULT="COMMENT1" SET="COMMENT"> | ||
<!-- UE3 @tags in all kinds of comments --> | <!-- UE3 @tags in all kinds of comments --> | ||
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="@" TYPE="LABEL">(?<!\w)@\w+</SEQ_REGEXP> | <!--<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="@" TYPE="LABEL">(?<!\w)@\w+</SEQ_REGEXP>--> | ||
</RULES> | </RULES> | ||
Line 541: | Line 820: | ||
</RULES> | </RULES> | ||
<!-- CppText blocks in UnrealScript --> | |||
<RULES SET="CPPTEXT" ESCAPE="\" IGNORE_CASE="false"> | |||
<EOL_SPAN AT_WHITESPACE_END="TRUE" DELEGATE="DIRECTIVE" TYPE="KEYWORD2">#</EOL_SPAN> | |||
<SPAN TYPE="COMMENT2" DELEGATE="COMMENT"> | |||
<BEGIN>/**</BEGIN> | |||
<END>*/</END> | |||
</SPAN> | |||
<!-- multi line comments --> | |||
<SPAN TYPE="COMMENT1" DELEGATE="COMMENT"> | |||
<BEGIN>/*</BEGIN> | |||
<END>*/</END> | |||
</SPAN> | |||
<!-- end of line comments --> | |||
<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN> | |||
<EOL_SPAN TYPE="COMMENT2" DELEGATE="EOLCOMMENT">///</EOL_SPAN> | |||
<!--<IMPORT DELEGATE="c++::LEX"/>--> | |||
<IMPORT DELEGATE="c++::CORE"/> | |||
<!--<IMPORT DELEGATE="c++::DEFINE"/>--> | |||
<KEYWORDS> | |||
<KEYWORD1>NULL</KEYWORD1> | |||
<KEYWORD1>FALSE</KEYWORD1> | |||
<KEYWORD1>TRUE</KEYWORD1> | |||
<KEYWORD1>BYTE</KEYWORD1> | |||
<KEYWORD1>FLOAT</KEYWORD1> | |||
<KEYWORD1>INT</KEYWORD1> | |||
<KEYWORD1>TCHAR</KEYWORD1> | |||
<KEYWORD1>TArray</KEYWORD1> | |||
<KEYWORD1>TSet</KEYWORD1> | |||
<!-- Unreal Engine CPP Types? --> | |||
<KEYWORD2>FName</KEYWORD2> | |||
<KEYWORD2>FVector</KEYWORD2> | |||
<KEYWORD2>FRotator</KEYWORD2> | |||
<KEYWORD2>FColor</KEYWORD2> | |||
<KEYWORD2>FLinearColor</KEYWORD2> | |||
<KEYWORD2>FGuid</KEYWORD2> | |||
<KEYWORD2>FFrame</KEYWORD2> | |||
<KEYWORD2>FCanvas</KEYWORD2> | |||
<KEYWORD3>FRigidBodyState</KEYWORD3> | |||
<KEYWORD3>FRigidBodyCollisionInfo</KEYWORD3> | |||
<KEYWORD3>FCollisionImpactData</KEYWORD3> | |||
<KEYWORD3>FIntRect</KEYWORD3> | |||
<KEYWORD3>FViewport</KEYWORD3> | |||
<KEYWORD3>FSceneView</KEYWORD3> | |||
<KEYWORD3>FCanvas</KEYWORD3> | |||
<KEYWORD3>FArchive</KEYWORD3> | |||
<KEYWORD3>FSeqOpOutputInputLink</KEYWORD3> | |||
<!-- Native only objects and types? --> | |||
<KEYWORD3>UBOOL</KEYWORD3> | |||
<KEYWORD3>UClass</KEYWORD3> | |||
<KEYWORD3>UFunction</KEYWORD3> | |||
<KEYWORD3>UProperty</KEYWORD3> | |||
<KEYWORD3>UObject</KEYWORD3> | |||
<KEYWORD3>UPackageMap</KEYWORD3> | |||
<KEYWORD3>UActorChannel</KEYWORD3> | |||
<KEYWORD3>UPrimitiveComponent</KEYWORD3> | |||
<KEYWORD3>ULevel</KEYWORD3> | |||
<KEYWORD3>UAnimNodeSequence</KEYWORD3> | |||
<!-- Kismet --> | |||
<KEYWORD3>USequenceObject</KEYWORD3> | |||
<KEYWORD3>USequenceOp</KEYWORD3> | |||
<KEYWORD3>AActor</KEYWORD3> | |||
<KEYWORD3>APawn</KEYWORD3> | |||
<KEYWORD3>APlayerController</KEYWORD3> | |||
<KEYWORD3>AVolume</KEYWORD3> | |||
<KEYWORD3>AController</KEYWORD3> | |||
<KEYWORD3>AFluidSurfaceActor</KEYWORD3> | |||
<KEYWORD3>AProjectile</KEYWORD3> | |||
<KEYWORD3>APortalTeleporter</KEYWORD3> | |||
<KEYWORD3>ANavigationPoint</KEYWORD3> | |||
<KEYWORD3>AScout</KEYWORD3> | |||
<!-- PhysX --> | |||
<KEYWORD3>NxActorDesc</KEYWORD3> | |||
<KEYWORD3>NxActor</KEYWORD3> | |||
<!-- typename --> | |||
<!-- appMemzero --> | |||
</KEYWORDS> | |||
</RULES> | |||
<!-- defaultproperties and structdefaultproperties --> | |||
<RULES SET="DEFAULTS" ESCAPE="\" IGNORE_CASE="TRUE"> | <RULES SET="DEFAULTS" ESCAPE="\" IGNORE_CASE="TRUE"> | ||
<!-- | <!-- | ||
highlight initial opening brace like final closing brace | highlight initial opening brace like final closing brace | ||
Line 557: | Line 929: | ||
<!-- end of line comments --> | <!-- end of line comments --> | ||
<EOL_SPAN TYPE=" | <EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN> | ||
<!-- string literals --> | <!-- string literals --> | ||
Line 565: | Line 937: | ||
</SPAN> | </SPAN> | ||
<!-- name and object literals --> | <!-- name and object literals NOTE: Defaults dont actually use these--> | ||
<SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\"> | <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\"> | ||
<BEGIN>'</BEGIN> | <BEGIN>'</BEGIN> | ||
<END>'</END> | <END>'</END> | ||
</SPAN> | </SPAN> | ||
<!-- subobjects --> | <!-- subobjects --> | ||
Line 587: | Line 954: | ||
<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> | ||
<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><!-- Invalid for arrays in defaults --> | ||
<!-- closing brackets --> | <!-- closing brackets --> | ||
<SEQ TYPE="OPERATOR">]</SEQ> | <SEQ TYPE="OPERATOR">]</SEQ><!-- Invalid for arrays in defaults --> | ||
<SEQ TYPE="OPERATOR">)</SEQ> | <SEQ TYPE="OPERATOR">)</SEQ> | ||
Line 598: | Line 965: | ||
<!-- variable names can be separated from "=" by whitespace, so highlight that case separately --> | <!-- variable names can be separated from "=" by whitespace, so highlight that case separately --> | ||
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHARS="abcdefghijklmnopqrstuvwxyz" TYPE="MARKUP">\w+</SEQ_REGEXP> | <SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHARS="abcdefghijklmnopqrstuvwxyz" TYPE="MARKUP">\w+</SEQ_REGEXP> | ||
<IMPORT DELEGATE="uscript::UEOBJECT"/> | |||
<KEYWORDS> | <KEYWORDS> | ||
Line 604: | Line 973: | ||
<KEYWORD1>Empty</KEYWORD1> | <KEYWORD1>Empty</KEYWORD1> | ||
<KEYWORD1>Remove</KEYWORD1> | <KEYWORD1>Remove</KEYWORD1> | ||
</KEYWORDS> | </KEYWORDS> | ||
</RULES> | </RULES> | ||
<!-- special highlighting for "Begin Object" lines --> | |||
<RULES SET="BEGINOBJECT"> | <RULES SET="BEGINOBJECT"> | ||
<SEQ TYPE="OPERATOR">=</SEQ> | <SEQ TYPE="OPERATOR">=</SEQ> | ||
Line 622: | Line 987: | ||
</SPAN> | </SPAN> | ||
<!-- name and object literals --> | <!-- end of line comments --> | ||
<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN> | |||
<!-- name and object literals--> | |||
<SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\"> | <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\"> | ||
<BEGIN>'</BEGIN> | <BEGIN>'</BEGIN> | ||
<END>'</END> | <END>'</END> | ||
</SPAN> | </SPAN> | ||
<IMPORT DELEGATE="uscript::UEOBJECT"/> | |||
<KEYWORDS> | <KEYWORDS> | ||
<KEYWORD1>ObjName</KEYWORD1> | <KEYWORD1>ObjName</KEYWORD1> | ||
</KEYWORDS> | </KEYWORDS> | ||
</RULES> | </RULES> | ||
</MODE> | </MODE> | ||
</source> | </source> |
Latest revision as of 22:59, 17 May 2011
<?xml version="1.0"?>
<!DOCTYPE MODE SYSTEM "xmode.dtd">
<MODE>
<!--
UnrealScript edit mode.
Put this file to your .jedit/modes/ directory and add the following line
to your .jedit/modes/catalog file:
<MODE NAME="unrealscript" FILE="unrealscript.xml" FILE_NAME_GLOB="*.{uc,puc,uci}"/>
-->
<PROPS>
<PROPERTY NAME="commentStart" VALUE="/*" />
<PROPERTY NAME="commentEnd" VALUE="*/" />
<PROPERTY NAME="lineComment" VALUE="//" />
<PROPERTY NAME="newlineComment" VALUE="///" />
<PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />
<!-- Auto indent -->
<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.*:.*)$" />
<PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
</PROPS>
<RULES ESCAPE="\" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?">
<!-- multi line comments -->
<SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
<BEGIN>/*</BEGIN>
<END>*/</END>
</SPAN>
<SPAN TYPE="COMMENT2" DELEGATE="COMMENT">
<BEGIN>/**</BEGIN>
<END>*/</END>
</SPAN>
<!-- end of line comments -->
<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN>
<EOL_SPAN TYPE="COMMENT2" DELEGATE="EOLCOMMENT">///</EOL_SPAN>
<!-- string literals -->
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>"</BEGIN>
<END>"</END>
</SPAN>
<!-- name and object literals NOTE: Defaults dont actually use these-->
<SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\">
<BEGIN>'</BEGIN>
<END>'</END>
</SPAN>
<!-- <SPAN_REGEXP AT_WORD_START="TRUE" TYPE="LITERAL2" NO_LINE_BREAK="TRUE">
<BEGIN>\w*\s*'</BEGIN>
<END>'</END>
</SPAN_REGEXP>-->
<!-- UE1/2 compiler directives and UCPP pragmas -->
<EOL_SPAN AT_WHITESPACE_END="TRUE" DELEGATE="DIRECTIVE" TYPE="KEYWORD2">#</EOL_SPAN>
<!-- UE3 compiler macros -->
<!-- macro in braces -->
<SPAN TYPE="MARKUP" MATCH_TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
<BEGIN>`{</BEGIN>
<END>}</END>
</SPAN>
<!-- special UE3 compiler macros -->
<EOL_SPAN_REGEXP HASH_CHAR="`" AT_WHITESPACE_END="TRUE" DELEGATE="MAIN"
TYPE="KEYWORD4">`(define|else|endif|if|debug)\b</EOL_SPAN_REGEXP>
<SPAN AT_WHITESPACE_END="TRUE" TYPE="LITERAL4" MATCH_TYPE="KEYWORD4">
<BEGIN>`include(</BEGIN>
<END>)</END>
</SPAN>
<SEQ_REGEXP HASH_CHAR="`" TYPE="KEYWORD4">`(isdefined|notdefined)\b</SEQ_REGEXP>
<!-- in-line macro -->
<MARK_FOLLOWING MATCH_TYPE="KEYWORD2" TYPE="MARKUP">`</MARK_FOLLOWING>
<!-- GoTo labels -->
<MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR" AT_WHITESPACE_END="TRUE">:</MARK_PREVIOUS>
<!-- UE3 native replacements -->
<!--<SEQ_REGEXP HASH_CHAR="{" TYPE="COMMENT4">\{[^}]+}</SEQ_REGEXP>-->
<!-- operators, separators and brackets -->
<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>
<!-- functions -->
<!--<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>-->
<!-- static modifier -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD1">static\b(?!\s*\.)</SEQ_REGEXP>
<!-- static function call -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD2">static\b(?=\s*\.)</SEQ_REGEXP>
<!-- switch keyword -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="s" TYPE="KEYWORD1">switch\b(?=\s*\()</SEQ_REGEXP>
<!-- default switch case -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">default\b(?=\s*\:)</SEQ_REGEXP>
<!-- default value access -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD2">default\b(?=\s*\.)</SEQ_REGEXP>
<!-- input variable modifier -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="i" TYPE="KEYWORD1">input\b(?=\s*[\w>])</SEQ_REGEXP>
<!-- name datatype -->
<!-- <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="n" TYPE="KEYWORD3">name\b(?=\s*[\w>])</SEQ_REGEXP>-->
<!-- class keyword -->
<!-- <SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="c" TYPE="KEYWORD1">class\b(?=\s*[\w])</SEQ_REGEXP>-->
<!-- class identifier?? -->
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="c" TYPE="KEYWORD1">class\b(?=[\s*\w'])</SEQ_REGEXP>
<!-- class / array datatype -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHARS="ac." TYPE="KEYWORD1">(?!\.)(array|class)\b(?=\s*[(^\()\w(?!(array|class))><])</SEQ_REGEXP>
<!-- class accessor -->
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="." TYPE="KEYWORD1">(?!\s*)\.class</SEQ_REGEXP>
<!-- delegate keyword -->
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">delegate\b(?=\s*[\w])</SEQ_REGEXP>
<!-- delegate datatype -->
<SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="d" TYPE="KEYWORD1">delegate\b(?=\s*[\w<>])</SEQ_REGEXP>
<!-- default values section for class and structs -->
<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>
<!-- Standard Variable Keyword -->
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHAR="v" TYPE="KEYWORD1" MATCH_TYPE="KEYWORD4">var(\b\s+)(?![\s*(])</SEQ_REGEXP>
<!-- New Operator / Special Editor version of variable declaration -->
<SPAN_REGEXP HASH_CHARS="vn" TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1">
<BEGIN>(var|new)\b\s*[\w(]</BEGIN>
<END>)</END>
</SPAN_REGEXP>
<!-- Editor Markup -->
<SPAN_REGEXP HASH_CHAR="<" NO_LINE_BREAK="TRUE" TYPE="MARKUP" DELEGATE="METADATA">
<BEGIN><</BEGIN><!--([^(array)<])-->
<END>></END>
</SPAN_REGEXP>
<!--<SEQ_REGEXP HASH_CHARS="sc" MATCH_TYPE="KEYWORD1" DELEGATE="CPPTEXT">(struct)?cpptext\b\s*\n*\{.*\}</SEQ_REGEXP>-->
<KEYWORDS>
<!-- Class Syntax -->
<KEYWORD1>Interface</KEYWORD1>
<!--<KEYWORD1>Class</KEYWORD1>--><!--db: added test-->
<INVALID>Expands</INVALID><!-- only early UE1, shouldn't really be used -->
<KEYWORD1>Extends</KEYWORD1>
<!-- Class Syntax: Optional Specifiers -->
<!-- General -->
<KEYWORD1>Implements</KEYWORD1><!-- UE3+ -->
<KEYWORD1>Abstract</KEYWORD1>
<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>NativeReplication</KEYWORD1>
<KEYWORD1>NoExport</KEYWORD1>
<KEYWORD1>NoImport</KEYWORD1>
<KEYWORD1>NotTransient</KEYWORD1><!-- since UE2 -->
<KEYWORD1>Within</KEYWORD1><!-- since UE2 -->
<KEYWORD1>DependsOn</KEYWORD1><!-- since UE2 -->
<KEYWORD4>Deprecated</KEYWORD4><!-- since UE2, marks variables that should no longer be used -->
<!-- Class Syntax: Secondary Specifiers -->
<!-- Editor -->
<KEYWORD4>AutoExpandCategories</KEYWORD4><!-- since UE3? -->
<KEYWORD4>CollapseCatergories</KEYWORD4><!-- since UE2 -->
<KEYWORD4>DontCollapseCategories</KEYWORD4><!-- UE2+ -->
<KEYWORD1>EdFindable</KEYWORD1>
<KEYWORD1>EditConst</KEYWORD1>
<KEYWORD1>EditConstArray</KEYWORD1><!-- only UE2 -->
<KEYWORD1>EditFixedSize</KEYWORD1><!-- since UE3 -->
<KEYWORD4>HideCategories</KEYWORD4><!-- UE2+ -->
<KEYWORD4>HideDropDown</KEYWORD4><!-- UE2+ -->
<KEYWORD4>NotPlaceable</KEYWORD4><!-- UE2+ -->
<KEYWORD4>Placeable</KEYWORD4>
<KEYWORD1>ExportStructs</KEYWORD1><!-- only UE2 -->
<KEYWORD1>SafeReplace</KEYWORD1>
<KEYWORD1>ShowCategories</KEYWORD1><!-- since UE2 -->
<!-- Object Specifiers -->
<KEYWORD4>EditInline</KEYWORD4><!-- since UE2 -->
<KEYWORD4>EditInlineUse</KEYWORD4><!-- UE2+ -->
<KEYWORD1>EditInlineNew</KEYWORD1><!-- since UE2 -->
<KEYWORD1>EditInlineNotify</KEYWORD1><!-- only UE2 -->
<KEYWORD4>NotEditInlineNew</KEYWORD4><!-- since UE2 -->
<!--===================================================================================================-->
<KEYWORD4>Inherits</KEYWORD4><!-- native effect, since UE3 -->
<KEYWORD1>Assert</KEYWORD1>
<KEYWORD1>Cache</KEYWORD1><!-- only UE2 -->
<KEYWORD1>CacheExempt</KEYWORD1><!-- only UE2 -->
<KEYWORD1>Import</KEYWORD1>
<KEYWORD1>Init</KEYWORD1>
<KEYWORD1>Latent</KEYWORD1>
<KEYWORD1>ParseConfig</KEYWORD1>
<KEYWORD1>Skip</KEYWORD1>
<KEYWORD1>Stop</KEYWORD1>
<KEYWORD1>Travel</KEYWORD1>
<KEYWORD1>Export</KEYWORD1>
<KEYWORD1>forcescriptorder</KEYWORD1>
<!--===================================================================================================-->
<!-- Function Syntax: Primary Specifiers -->
<!--<KEYWORD1>cpptext</KEYWORD1>--><!-- only UE2+ -->
<!--<KEYWORD1>cppstruct</KEYWORD1>--><!-- only UE2? -->
<!--<KEYWORD1>structcpptext</KEYWORD1>--><!-- UE3+ -->
<KEYWORD1>Event</KEYWORD1>
<KEYWORD1>Function</KEYWORD1>
<KEYWORD1>Operator</KEYWORD1>
<KEYWORD1>PostOperator</KEYWORD1>
<KEYWORD1>PreOperator</KEYWORD1>
<KEYWORD1>Replication</KEYWORD1><!-- db: Could update so replication block gets special handling -->
<KEYWORD1>If</KEYWORD1>
<KEYWORD1>Else</KEYWORD1>
<KEYWORD1>Case</KEYWORD1>
<KEYWORD1>Break</KEYWORD1>
<KEYWORD1>Continue</KEYWORD1>
<KEYWORD1>Return</KEYWORD1>
<KEYWORD1>State</KEYWORD1>
<KEYWORD1>Goto</KEYWORD1>
<KEYWORD2>GotoState</KEYWORD2>
<!-- State Syntax: Secondary Specifiers -->
<KEYWORD4>Auto</KEYWORD4>
<KEYWORD4>Ignores</KEYWORD4>
<!-- Function Syntax: Iterators -->
<KEYWORD1>For</KEYWORD1>
<KEYWORD1>ForEach</KEYWORD1>
<KEYWORD1>While</KEYWORD1>
<KEYWORD1>Do</KEYWORD1>
<KEYWORD1>Until</KEYWORD1>
<!-- db: Secondary Keywords - grey/italic (like uncodex)-->
<KEYWORD4>Self</KEYWORD4>
<KEYWORD4>Outer</KEYWORD4><!--common-->
<COMMENT3>Owner</COMMENT3><!--common-->
<KEYWORD4>Instigator</KEYWORD4><!--common-->
<KEYWORD4>Optional</KEYWORD4>
<KEYWORD4>Out</KEYWORD4>
<KEYWORD4>Object</KEYWORD4>
<KEYWORD4>Native</KEYWORD4>
<!--<KEYWORD2>New</KEYWORD2>-->
<KEYWORD2>None</KEYWORD2>
<KEYWORD2>Super</KEYWORD2>
<KEYWORD2>Global</KEYWORD2>
<INVALID>Null</INVALID>
<!-- Function Syntax: Secondary Specifiers -->
<INVALID>Intrinsic</INVALID><!-- only early UE1, replaced by "native" -->
<INVALID>Virtual</INVALID>
<KEYWORD4>Static</KEYWORD4>
<KEYWORD4>Final</KEYWORD4>
<KEYWORD4>Server</KEYWORD4><!-- UE3+ -->
<KEYWORD4>Client</KEYWORD4><!-- UE3+ -->
<KEYWORD4>Simulated</KEYWORD4>
<KEYWORD4>Iterator</KEYWORD4>
<KEYWORD4>Singular</KEYWORD4>
<KEYWORD4>Exec</KEYWORD4>
<KEYWORD1>Reliable</KEYWORD1>
<KEYWORD1>Unreliable</KEYWORD1>
<KEYWORD1>Automated</KEYWORD1><!-- only UE2 -->
<KEYWORD4>k2override</KEYWORD4><!-- UDK+ -->
<!-- built-in type names -->
<KEYWORD1>Const</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>Name</KEYWORD1>
<KEYWORD1>vector</KEYWORD1>
<KEYWORD1>rotator</KEYWORD1>
<KEYWORD1>vector2d</KEYWORD1>
<KEYWORD1>color</KEYWORD1>
<KEYWORD1>quat</KEYWORD1>
<KEYWORD1>matrix</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>DuplicateTransient</KEYWORD1><!-- since UE3 -->
<KEYWORD1>Instanced</KEYWORD1><!-- UE2+ -->
<KEYWORD1>DataBinding</KEYWORD1><!-- UE3+ -->
<KEYWORD1>Immutable</KEYWORD1><!-- UE3+ (struct) -->
<KEYWORD1>Coerce</KEYWORD1><!-- (string) -->
<KEYWORD1>Long</KEYWORD1><!-- UE2+ (struct) -->
<KEYWORD4>k2Call</KEYWORD4>
<KEYWORD4>PrivateWrite</KEYWORD4>
<KEYWORD4>interp</KEYWORD4>
<KEYWORD4>Archetype</KEYWORD4>
<KEYWORD4>k2pure</KEYWORD4>
<!-- Editor -->
<KEYWORD4>EditorOnly</KEYWORD4>
<KEYWORD4>EditHide</KEYWORD4>
<!-- literals and special function calls -->
<KEYWORD2>true</KEYWORD2>
<KEYWORD2>false</KEYWORD2>
<KEYWORD2>enable</KEYWORD2>
<KEYWORD2>disable</KEYWORD2>
<!-- literals -->
<KEYWORD2>Vect2D</KEYWORD2>
<KEYWORD2>Vect</KEYWORD2>
<KEYWORD2>Rot</KEYWORD2>
<KEYWORD2>NameOf</KEYWORD2>
<KEYWORD2>Normal</KEYWORD2>
<KEYWORD2>VSize</KEYWORD2>
<KEYWORD2>ArrayCount</KEYWORD2>
<KEYWORD2>EnumCount</KEYWORD2>
<KEYWORD2>Length</KEYWORD2><!-- UE2+ -->
<KEYWORD2>PathName</KEYWORD2>
</KEYWORDS>
<!-- Expanded UnrealEngine highlighting rules -->
<IMPORT DELEGATE="uscript::UEOBJECT"/>
<IMPORT DELEGATE="uscript::UEFUNCTION"/>
</RULES>
<!-- UnrealEngine Classes-->
<RULES SET="UEOBJECT" IGNORE_CASE="TRUE">
<KEYWORDS>
<!--<KEYWORD1>Class</KEYWORD1>-->
<KEYWORD1>Name</KEYWORD1>
<KEYWORD1>LegacyClassName</KEYWORD1><!-- UE3 -->
<KEYWORD1>Archetype</KEYWORD1><!-- UE3 -->
<!-- literals -->
<KEYWORD2>False</KEYWORD2>
<KEYWORD2>None</KEYWORD2>
<KEYWORD2>True</KEYWORD2>
<KEYWORD3>Weapon</KEYWORD3>
<!-- <KEYWORD3>Other</KEYWORD3>
<KEYWORD3>Instigator</KEYWORD3>-->
<KEYWORD3>Actor</KEYWORD3>
<KEYWORD3>Controller</KEYWORD3>
<KEYWORD3>LightType</KEYWORD3><!-- UE3 -->
<KEYWORD3>Level</KEYWORD3><!-- UE2 -->
<KEYWORD3>WorldInfo</KEYWORD3><!-- UE3 -->
<KEYWORD3>Pawn</KEYWORD3>
<KEYWORD3>PlayerController</KEYWORD3>
<KEYWORD3>Material</KEYWORD3>
<KEYWORD3>PhysicalMaterial</KEYWORD3>
<KEYWORD3>MaterialInterface</KEYWORD3><!-- UE3 -->
<KEYWORD3>Texture</KEYWORD3>
<KEYWORD3>Texture2D</KEYWORD3>
<KEYWORD3>Effects</KEYWORD3>
<KEYWORD3>Info</KEYWORD3>
<KEYWORD3>Font</KEYWORD3>
<KEYWORD3>Projectile</KEYWORD3>
<KEYWORD3>PlayerInput</KEYWORD3>
<KEYWORD3>SkeletalMesh</KEYWORD3>
<KEYWORD3>AnimTree</KEYWORD3>
<KEYWORD3>PhysicsAsset</KEYWORD3>
<!-- UnrealEngine Enums -->
<KEYWORD3>LinearColor</KEYWORD3><!-- UE3 -->
<KEYWORD3>FontRenderInfo</KEYWORD3>
<KEYWORD3>InterpCurveVector</KEYWORD3>
<KEYWORD3>InterpCurvePointVector</KEYWORD3>
<KEYWORD3>TraceHitInfo</KEYWORD3>
<!-- User Interface -->
<KEYWORD3>Canvas</KEYWORD3>
<KEYWORD3>HUD</KEYWORD3>
<KEYWORD3>UIRoot</KEYWORD3><!-- UE3 -->
<KEYWORD3>UIScene</KEYWORD3><!-- UE3 -->
<KEYWORD3>UIObject</KEYWORD3>
<KEYWORD3>UIImage</KEYWORD3>
<KEYWORD3>TextureCoordinates</KEYWORD3>
<KEYWORD3>AnimSet</KEYWORD3><!-- UE3 -->
<KEYWORD3>AnimNode</KEYWORD3>
<KEYWORD3>AnimNodeSequence</KEYWORD3>
<KEYWORD3>CameraAnim</KEYWORD3>
<KEYWORD3>Emitter</KEYWORD3>
<KEYWORD3>ParticleSystem</KEYWORD3>
<KEYWORD3>Projector</KEYWORD3><!-- UE2+ -->
<KEYWORD3>DamageType</KEYWORD3>
<KEYWORD3>GameInfo</KEYWORD3>
<KEYWORD3>GameRules</KEYWORD3>
<KEYWORD3>PlayerReplicationInfo</KEYWORD3><!-- UE2+ -->
<KEYWORD3>GameReplicationInfo</KEYWORD3><!-- UE2+ -->
<KEYWORD3>Inventory</KEYWORD3>
<KEYWORD3>Vehicle</KEYWORD3><!-- UE2.5+ -->
<KEYWORD3>StaticMesh</KEYWORD3><!-- UE2+ -->
<KEYWORD3>NavigationPoint</KEYWORD3>
<KEYWORD3>PhysicsVolume</KEYWORD3>
<KEYWORD3>Mutator</KEYWORD3>
<KEYWORD3>ForceFeedbackWaveform</KEYWORD3>
<KEYWORD3>FluidSurfaceActor</KEYWORD3>
<KEYWORD3>Sequence</KEYWORD3>
<KEYWORD3>SequenceEvent</KEYWORD3>
<KEYWORD3>SequenceObject</KEYWORD3>
<KEYWORD3>FaceFXAsset</KEYWORD3>
<!--Components UE3-->
<KEYWORD3>Component</KEYWORD3>
<KEYWORD3>ActorComponent</KEYWORD3>
<KEYWORD3>PrimitiveComponent</KEYWORD3>
<KEYWORD3>SVehicleSimBase</KEYWORD3>
<KEYWORD3>StaticMeshComponent</KEYWORD3>
<KEYWORD3>SkeletalMeshComponent</KEYWORD3>
<KEYWORD3>ParticleSystemComponent</KEYWORD3>
<KEYWORD3>PointLightComponent</KEYWORD3>
<KEYWORD3>SplineComponent</KEYWORD3>
<KEYWORD3>AudioComponent</KEYWORD3>
<KEYWORD3>DynamicLightEnvironmentComponent</KEYWORD3>
<!--UDK specific-->
<KEYWORD3>UDKParticleSystemComponent</KEYWORD3>
<KEYWORD3>UDKExplosionLight</KEYWORD3>
<!--UT3 specific-->
<KEYWORD3>UTSkeletalMeshComponent</KEYWORD3>
<!--Sound, was changed-->
<KEYWORD3>Sound</KEYWORD3>
<KEYWORD3>SoundNode</KEYWORD3><!-- UE3 -->
<KEYWORD3>SoundCue</KEYWORD3><!-- UE3 -->
</KEYWORDS>
</RULES>
<RULES SET="UEFUNCTION" IGNORE_CASE="TRUE">
<!-- UnrealEngine functions -->
<SEQ_REGEXP HASH_CHAR="fi" TYPE="KEYWORD4">FindChild(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="is" TYPE="KEYWORD4">IsA(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="c" TYPE="KEYWORD4">ClassIsChildOf(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="isi" TYPE="KEYWORD4">IsInState(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="dr" TYPE="KEYWORD4">Draw3DLine(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="de" TYPE="KEYWORD4">DeProject(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="re" TYPE="KEYWORD4">ReplicateMove(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="pr" TYPE="KEYWORD4">ProcessMove(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="pl" TYPE="KEYWORD4">PlayerTick(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="po" TYPE="KEYWORD4">PostRender(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="ge" TYPE="KEYWORD4">GetEnum(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="fi" TYPE="KEYWORD4">FindObject(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="tr" TYPE="KEYWORD4">Trace(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="fa" TYPE="KEYWORD4">FastTrace(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<SEQ_REGEXP HASH_CHAR="sp" TYPE="KEYWORD4">Spawn(?=[(]\s*|\w*[)])</SEQ_REGEXP>
<KEYWORDS>
<!-- Dynamic Arrays -->
<KEYWORD2>Find</KEYWORD2><!-- (since UE3) -->
<KEYWORD2>Add</KEYWORD2><!-- (since UE3) -->
<KEYWORD2>AddItem</KEYWORD2><!-- (since UE3) -->
<KEYWORD2>Insert</KEYWORD2><!-- (since UE2) -->
<KEYWORD2>InsertItem</KEYWORD2><!-- (since UE3) -->
<KEYWORD2>Remove</KEYWORD2><!-- UE2+ -->
<KEYWORD2>RemoveItem</KEYWORD2><!-- UE+ -->
<KEYWORD1>index_none</KEYWORD1>
<!-- Constants -->
<KEYWORD2>MaxInt</KEYWORD2>
<KEYWORD2>Pi</KEYWORD2>
<KEYWORD2>RadToDeg</KEYWORD2>
<KEYWORD2>DegToRad</KEYWORD2>
<KEYWORD2>UnrRotToRad</KEYWORD2>
<KEYWORD2>RadToUnrRot</KEYWORD2>
<KEYWORD2>DegToUnrRot</KEYWORD2>
<KEYWORD2>UnrRotToDeg</KEYWORD2>
<KEYWORD3>Velocity</KEYWORD3>
<!-- Math Functions -->
<KEYWORD4>min</KEYWORD4>
<KEYWORD4>max</KEYWORD4>
<KEYWORD4>abs</KEYWORD4>
<KEYWORD4>clamp</KEYWORD4>
<KEYWORD4>sin</KEYWORD4>
<KEYWORD4>cos</KEYWORD4>
<KEYWORD4>atan</KEYWORD4>
<KEYWORD4>vlerp</KEYWORD4>
<KEYWORD4>vsize</KEYWORD4>
<KEYWORD4>vsize2d</KEYWORD4>
<KEYWORD4>round</KEYWORD4>
<KEYWORD4>fclamp</KEYWORD4>
<KEYWORD4>fmin</KEYWORD4>
<KEYWORD4>fmax</KEYWORD4>
<KEYWORD4>frand</KEYWORD4>
<KEYWORD4>RDiff</KEYWORD4>
<KEYWORD4>RLerp</KEYWORD4>
<KEYWORD4>Normalize</KEYWORD4>
<!-- Timer functions: UE3-->
<KEYWORD4>SetTimer</KEYWORD4>
<KEYWORD4>ClearTimer</KEYWORD4>
<KEYWORD4>IsTimerActive</KEYWORD4>
<KEYWORD4>GetTimerCount</KEYWORD4>
<KEYWORD4>GetTimerRate</KEYWORD4>
<KEYWORD4>ClearAllTimers</KEYWORD4>
<KEYWORD4>PauseTimer</KEYWORD4>
<!-- Object Events -->
<KEYWORD4>BeginState</KEYWORD4>
<KEYWORD4>EndState</KEYWORD4>
<KEYWORD4>PushedState</KEYWORD4>
<KEYWORD4>PoppedState</KEYWORD4>
<KEYWORD4>PausedState</KEYWORD4>
<KEYWORD4>ContinuedState</KEYWORD4>
<KEYWORD4>DynamicLoadObject</KEYWORD4>
<!--Components UE3-->
<KEYWORD4>AttachComponent</KEYWORD4>
<KEYWORD4>DetachComponent</KEYWORD4>
<KEYWORD4>ReattachComponent</KEYWORD4>
<COMMENT3>AttachComponentToSocket</COMMENT3>
<!-- SkeletalMesh Component functions -->
<KEYWORD4>GetSocketWorldLocationAndRotation</KEYWORD4>
<KEYWORD4>GetSocketByName</KEYWORD4>
<KEYWORD4>MatchRefBone</KEYWORD4>
<KEYWORD4>TransformFromBoneSpace</KEYWORD4>
<!-- Actor Functions -->
<KEYWORD4>SetLocation</KEYWORD4>
<KEYWORD4>SetRotation</KEYWORD4>
<KEYWORD4>SetBase</KEYWORD4>
<KEYWORD4>SetHidden</KEYWORD4>
<KEYWORD4>SetHardAttach</KEYWORD4>
<KEYWORD4>SetCollision</KEYWORD4>
<!-- Actor Events -->
<KEYWORD4>ReplicatedEvent</KEYWORD4><!-- UE3+ -->
<KEYWORD4>Destroyed</KEYWORD4>
<KEYWORD4>GainedChild</KEYWORD4>
<KEYWORD4>LostChild</KEYWORD4>
<KEYWORD4>Tick</KEYWORD4>
<KEYWORD4>Timer</KEYWORD4>
<KEYWORD4>HitWall</KEYWORD4>
<KEYWORD4>Falling</KEYWORD4>
<KEYWORD4>Landed</KEYWORD4>
<KEYWORD4>PhysicsVolumeChange</KEYWORD4>
<KEYWORD4>Touch</KEYWORD4>
<KEYWORD4>PostTouch</KEYWORD4>
<KEYWORD4>UnTouch</KEYWORD4>
<KEYWORD4>Bump</KEYWORD4>
<KEYWORD4>BaseChange</KEYWORD4>
<KEYWORD4>Attach</KEYWORD4>
<KEYWORD4>Detach</KEYWORD4>
<KEYWORD4>SpecialHandling</KEYWORD4>
<KEYWORD4>CollisionChanged</KEYWORD4>
<KEYWORD4>EncroachingOn</KEYWORD4>
<KEYWORD4>EncroachedBy</KEYWORD4>
<KEYWORD4>RanInto</KEYWORD4>
<KEYWORD4>OnWakeRBPhysics</KEYWORD4>
<KEYWORD4>OnSleepRBPhysics</KEYWORD4>
<KEYWORD4>OverRotated</KEYWORD4>
<KEYWORD4>FellOutOfWorld</KEYWORD4>
<KEYWORD4>OutsideWorldBounds</KEYWORD4>
<KEYWORD4>TornOff</KEYWORD4>
<KEYWORD4>PreBeginPlay</KEYWORD4>
<KEYWORD4>BroadcastLocalizedMessage</KEYWORD4>
<KEYWORD4>BroadcastLocalizedTeamMessage</KEYWORD4>
<KEYWORD4>PostBeginPlay</KEYWORD4>
<KEYWORD4>SetInitialState</KEYWORD4>
<KEYWORD4>ConstraintBrokenNotify</KEYWORD4>
<KEYWORD4>NotifySkelControlBeyondLimit</KEYWORD4>
<KEYWORD4>TakeDamage</KEYWORD4>
<KEYWORD4>HealDamage</KEYWORD4>
<KEYWORD4>DebugFreezeGame</KEYWORD4>
<KEYWORD4>BecomeViewTarget</KEYWORD4>
<KEYWORD4>EndViewTarget</KEYWORD4>
<KEYWORD4>ModifyHearSoundComponent</KEYWORD4>
<KEYWORD4>GetFaceFXAudioComponent</KEYWORD4>
<KEYWORD4>Reset</KEYWORD4>
<KEYWORD4>DebugMessagePlayer</KEYWORD4>
<KEYWORD4>ReceivedNewEvent</KEYWORD4>
<KEYWORD4>ForceNetRelevant</KEYWORD4>
<KEYWORD4>ShutDown</KEYWORD4>
<KEYWORD4>OnAnimEnd</KEYWORD4>
<KEYWORD4>OnAnimPlay</KEYWORD4>
<KEYWORD4>BeginAnimControl</KEYWORD4>
<KEYWORD4>SetAnimPosition</KEYWORD4>
<KEYWORD4>FinishAnimControl</KEYWORD4>
<KEYWORD4>PlayActorFaceFXAnim</KEYWORD4>
<KEYWORD4>StopActorFaceFXAnim</KEYWORD4>
<KEYWORD4>SetMorphWeight</KEYWORD4>
<KEYWORD4>SetSkelControlScale</KEYWORD4>
<KEYWORD4>GetActorFaceFXAsset</KEYWORD4>
<KEYWORD4>GetActorEyesViewPoint</KEYWORD4>
<KEYWORD4>ScriptGetTeamNum</KEYWORD4>
<KEYWORD4>SpawnedByKismet</KEYWORD4>
<KEYWORD4>InterpolationStarted</KEYWORD4>
<KEYWORD4>InterpolationFinished</KEYWORD4>
<KEYWORD4>InterpolationChanged</KEYWORD4>
<KEYWORD4>RigidBodyCollision</KEYWORD4>
<KEYWORD4>OnRanOver</KEYWORD4>
<KEYWORD4>PostRenderFor</KEYWORD4>
<KEYWORD4>RootMotionModeChanged</KEYWORD4>
<KEYWORD4>RootMotionProcessed</KEYWORD4>
<KEYWORD4>RootMotionExtracted</KEYWORD4>
<KEYWORD4>PostInitAnimTree</KEYWORD4>
<KEYWORD4>OnRigidBodySpringOverextension</KEYWORD4>
<KEYWORD4>PlayParticleEffect</KEYWORD4>
<KEYWORD4>CreateForceField</KEYWORD4>
<KEYWORD4>TrailsNotify</KEYWORD4>
<KEYWORD4>TrailsNotifyTick</KEYWORD4>
<KEYWORD4>TrailsNotifyEnd</KEYWORD4>
<KEYWORD4>AnimTreeUpdated</KEYWORD4>
<KEYWORD4>PostDemoRewind</KEYWORD4>
<KEYWORD4>ReplicationEnded</KEYWORD4>
<!-- Native Iterators -->
<KEYWORD4>AllActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>DynamicActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>ChildActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>BasedActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>TouchingActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>TraceActors</KEYWORD4>
<KEYWORD4>VisibleActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>VisibleCollidingActors</KEYWORD4><!-- UE2+ -->
<KEYWORD4>CollidingActors</KEYWORD4>
<KEYWORD4>OverlappingActors</KEYWORD4>
<KEYWORD4>ComponentList</KEYWORD4><!-- UE3+ -->
<KEYWORD4>AllOwnedComponents</KEYWORD4><!-- UE3+ -->
<KEYWORD4>LocalPlayerControllers</KEYWORD4>
</KEYWORDS>
</RULES>
<RULES IGNORE_CASE="TRUE" SET="DIRECTIVE">
<EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
<!-- exec directives -->
<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>
<!-- source include -->
<EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">include</EOL_SPAN>
<!-- execute command file -->
<EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">call</EOL_SPAN>
<EOL_SPAN DELEGATE="EXEC_COMMAND" TYPE="KEYWORD1">alwayscall</EOL_SPAN>
<!-- throw compiler error -->
<EOL_SPAN DELEGATE="IGNORED" TYPE="KEYWORD1">error</EOL_SPAN>
<!-- UCPP directives -->
<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 SET="METADATA" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?">
<!-- operators, separators and brackets -->
<SEQ TYPE="OPERATOR">|</SEQ>
<IMPORT DELEGATE="uscript::UEOBJECT"/>
<KEYWORDS>
<!-- UE3 property tags -->
<MARKUP>AllowAbstract</MARKUP>
<MARKUP>AutoComment</MARKUP>
<MARKUP>DisplayName</MARKUP>
<MARKUP>EditCondition</MARKUP>
<MARKUP>Tooltip</MARKUP>
<MARKUP>ClampMin</MARKUP>
<MARKUP>ClampMax</MARKUP>
<MARKUP>UIMin</MARKUP>
<MARKUP>UIMax</MARKUP>
<MARKUP>MultilineWithMaxRows</MARKUP>
</KEYWORDS>
</RULES>
<RULES DEFAULT="COMMENT1" SET="COMMENT">
<!-- UE3 @tags in all kinds of comments -->
<!--<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">
<!-- UCPP pragmas -->
<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="_\\.,+-<>/?^&*">
<!-- exec directive markup -->
<EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
<!-- quoted strings -->
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>"</BEGIN>
<END>"</END>
</SPAN>
<!-- numbers -->
<SEQ_REGEXP HASH_CHARS="0123456789" TYPE="DIGIT">\b(0x[\p{XDigit}]+|\d+(\.\d*)?(e[+-]?\d+)?[fF]?)\b</SEQ_REGEXP>
<!-- parameters -->
<MARK_PREVIOUS MATCH_TYPE="OPERATOR" TYPE="MARKUP">=</MARK_PREVIOUS>
<!-- boolean values -->
<KEYWORDS>
<LITERAL2>true</LITERAL2>
<LITERAL2>false</LITERAL2>
<LITERAL2>yes</LITERAL2>
<LITERAL2>no</LITERAL2>
<LITERAL2>on</LITERAL2>
<LITERAL2>off</LITERAL2>
</KEYWORDS>
</RULES>
<!-- CppText blocks in UnrealScript -->
<RULES SET="CPPTEXT" ESCAPE="\" IGNORE_CASE="false">
<EOL_SPAN AT_WHITESPACE_END="TRUE" DELEGATE="DIRECTIVE" TYPE="KEYWORD2">#</EOL_SPAN>
<SPAN TYPE="COMMENT2" DELEGATE="COMMENT">
<BEGIN>/**</BEGIN>
<END>*/</END>
</SPAN>
<!-- multi line comments -->
<SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
<BEGIN>/*</BEGIN>
<END>*/</END>
</SPAN>
<!-- end of line comments -->
<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN>
<EOL_SPAN TYPE="COMMENT2" DELEGATE="EOLCOMMENT">///</EOL_SPAN>
<!--<IMPORT DELEGATE="c++::LEX"/>-->
<IMPORT DELEGATE="c++::CORE"/>
<!--<IMPORT DELEGATE="c++::DEFINE"/>-->
<KEYWORDS>
<KEYWORD1>NULL</KEYWORD1>
<KEYWORD1>FALSE</KEYWORD1>
<KEYWORD1>TRUE</KEYWORD1>
<KEYWORD1>BYTE</KEYWORD1>
<KEYWORD1>FLOAT</KEYWORD1>
<KEYWORD1>INT</KEYWORD1>
<KEYWORD1>TCHAR</KEYWORD1>
<KEYWORD1>TArray</KEYWORD1>
<KEYWORD1>TSet</KEYWORD1>
<!-- Unreal Engine CPP Types? -->
<KEYWORD2>FName</KEYWORD2>
<KEYWORD2>FVector</KEYWORD2>
<KEYWORD2>FRotator</KEYWORD2>
<KEYWORD2>FColor</KEYWORD2>
<KEYWORD2>FLinearColor</KEYWORD2>
<KEYWORD2>FGuid</KEYWORD2>
<KEYWORD2>FFrame</KEYWORD2>
<KEYWORD2>FCanvas</KEYWORD2>
<KEYWORD3>FRigidBodyState</KEYWORD3>
<KEYWORD3>FRigidBodyCollisionInfo</KEYWORD3>
<KEYWORD3>FCollisionImpactData</KEYWORD3>
<KEYWORD3>FIntRect</KEYWORD3>
<KEYWORD3>FViewport</KEYWORD3>
<KEYWORD3>FSceneView</KEYWORD3>
<KEYWORD3>FCanvas</KEYWORD3>
<KEYWORD3>FArchive</KEYWORD3>
<KEYWORD3>FSeqOpOutputInputLink</KEYWORD3>
<!-- Native only objects and types? -->
<KEYWORD3>UBOOL</KEYWORD3>
<KEYWORD3>UClass</KEYWORD3>
<KEYWORD3>UFunction</KEYWORD3>
<KEYWORD3>UProperty</KEYWORD3>
<KEYWORD3>UObject</KEYWORD3>
<KEYWORD3>UPackageMap</KEYWORD3>
<KEYWORD3>UActorChannel</KEYWORD3>
<KEYWORD3>UPrimitiveComponent</KEYWORD3>
<KEYWORD3>ULevel</KEYWORD3>
<KEYWORD3>UAnimNodeSequence</KEYWORD3>
<!-- Kismet -->
<KEYWORD3>USequenceObject</KEYWORD3>
<KEYWORD3>USequenceOp</KEYWORD3>
<KEYWORD3>AActor</KEYWORD3>
<KEYWORD3>APawn</KEYWORD3>
<KEYWORD3>APlayerController</KEYWORD3>
<KEYWORD3>AVolume</KEYWORD3>
<KEYWORD3>AController</KEYWORD3>
<KEYWORD3>AFluidSurfaceActor</KEYWORD3>
<KEYWORD3>AProjectile</KEYWORD3>
<KEYWORD3>APortalTeleporter</KEYWORD3>
<KEYWORD3>ANavigationPoint</KEYWORD3>
<KEYWORD3>AScout</KEYWORD3>
<!-- PhysX -->
<KEYWORD3>NxActorDesc</KEYWORD3>
<KEYWORD3>NxActor</KEYWORD3>
<!-- typename -->
<!-- appMemzero -->
</KEYWORDS>
</RULES>
<!-- defaultproperties and structdefaultproperties -->
<RULES SET="DEFAULTS" ESCAPE="\" IGNORE_CASE="TRUE">
<!--
highlight initial opening brace like final closing brace
(there are no others in defprops, so this shouldn't be a problem
-->
<SEQ TYPE="KEYWORD1">{</SEQ>
<!-- multi line comments -->
<SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
<BEGIN>/*</BEGIN>
<END>*/</END>
</SPAN>
<!-- end of line comments -->
<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN>
<!-- string literals -->
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>"</BEGIN>
<END>"</END>
</SPAN>
<!-- name and object literals NOTE: Defaults dont actually use these-->
<SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\">
<BEGIN>'</BEGIN>
<END>'</END>
</SPAN>
<!-- subobjects -->
<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>
<!-- regular expression for hexadecimal and decimal numbers, including sign -->
<SEQ_REGEXP HASH_CHARS="+-0123456789" TYPE="DIGIT">\b0x[\p{XDigit}]+|[+-]?\b\d+(\.\d*)?([eE][+-]?\d+)?[fF]?\b</SEQ_REGEXP>
<!-- everything before "=", ".", "(" or "[" is a variable name -->
<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><!-- Invalid for arrays in defaults -->
<!-- closing brackets -->
<SEQ TYPE="OPERATOR">]</SEQ><!-- Invalid for arrays in defaults -->
<SEQ TYPE="OPERATOR">)</SEQ>
<!-- comma for dynarray and struct values -->
<SEQ TYPE="OPERATOR">,</SEQ>
<!-- variable names can be separated from "=" by whitespace, so highlight that case separately -->
<SEQ_REGEXP AT_WHITESPACE_END="TRUE" HASH_CHARS="abcdefghijklmnopqrstuvwxyz" TYPE="MARKUP">\w+</SEQ_REGEXP>
<IMPORT DELEGATE="uscript::UEOBJECT"/>
<KEYWORDS>
<!-- dynamic array operations -->
<KEYWORD1>Add</KEYWORD1>
<KEYWORD1>Empty</KEYWORD1>
<KEYWORD1>Remove</KEYWORD1>
</KEYWORDS>
</RULES>
<!-- special highlighting for "Begin Object" lines -->
<RULES SET="BEGINOBJECT">
<SEQ TYPE="OPERATOR">=</SEQ>
<!-- multi line comments -->
<SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
<BEGIN>/*</BEGIN>
<END>*/</END>
</SPAN>
<!-- end of line comments -->
<EOL_SPAN TYPE="COMMENT1" DELEGATE="EOLCOMMENT">//</EOL_SPAN>
<!-- name and object literals-->
<SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE" ESCAPE="\">
<BEGIN>'</BEGIN>
<END>'</END>
</SPAN>
<IMPORT DELEGATE="uscript::UEOBJECT"/>
<KEYWORDS>
<KEYWORD1>ObjName</KEYWORD1>
</KEYWORDS>
</RULES>
</MODE>