TSynEIScriptSyn {first Identifier is considered to be the Class Name } tk {second Identifier is considered to be the Identifier Prefix } IdentStart '_', 'a'..'z', 'A'..'Z':: '_', '0'..'9', 'a'..'z', 'A'..'Z':: TOKENTYPES Identifier Key Style=[fsBold] Skobki Style=[fsBold]|Foreground=clRed DateTypes Style=[fsBold]|Foreground=clMaroon Functions Style=[fsBold]|Foreground=clBlue Comment Style=[fsItalic]|Foreground=clNavy Number Style=[fsBold]|Foreground=clFuchsia StringValues Style=[fsBold]|Foreground=clGreen |><| KEYS { all between KEYS and |><| is considered to be a keyword } Script GlobalVars DeclareScript if then WorldScript For NULL |><| KEYS DateTypes { all between KEYS and |><| is considered to be a keyword } object group float string |><| KEYS Functions { all between KEYS and |><| is considered to be a keyword } ActivateTrap Add AddLoot AddMob AddObject AddRectToArea AddRoundToArea AddUnitToParty AddUnitToServer AddUnitUnderControl AlarmPosX AlarmPosY AlarmTime Any AttachParticles AttachParticleSource Attack BlockUnit Cast CastSpellPoint CastSpellUnit ConsoleFloat ConsoleString CopyItems CopyLoot CopyStats Crawl CreateFX CreateFXSource CreateLightning CreateParticleSource CreateParty CreatePointLight CreateRandomizedFXSource DeleteArea DeleteFXSource DeleteLightning DeleteParticleSource DeletePointLight DistanceUnitPoint DistanceUnitUnit Div EnableLever EraseQuestItem Every FixItems FixWorldTime Follow GetAIClass GetBSZValue GetDiplomacy GetFutureX GetFutureY GetLeader GetLeverState GetLootItemsCount GetMercsNumber GetMoney GetObject GetObjectByID GetObjectByName GetObjectID GetPlayer GetPlayerUnits GetUnitOfPlayer GetWorldTime GetX GetY GetZ GetZValue GiveDexterity GiveIntelligence GiveItem GiveMoney GiveQuestItem GiveSkill GiveStrength GiveUnitQuestItem GiveUnitSpell GodMode GroupAdd GroupCross GroupHas GroupSee GroupSize GroupSub GSDelVar GSGetVar GSSetVar GSSetVarMax Guard HaveItem HideObject HP Idle InflictDamage InvokeAlarm IsAlarm IsAlive IsCameraPlaying IsDead IsEnemy IsEqual IsEqualString IsGreater IsInArea IsInSquare IsLess IsNight IsPlayerInDanger IsPlayerInSafety IsUnitBlocked IsUnitInWater IsUnitVisible KillScript KillUnit LeaveToZone Lie Mana MaxHP MaxMana MoveParticleSource MovePointLight MoveToObject MoveToPoint Mul Not PlayAnimation PlayCamera PlayerSee PlayFX PlayMovie PlayMusic Qfinish QObjArea QObjGetItem QObjKillGroup QObjKillUnit QObjSeeObject QObjSeeUnit QObjUse QStart QuestComplete Random RecalcMercBriefings RedeployParty RemoveObject RemoveObjectFromServer RemoveParty RemoveQuestItem RemoveUnitFromControl RemoveUnitFromParty RemoveUnitFromServer ResetTarget Rest RotateTo Run RunWorldTime SendEvent SendStringEvent Sentry SetBackgroudColor SetCameraOrientation SetCameraPosition SetCP SetCPFast SetCurrentParty SetDiplomacy SetDirectionToObject SetEnemy SetParticleSourceSize SetPlayer SetPlayerAggression SetScience SetSpellAggression SetSunLight SetWaterLevel SetWind ShowBitmap ShowCredits Sleep SleepUntil SleepUntilIdle Standt StartAnimation Sub Sum SwitchLeverState SwitchLeverStateEx UMAg UMAggression UMClear UMCorpseWatcher UMFear UMFollow UMGuard UMGuardEx UMPatrol UMPatrolAddPoint UMPatrolAddPointLook UMPatrolClear UMPlayer UMRevenge UMSentry UMStandard UMSuspection UnitInSquare UnitSee WaitEndAnimation WaitSegment Walk WasLooted |><| CHARS 'A'..'Z', 'a'..'z', '_':: Ident BeginProc fTokenID := IdentKind((fLine + Run)); inc(Run, fStringLen); //while Identifiers[fLine[Run]] do while FLine[Run] in ['A'..'Z', 'a'..'z', '_', '0'..'9'] do Inc(Run); EndProc '(', ')':: Skobki BeginProc Inc(Run); fTokenID := tkSkobki; while FLine[Run] in ['(', ')'] do begin Inc(Run); end; EndProc '0'..'9', '.':: Number BeginProc Inc(Run); fTokenID := tkNumber; while FLine[Run] in ['0'..'9', '.'] do begin Inc(Run); end; EndProc |><| ENCLOSEDBY Comment,CommentProc,//, StringValues,StringValuesProc,",", |><|