From 081658d3d56efe83e1976bb7b2c5e58fa34bc7f6 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 7 Dec 2008 12:11:59 +0000 Subject: [PATCH] - Fixed: The save percentage for Doom's green armor was slightly too low which caused roundoff errors that made it less than 1/3 effective. - Added support for "RRGGBB" strings to V_GetColor. - Fixed: Desaturation maps for the TEXTURES lump were calculated incorrectly. - Changed GetSpriteIndex to cache the last used sprite name so that the code using this function doesn't have to do it itself. - Moved some more code for the state parser into p_states.cpp. - Fixed: TDeletingArray should not try to delete NULL pointers. SVN r1312 (trunk) --- docs/rh-log.txt | 10 + src/d_dehacked.cpp | 26 +- src/info.cpp | 16 +- src/info.h | 31 - src/p_states.cpp | 152 +- src/sc_man.cpp | 6 +- src/sc_man.h | 10 +- src/sc_man_scanner.h | 3799 +++++++++---------- src/sc_man_scanner.re | 6 +- src/tarray.h | 3 +- src/textures/multipatchtexture.cpp | 4 +- src/thingdef/olddecorations.cpp | 55 +- src/thingdef/thingdef.cpp | 71 +- src/thingdef/thingdef.h | 41 +- src/thingdef/thingdef_exp.cpp | 159 +- src/thingdef/thingdef_expression.cpp | 30 +- src/thingdef/thingdef_parse.cpp | 45 +- src/thingdef/thingdef_properties.cpp | 160 +- src/thingdef/thingdef_states.cpp | 90 +- src/v_palette.cpp | 4 +- src/v_palette.h | 2 +- src/v_video.cpp | 53 +- wadsrc/static/actors/doom/doomarmor.txt | 4 +- wadsrc/static/actors/strife/strifearmor.txt | 2 +- 24 files changed, 2428 insertions(+), 2351 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 7246d84bd6..77e0a0e35a 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,3 +1,13 @@ +December 7, 2008 (Changes by Graf Zahl) +- Fixed: The save percentage for Doom's green armor was slightly too low + which caused roundoff errors that made it less than 1/3 effective. +- Added support for "RRGGBB" strings to V_GetColor. +- Fixed: Desaturation maps for the TEXTURES lump were calculated incorrectly. +- Changed GetSpriteIndex to cache the last used sprite name so that the code + using this function doesn't have to do it itself. +- Moved some more code for the state parser into p_states.cpp. +- Fixed: TDeletingArray should not try to delete NULL pointers. + December 6, 2008 - Added binary (b) and hexadecimal (x) cast types for ACS's various print statements. diff --git a/src/d_dehacked.cpp b/src/d_dehacked.cpp index 0de22dcf2c..6977179d39 100644 --- a/src/d_dehacked.cpp +++ b/src/d_dehacked.cpp @@ -820,31 +820,31 @@ static int PatchThing (int thingy) } if (!strnicmp (Line1, "Initial", 7)) - statedef.AddState("Spawn", state ? state : GetDefault()->SpawnState); + statedef.SetStateLabel("Spawn", state ? state : GetDefault()->SpawnState); else if (!strnicmp (Line1, "First moving", 12)) - statedef.AddState("See", state); + statedef.SetStateLabel("See", state); else if (!strnicmp (Line1, "Injury", 6)) - statedef.AddState("Pain", state); + statedef.SetStateLabel("Pain", state); else if (!strnicmp (Line1, "Close attack", 12)) { if (thingy != 1) // Not for players! { - statedef.AddState("Melee", state); + statedef.SetStateLabel("Melee", state); } } else if (!strnicmp (Line1, "Far attack", 10)) { if (thingy != 1) // Not for players! { - statedef.AddState("Missile", state); + statedef.SetStateLabel("Missile", state); } } else if (!strnicmp (Line1, "Death", 5)) - statedef.AddState("Death", state); + statedef.SetStateLabel("Death", state); else if (!strnicmp (Line1, "Exploding", 9)) - statedef.AddState("XDeath", state); + statedef.SetStateLabel("XDeath", state); else if (!strnicmp (Line1, "Respawn", 7)) - statedef.AddState("Raise", state); + statedef.SetStateLabel("Raise", state); } else if (stricmp (Line1 + linelen - 6, " sound") == 0) { @@ -1394,15 +1394,15 @@ static int PatchWeapon (int weapNum) } if (strnicmp (Line1, "Deselect", 8) == 0) - statedef.AddState("Select", state); + statedef.SetStateLabel("Select", state); else if (strnicmp (Line1, "Select", 6) == 0) - statedef.AddState("Deselect", state); + statedef.SetStateLabel("Deselect", state); else if (strnicmp (Line1, "Bobbing", 7) == 0) - statedef.AddState("Ready", state); + statedef.SetStateLabel("Ready", state); else if (strnicmp (Line1, "Shooting", 8) == 0) - statedef.AddState("Fire", state); + statedef.SetStateLabel("Fire", state); else if (strnicmp (Line1, "Firing", 6) == 0) - statedef.AddState("Flash", state); + statedef.SetStateLabel("Flash", state); } else if (stricmp (Line1, "Ammo type") == 0) { diff --git a/src/info.cpp b/src/info.cpp index f0c320a6b8..93f9502c23 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -58,6 +58,9 @@ extern void LoadActors (); int GetSpriteIndex(const char * spritename) { + static char lastsprite[5]; + static int lastindex; + // Make sure that the string is upper case and 4 characters long char upper[5]={0,0,0,0,0}; for (int i = 0; spritename[i] != 0 && i < 4; i++) @@ -65,18 +68,25 @@ int GetSpriteIndex(const char * spritename) upper[i] = toupper (spritename[i]); } + // cache the name so if the next one is the same the function doesn't have to perform a search. + if (!strcmp(upper, lastsprite)) + { + return lastindex; + } + strcpy(lastsprite, upper); + for (unsigned i = 0; i < sprites.Size (); ++i) { - if (strcmp (sprites[i].name, spritename) == 0) + if (strcmp (sprites[i].name, upper) == 0) { - return (int)i; + return (lastindex = (int)i); } } spritedef_t temp; strcpy (temp.name, upper); temp.numframes = 0; temp.spriteframes = 0; - return (int)sprites.Push (temp); + return (lastindex = (int)sprites.Push (temp)); } diff --git a/src/info.h b/src/info.h index 07b6650d0e..6debadfeae 100644 --- a/src/info.h +++ b/src/info.h @@ -29,37 +29,6 @@ ** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **--------------------------------------------------------------------------- ** -** Important restrictions because of the way FState is structured: -** -** The range of Frame is [0,63]. Since sprite naming conventions -** are even more restrictive than this, this isn't something to -** really worry about. -** -** The range of Tics is [-1,65534]. If Misc1 is important, then -** the range of Tics is reduced to [-1,254], because Misc1 also -** doubles as the high byte of the tic. -** -** The range of Misc1 is [-128,127] and Misc2's range is [0,255]. -** -** When compiled with Visual C++, this struct is 16 bytes. With -** any other compiler (assuming a 32-bit architecture), it is 20 bytes. -** This is because with VC++, I can use the charizing operator to -** initialize the name array to exactly 4 chars. If GCC would -** compile something like char t = "PLYR"[0]; as char t = 'P'; then GCC -** could also use the 16-byte version. Unfortunately, GCC compiles it -** more like: -** -** char t; -** void initializer () { -** static const char str[]="PLYR"; -** t = str[0]; -** } -** -** While this does allow the use of a 16-byte FState, the additional -** code amounts to more than 4 bytes. -** -** If C++ would allow char name[4] = "PLYR"; without an error (as C does), -** I could just initialize the name as a regular string and be done with it. */ #ifndef __INFO_H__ diff --git a/src/p_states.cpp b/src/p_states.cpp index 251c6033b6..6d132c92f4 100644 --- a/src/p_states.cpp +++ b/src/p_states.cpp @@ -366,17 +366,33 @@ FStateDefine * FStateDefinitions::FindStateAddress(const char *name) //========================================================================== // -// Adds a new state tp the curremt list +// Adds a new state to the curremt list // //========================================================================== -void FStateDefinitions::AddState (const char *statename, FState *state, BYTE defflags) +void FStateDefinitions::SetStateLabel (const char *statename, FState *state, BYTE defflags) { FStateDefine *std = FindStateAddress(statename); std->State = state; std->DefineFlags = defflags; } +//========================================================================== +// +// Adds a new state to the curremt list +// +//========================================================================== + +void FStateDefinitions::AddStateLabel (const char *statename) +{ + intptr_t index = StateArray.Size(); + FStateDefine *std = FindStateAddress(statename); + std->State = (FState *)(index+1); + std->DefineFlags = SDF_INDEX; + laststate = NULL; + lastlabel = index; +} + //========================================================================== // // Finds the state associated with the given name @@ -457,7 +473,7 @@ void FStateDefinitions::InstallStates(FActorInfo *info, AActor *defaults) if (state == NULL) { // A NULL spawn state will crash the engine so set it to something valid. - AddState("Spawn", GetDefault()->SpawnState); + SetStateLabel("Spawn", GetDefault()->SpawnState); } if (info->StateList != NULL) @@ -505,13 +521,17 @@ void FStateDefinitions::MakeStateList(const FStateLabels *list, TArrayActorInfo && cls->ActorInfo->StateList) + StateArray.Clear(); + laststate = NULL; + lastlabel = -1; + + if (cls != NULL && cls->ActorInfo != NULL && cls->ActorInfo->StateList != NULL) { MakeStateList(cls->ActorInfo->StateList, StateLabels); } else { - ClearStateLabels(); + StateLabels.Clear(); } } @@ -559,7 +579,7 @@ void FStateDefinitions::RetargetStatePointers (intptr_t count, const char *targe { for(unsigned i = 0;iNextState = (FState*)copystring(string); + laststate->DefineFlags = SDF_LABEL; + return true; + } + else if (lastlabel >= 0) + { // Following a label: Retarget it. + RetargetStates (lastlabel+1, string); + return true; + } + return false; +} + +//========================================================================== +// +// SetStop +// +// sets a stop operation +// +//========================================================================== + +bool FStateDefinitions::SetStop() +{ + if (laststate != NULL) + { + laststate->DefineFlags = SDF_STOP; + return true; + } + else if (lastlabel >=0) + { + RetargetStates (lastlabel+1, NULL); + return true; + } + return false; +} + +//========================================================================== +// +// SetWait +// +// sets a wait or fail operation +// +//========================================================================== + +bool FStateDefinitions::SetWait() +{ + if (laststate != NULL) + { + laststate->DefineFlags = SDF_WAIT; + return true; + } + return false; +} + +//========================================================================== +// +// SetLoop +// +// sets a loop operation +// +//========================================================================== + +bool FStateDefinitions::SetLoop() +{ + if (laststate != NULL) + { + laststate->DefineFlags = SDF_INDEX; + laststate->NextState = (FState*)(lastlabel+1); + return true; + } + return false; +} + +//========================================================================== +// +// AddStates +// adds some state to the current definition set +// +//========================================================================== + +bool FStateDefinitions::AddStates(FState *state, const char *framechars) +{ + bool error = false; + while (*framechars) + { + int frame=((*framechars++)&223)-'A'; + + if (frame<0 || frame>28) + { + frame = 0; + error = true; + } + + state->Frame=(state->Frame&(SF_FULLBRIGHT))|frame; + StateArray.Push(*state); + } + laststate = &StateArray[StateArray.Size() - 1]; + return !error; +} + //========================================================================== // // FinishStates @@ -716,7 +848,7 @@ void FStateDefinitions::ResolveGotoLabels (FActorInfo *actor, AActor *defaults, // //========================================================================== -int FStateDefinitions::FinishStates (FActorInfo *actor, AActor *defaults, TArray &StateArray) +int FStateDefinitions::FinishStates (FActorInfo *actor, AActor *defaults) { static int c=0; int count = StateArray.Size(); @@ -770,6 +902,12 @@ int FStateDefinitions::FinishStates (FActorInfo *actor, AActor *defaults, TArray } +//========================================================================== +// +// Prints all state label info to the logfile +// +//========================================================================== + void DumpStateHelper(FStateLabels *StateList, const FString &prefix) { for (int i = 0; i < StateList->NumLabels; i++) diff --git a/src/sc_man.cpp b/src/sc_man.cpp index 1f6dd91718..0044aacb2d 100644 --- a/src/sc_man.cpp +++ b/src/sc_man.cpp @@ -911,12 +911,12 @@ FString FScanner::TokenName (int token, const char *string) "'global'", "'self'", "'stop'", - "'pickup'", - "'breakable'", - "'projectile'", "'#include'", "'fixed_t'", "'angle_t'", + "'abs'", + "'random'", + "'random2'" }; FString work; diff --git a/src/sc_man.h b/src/sc_man.h index 665b31bf8d..f647869997 100644 --- a/src/sc_man.h +++ b/src/sc_man.h @@ -29,7 +29,7 @@ public: const SavedPos SavePos(); void RestorePos(const SavedPos &pos); - FString TokenName(int token, const char *string=NULL); + static FString TokenName(int token, const char *string=NULL); bool GetString(); void MustGetString(); @@ -203,14 +203,12 @@ enum TK_Global, TK_Self, TK_Stop, - TK_Eval, - TK_EvalNot, - TK_Pickup, - TK_Breakable, - TK_Projectile, TK_Include, TK_Fixed_t, TK_Angle_t, + TK_Abs, + TK_Random, + TK_Random2, TK_LastToken }; diff --git a/src/sc_man_scanner.h b/src/sc_man_scanner.h index 4faba58b62..0398d38473 100644 --- a/src/sc_man_scanner.h +++ b/src/sc_man_scanner.h @@ -145,10 +145,10 @@ yy2: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '.') { - if(yych == '*') goto yy606; + if(yych == '*') goto yy596; } else { - if(yych <= '/') goto yy604; - if(yych == '=') goto yy602; + if(yych <= '/') goto yy594; + if(yych == '=') goto yy592; } yy3: #line 205 "src/sc_man_scanner.re" @@ -158,20 +158,20 @@ yy4: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Y') { if(yych <= 'Q') { - if(yych == 'O') goto yy584; + if(yych == 'O') goto yy579; goto yy174; } else { - if(yych <= 'R') goto yy585; + if(yych <= 'R') goto yy580; if(yych <= 'X') goto yy174; - goto yy586; + goto yy581; } } else { if(yych <= 'q') { - if(yych == 'o') goto yy584; + if(yych == 'o') goto yy579; goto yy174; } else { - if(yych <= 'r') goto yy585; - if(yych == 'y') goto yy586; + if(yych <= 'r') goto yy580; + if(yych == 'y') goto yy581; goto yy174; } } @@ -183,29 +183,29 @@ yy6: yych = *++YYCURSOR; switch(yych) { case 'A': - case 'a': goto yy542; + case 'a': goto yy537; case 'H': - case 'h': goto yy543; + case 'h': goto yy538; case 'L': - case 'l': goto yy544; + case 'l': goto yy539; case 'O': - case 'o': goto yy545; + case 'o': goto yy540; case 'R': - case 'r': goto yy546; + case 'r': goto yy541; default: goto yy174; } yy7: yych = *++YYCURSOR; if(yych <= 'O') { - if(yych == 'E') goto yy515; + if(yych == 'E') goto yy510; if(yych <= 'N') goto yy174; - goto yy516; + goto yy511; } else { if(yych <= 'e') { if(yych <= 'd') goto yy174; - goto yy515; + goto yy510; } else { - if(yych == 'o') goto yy516; + if(yych == 'o') goto yy511; goto yy174; } } @@ -213,25 +213,25 @@ yy8: yych = *++YYCURSOR; if(yych <= 'X') { if(yych <= 'N') { - if(yych == 'L') goto yy487; + if(yych == 'L') goto yy482; if(yych <= 'M') goto yy174; - goto yy488; + goto yy483; } else { - if(yych == 'V') goto yy489; + if(yych == 'V') goto yy484; if(yych <= 'W') goto yy174; - goto yy490; + goto yy485; } } else { if(yych <= 'n') { - if(yych == 'l') goto yy487; + if(yych == 'l') goto yy482; if(yych <= 'm') goto yy174; - goto yy488; + goto yy483; } else { if(yych <= 'v') { if(yych <= 'u') goto yy174; - goto yy489; + goto yy484; } else { - if(yych == 'x') goto yy490; + if(yych == 'x') goto yy485; goto yy174; } } @@ -240,25 +240,25 @@ yy9: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'I') { - if(yych == 'A') goto yy458; + if(yych == 'A') goto yy453; if(yych <= 'H') goto yy174; - goto yy459; + goto yy454; } else { - if(yych == 'L') goto yy460; + if(yych == 'L') goto yy455; if(yych <= 'N') goto yy174; - goto yy461; + goto yy456; } } else { if(yych <= 'i') { - if(yych == 'a') goto yy458; + if(yych == 'a') goto yy453; if(yych <= 'h') goto yy174; - goto yy459; + goto yy454; } else { if(yych <= 'l') { if(yych <= 'k') goto yy174; - goto yy460; + goto yy455; } else { - if(yych == 'o') goto yy461; + if(yych == 'o') goto yy456; goto yy174; } } @@ -266,15 +266,15 @@ yy9: yy10: yych = *++YYCURSOR; if(yych <= 'O') { - if(yych == 'L') goto yy448; + if(yych == 'L') goto yy443; if(yych <= 'N') goto yy174; - goto yy449; + goto yy444; } else { if(yych <= 'l') { if(yych <= 'k') goto yy174; - goto yy448; + goto yy443; } else { - if(yych == 'o') goto yy449; + if(yych == 'o') goto yy444; goto yy174; } } @@ -283,122 +283,132 @@ yy11: if(yych <= 'T') { if(yych <= 'G') { if(yych <= 'E') goto yy174; - if(yych <= 'F') goto yy419; - goto yy421; + if(yych <= 'F') goto yy414; + goto yy416; } else { - if(yych == 'N') goto yy422; + if(yych == 'N') goto yy417; if(yych <= 'S') goto yy174; - goto yy423; + goto yy418; } } else { if(yych <= 'm') { if(yych <= 'e') goto yy174; - if(yych <= 'f') goto yy419; - if(yych <= 'g') goto yy421; + if(yych <= 'f') goto yy414; + if(yych <= 'g') goto yy416; goto yy174; } else { - if(yych <= 'n') goto yy422; - if(yych == 't') goto yy423; + if(yych <= 'n') goto yy417; + if(yych == 't') goto yy418; goto yy174; } } yy12: yych = *++YYCURSOR; - if(yych == 'E') goto yy411; - if(yych == 'e') goto yy411; - goto yy174; + if(yych <= 'E') { + if(yych == 'A') goto yy398; + if(yych <= 'D') goto yy174; + goto yy399; + } else { + if(yych <= 'a') { + if(yych <= '`') goto yy174; + goto yy398; + } else { + if(yych == 'e') goto yy399; + goto yy174; + } + } yy13: yych = *++YYCURSOR; switch(yych) { case 'B': - case 'b': goto yy353; + case 'b': goto yy340; case 'E': - case 'e': goto yy354; + case 'e': goto yy341; case 'H': - case 'h': goto yy355; + case 'h': goto yy342; case 'I': - case 'i': goto yy356; + case 'i': goto yy343; case 'O': - case 'o': goto yy357; + case 'o': goto yy344; case 'T': - case 't': goto yy358; + case 't': goto yy345; case 'U': - case 'u': goto yy359; + case 'u': goto yy346; case 'W': - case 'w': goto yy360; + case 'w': goto yy347; default: goto yy174; } yy14: yych = *++YYCURSOR; switch(yych) { case 'I': - case 'i': goto yy333; + case 'i': goto yy320; case 'L': - case 'l': goto yy334; + case 'l': goto yy321; case 'N': - case 'n': goto yy335; + case 'n': goto yy322; case 'S': - case 's': goto yy336; + case 's': goto yy323; default: goto yy174; } yy15: yych = *++YYCURSOR; if(yych <= 'O') { - if(yych == 'I') goto yy315; + if(yych == 'I') goto yy302; if(yych <= 'N') goto yy174; - goto yy316; + goto yy303; } else { if(yych <= 'i') { if(yych <= 'h') goto yy174; - goto yy315; + goto yy302; } else { - if(yych == 'o') goto yy316; + if(yych == 'o') goto yy303; goto yy174; } } yy16: yych = *++YYCURSOR; - if(yych == 'H') goto yy310; - if(yych == 'h') goto yy310; + if(yych == 'H') goto yy297; + if(yych == 'h') goto yy297; goto yy174; yy17: yych = *++YYCURSOR; if(yych <= 'O') { - if(yych == 'A') goto yy292; + if(yych == 'A') goto yy279; if(yych <= 'N') goto yy174; - goto yy293; + goto yy280; } else { if(yych <= 'a') { if(yych <= '`') goto yy174; - goto yy292; + goto yy279; } else { - if(yych == 'o') goto yy293; + if(yych == 'o') goto yy280; goto yy174; } } yy18: yych = *++YYCURSOR; - if(yych == 'O') goto yy288; - if(yych == 'o') goto yy288; + if(yych == 'O') goto yy275; + if(yych == 'o') goto yy275; goto yy174; yy19: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'D') { - if(yych == 'A') goto yy272; + if(yych == 'A') goto yy259; goto yy174; } else { - if(yych <= 'E') goto yy273; + if(yych <= 'E') goto yy260; if(yych <= 'N') goto yy174; - goto yy274; + goto yy261; } } else { if(yych <= 'd') { - if(yych == 'a') goto yy272; + if(yych == 'a') goto yy259; goto yy174; } else { - if(yych <= 'e') goto yy273; - if(yych == 'o') goto yy274; + if(yych <= 'e') goto yy260; + if(yych == 'o') goto yy261; goto yy174; } } @@ -407,73 +417,67 @@ yy20: if(yych <= 'U') { if(yych <= 'C') { if(yych <= 'A') goto yy174; - if(yych <= 'B') goto yy247; - goto yy248; + if(yych <= 'B') goto yy233; + goto yy234; } else { - if(yych == 'N') goto yy249; + if(yych == 'N') goto yy235; if(yych <= 'T') goto yy174; - goto yy250; + goto yy236; } } else { if(yych <= 'm') { if(yych <= 'a') goto yy174; - if(yych <= 'b') goto yy247; - if(yych <= 'c') goto yy248; + if(yych <= 'b') goto yy233; + if(yych <= 'c') goto yy234; goto yy174; } else { - if(yych <= 'n') goto yy249; - if(yych == 'u') goto yy250; + if(yych <= 'n') goto yy235; + if(yych == 'u') goto yy236; goto yy174; } } yy21: yych = *++YYCURSOR; if(yych <= 'R') { - if(yych == 'H') goto yy229; + if(yych == 'H') goto yy215; if(yych <= 'Q') goto yy174; - goto yy230; + goto yy216; } else { if(yych <= 'h') { if(yych <= 'g') goto yy174; - goto yy229; + goto yy215; } else { - if(yych == 'r') goto yy230; + if(yych == 'r') goto yy216; goto yy174; } } yy22: yych = *++YYCURSOR; if(yych <= 'U') { - if(yych == 'P') goto yy218; + if(yych == 'P') goto yy204; if(yych <= 'T') goto yy174; - goto yy219; + goto yy205; } else { if(yych <= 'p') { if(yych <= 'o') goto yy174; - goto yy218; + goto yy204; } else { - if(yych == 'u') goto yy219; + if(yych == 'u') goto yy205; goto yy174; } } yy23: yych = *++YYCURSOR; if(yych <= 'U') { - if(yych <= 'Q') { - if(yych == 'I') goto yy183; - goto yy174; - } else { - if(yych <= 'R') goto yy184; - if(yych <= 'T') goto yy174; - goto yy185; - } + if(yych == 'R') goto yy183; + if(yych <= 'T') goto yy174; + goto yy184; } else { - if(yych <= 'q') { - if(yych == 'i') goto yy183; - goto yy174; + if(yych <= 'r') { + if(yych <= 'q') goto yy174; + goto yy183; } else { - if(yych <= 'r') goto yy184; - if(yych == 'u') goto yy185; + if(yych == 'u') goto yy184; goto yy174; } } @@ -488,7 +492,7 @@ yy25: ScriptError ("Unexpected character: %c (ASCII %d)\n", *tok, *tok); goto std1; } -#line 492 "src/sc_man_scanner.h" +#line 496 "src/sc_man_scanner.h" yy26: yych = *++YYCURSOR; goto yy174; @@ -501,7 +505,7 @@ yy27: yy28: #line 154 "src/sc_man_scanner.re" { RET(TK_IntConst); } -#line 505 "src/sc_man_scanner.h" +#line 509 "src/sc_man_scanner.h" yy29: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); @@ -515,7 +519,7 @@ yy30: yy31: #line 198 "src/sc_man_scanner.re" { RET('.'); } -#line 519 "src/sc_man_scanner.h" +#line 523 "src/sc_man_scanner.h" yy32: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); @@ -533,7 +537,7 @@ yy34: yy35: #line 208 "src/sc_man_scanner.re" { RET('>'); } -#line 537 "src/sc_man_scanner.h" +#line 541 "src/sc_man_scanner.h" yy36: ++YYCURSOR; if((yych = *YYCURSOR) <= ';') goto yy37; @@ -542,120 +546,120 @@ yy36: yy37: #line 207 "src/sc_man_scanner.re" { RET('<'); } -#line 546 "src/sc_man_scanner.h" +#line 550 "src/sc_man_scanner.h" yy38: ++YYCURSOR; if((yych = *YYCURSOR) == '+') goto yy107; if(yych == '=') goto yy109; #line 203 "src/sc_man_scanner.re" { RET('+'); } -#line 553 "src/sc_man_scanner.h" +#line 557 "src/sc_man_scanner.h" yy40: ++YYCURSOR; if((yych = *YYCURSOR) == '-') goto yy103; if(yych == '=') goto yy105; #line 202 "src/sc_man_scanner.re" { RET('-'); } -#line 560 "src/sc_man_scanner.h" +#line 564 "src/sc_man_scanner.h" yy42: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy101; #line 204 "src/sc_man_scanner.re" { RET('*'); } -#line 566 "src/sc_man_scanner.h" +#line 570 "src/sc_man_scanner.h" yy44: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy99; #line 206 "src/sc_man_scanner.re" { RET('%'); } -#line 572 "src/sc_man_scanner.h" +#line 576 "src/sc_man_scanner.h" yy46: ++YYCURSOR; if((yych = *YYCURSOR) == '&') goto yy95; if(yych == '=') goto yy97; #line 199 "src/sc_man_scanner.re" { RET('&'); } -#line 579 "src/sc_man_scanner.h" +#line 583 "src/sc_man_scanner.h" yy48: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy93; #line 209 "src/sc_man_scanner.re" { RET('^'); } -#line 585 "src/sc_man_scanner.h" +#line 589 "src/sc_man_scanner.h" yy50: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy91; if(yych == '|') goto yy89; #line 210 "src/sc_man_scanner.re" { RET('|'); } -#line 592 "src/sc_man_scanner.h" +#line 596 "src/sc_man_scanner.h" yy52: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy87; #line 193 "src/sc_man_scanner.re" { RET('='); } -#line 598 "src/sc_man_scanner.h" +#line 602 "src/sc_man_scanner.h" yy54: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy85; #line 200 "src/sc_man_scanner.re" { RET('!'); } -#line 604 "src/sc_man_scanner.h" +#line 608 "src/sc_man_scanner.h" yy56: ++YYCURSOR; #line 188 "src/sc_man_scanner.re" { RET(';'); } -#line 609 "src/sc_man_scanner.h" +#line 613 "src/sc_man_scanner.h" yy58: ++YYCURSOR; #line 189 "src/sc_man_scanner.re" { RET('{'); } -#line 614 "src/sc_man_scanner.h" +#line 618 "src/sc_man_scanner.h" yy60: ++YYCURSOR; #line 190 "src/sc_man_scanner.re" { RET('}'); } -#line 619 "src/sc_man_scanner.h" +#line 623 "src/sc_man_scanner.h" yy62: ++YYCURSOR; #line 191 "src/sc_man_scanner.re" { RET(','); } -#line 624 "src/sc_man_scanner.h" +#line 628 "src/sc_man_scanner.h" yy64: ++YYCURSOR; #line 192 "src/sc_man_scanner.re" { RET(':'); } -#line 629 "src/sc_man_scanner.h" +#line 633 "src/sc_man_scanner.h" yy66: ++YYCURSOR; #line 194 "src/sc_man_scanner.re" { RET('('); } -#line 634 "src/sc_man_scanner.h" +#line 638 "src/sc_man_scanner.h" yy68: ++YYCURSOR; #line 195 "src/sc_man_scanner.re" { RET(')'); } -#line 639 "src/sc_man_scanner.h" +#line 643 "src/sc_man_scanner.h" yy70: ++YYCURSOR; #line 196 "src/sc_man_scanner.re" { RET('['); } -#line 644 "src/sc_man_scanner.h" +#line 648 "src/sc_man_scanner.h" yy72: ++YYCURSOR; #line 197 "src/sc_man_scanner.re" { RET(']'); } -#line 649 "src/sc_man_scanner.h" +#line 653 "src/sc_man_scanner.h" yy74: ++YYCURSOR; #line 201 "src/sc_man_scanner.re" { RET('~'); } -#line 654 "src/sc_man_scanner.h" +#line 658 "src/sc_man_scanner.h" yy76: ++YYCURSOR; #line 211 "src/sc_man_scanner.re" { RET('?'); } -#line 659 "src/sc_man_scanner.h" +#line 663 "src/sc_man_scanner.h" yy78: ++YYCURSOR; yych = *YYCURSOR; @@ -663,12 +667,12 @@ yy78: yy79: #line 213 "src/sc_man_scanner.re" { goto std1; } -#line 667 "src/sc_man_scanner.h" +#line 671 "src/sc_man_scanner.h" yy80: ++YYCURSOR; #line 214 "src/sc_man_scanner.re" { goto newline; } -#line 672 "src/sc_man_scanner.h" +#line 676 "src/sc_man_scanner.h" yy82: yych = *++YYCURSOR; goto yy25; @@ -689,88 +693,88 @@ yy85: ++YYCURSOR; #line 187 "src/sc_man_scanner.re" { RET(TK_Neq); } -#line 693 "src/sc_man_scanner.h" +#line 697 "src/sc_man_scanner.h" yy87: ++YYCURSOR; #line 186 "src/sc_man_scanner.re" { RET(TK_Eq); } -#line 698 "src/sc_man_scanner.h" +#line 702 "src/sc_man_scanner.h" yy89: ++YYCURSOR; #line 183 "src/sc_man_scanner.re" { RET(TK_OrOr); } -#line 703 "src/sc_man_scanner.h" +#line 707 "src/sc_man_scanner.h" yy91: ++YYCURSOR; #line 176 "src/sc_man_scanner.re" { RET(TK_OrEq); } -#line 708 "src/sc_man_scanner.h" +#line 712 "src/sc_man_scanner.h" yy93: ++YYCURSOR; #line 175 "src/sc_man_scanner.re" { RET(TK_XorEq); } -#line 713 "src/sc_man_scanner.h" +#line 717 "src/sc_man_scanner.h" yy95: ++YYCURSOR; #line 182 "src/sc_man_scanner.re" { RET(TK_AndAnd); } -#line 718 "src/sc_man_scanner.h" +#line 722 "src/sc_man_scanner.h" yy97: ++YYCURSOR; #line 174 "src/sc_man_scanner.re" { RET(TK_AndEq); } -#line 723 "src/sc_man_scanner.h" +#line 727 "src/sc_man_scanner.h" yy99: ++YYCURSOR; #line 173 "src/sc_man_scanner.re" { RET(TK_ModEq); } -#line 728 "src/sc_man_scanner.h" +#line 732 "src/sc_man_scanner.h" yy101: ++YYCURSOR; #line 171 "src/sc_man_scanner.re" { RET(TK_MulEq); } -#line 733 "src/sc_man_scanner.h" +#line 737 "src/sc_man_scanner.h" yy103: ++YYCURSOR; #line 181 "src/sc_man_scanner.re" { RET(TK_Decr); } -#line 738 "src/sc_man_scanner.h" +#line 742 "src/sc_man_scanner.h" yy105: ++YYCURSOR; #line 170 "src/sc_man_scanner.re" { RET(TK_SubEq); } -#line 743 "src/sc_man_scanner.h" +#line 747 "src/sc_man_scanner.h" yy107: ++YYCURSOR; #line 180 "src/sc_man_scanner.re" { RET(TK_Incr); } -#line 748 "src/sc_man_scanner.h" +#line 752 "src/sc_man_scanner.h" yy109: ++YYCURSOR; #line 169 "src/sc_man_scanner.re" { RET(TK_AddEq); } -#line 753 "src/sc_man_scanner.h" +#line 757 "src/sc_man_scanner.h" yy111: ++YYCURSOR; #line 184 "src/sc_man_scanner.re" { RET(TK_Leq); } -#line 758 "src/sc_man_scanner.h" +#line 762 "src/sc_man_scanner.h" yy113: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy115; #line 179 "src/sc_man_scanner.re" { RET(TK_LShift); } -#line 764 "src/sc_man_scanner.h" +#line 768 "src/sc_man_scanner.h" yy115: ++YYCURSOR; #line 168 "src/sc_man_scanner.re" { RET(TK_LShiftEq); } -#line 769 "src/sc_man_scanner.h" +#line 773 "src/sc_man_scanner.h" yy117: ++YYCURSOR; #line 185 "src/sc_man_scanner.re" { RET(TK_Geq); } -#line 774 "src/sc_man_scanner.h" +#line 778 "src/sc_man_scanner.h" yy119: ++YYCURSOR; if((yych = *YYCURSOR) <= '<') goto yy120; @@ -779,23 +783,23 @@ yy119: yy120: #line 178 "src/sc_man_scanner.re" { RET(TK_RShift); } -#line 783 "src/sc_man_scanner.h" +#line 787 "src/sc_man_scanner.h" yy121: ++YYCURSOR; if((yych = *YYCURSOR) == '=') goto yy125; #line 177 "src/sc_man_scanner.re" { RET(TK_URShift); } -#line 789 "src/sc_man_scanner.h" +#line 793 "src/sc_man_scanner.h" yy123: ++YYCURSOR; #line 167 "src/sc_man_scanner.re" { RET(TK_RShiftEq); } -#line 794 "src/sc_man_scanner.h" +#line 798 "src/sc_man_scanner.h" yy125: ++YYCURSOR; #line 166 "src/sc_man_scanner.re" { RET(TK_URShiftEq); } -#line 799 "src/sc_man_scanner.h" +#line 803 "src/sc_man_scanner.h" yy127: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -831,7 +835,7 @@ yy130: ++YYCURSOR; #line 163 "src/sc_man_scanner.re" { RET(TK_NameConst); } -#line 835 "src/sc_man_scanner.h" +#line 839 "src/sc_man_scanner.h" yy132: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -851,7 +855,7 @@ yy136: yy137: #line 160 "src/sc_man_scanner.re" { RET(TK_StringConst); } -#line 855 "src/sc_man_scanner.h" +#line 859 "src/sc_man_scanner.h" yy138: yyaccept = 4; YYMARKER = ++YYCURSOR; @@ -889,7 +893,7 @@ yy140: yy142: #line 157 "src/sc_man_scanner.re" { RET(TK_FloatConst); } -#line 893 "src/sc_man_scanner.h" +#line 897 "src/sc_man_scanner.h" yy143: yych = *++YYCURSOR; if(yych <= ',') { @@ -934,7 +938,7 @@ yy148: ++YYCURSOR; #line 165 "src/sc_man_scanner.re" { RET(TK_Ellipsis); } -#line 938 "src/sc_man_scanner.h" +#line 942 "src/sc_man_scanner.h" yy150: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); @@ -1225,332 +1229,333 @@ yy181: ++YYCURSOR; #line 144 "src/sc_man_scanner.re" { RET(TK_Include); } -#line 1229 "src/sc_man_scanner.h" +#line 1233 "src/sc_man_scanner.h" yy183: - yych = *++YYCURSOR; - if(yych == 'C') goto yy213; - if(yych == 'c') goto yy213; - goto yy174; -yy184: yych = *++YYCURSOR; if(yych <= 'O') { - if(yych == 'I') goto yy192; + if(yych == 'I') goto yy191; if(yych <= 'N') goto yy174; - goto yy191; + goto yy190; } else { if(yych <= 'i') { if(yych <= 'h') goto yy174; - goto yy192; + goto yy191; } else { - if(yych == 'o') goto yy191; + if(yych == 'o') goto yy190; goto yy174; } } +yy184: + yych = *++YYCURSOR; + if(yych == 'B') goto yy185; + if(yych != 'b') goto yy174; yy185: yych = *++YYCURSOR; - if(yych == 'B') goto yy186; - if(yych != 'b') goto yy174; + if(yych == 'L') goto yy186; + if(yych != 'l') goto yy174; yy186: yych = *++YYCURSOR; - if(yych == 'L') goto yy187; - if(yych != 'l') goto yy174; + if(yych == 'I') goto yy187; + if(yych != 'i') goto yy174; yy187: yych = *++YYCURSOR; - if(yych == 'I') goto yy188; - if(yych != 'i') goto yy174; -yy188: - yych = *++YYCURSOR; - if(yych == 'C') goto yy189; + if(yych == 'C') goto yy188; if(yych != 'c') goto yy174; -yy189: +yy188: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy190; + if(yych <= '/') goto yy189; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy190; + if(yych <= '`') goto yy189; if(yych <= 'z') goto yy173; } } -yy190: +yy189: #line 120 "src/sc_man_scanner.re" { RET(TK_Public); } -#line 1283 "src/sc_man_scanner.h" +#line 1282 "src/sc_man_scanner.h" +yy190: + yych = *++YYCURSOR; + if(yych == 'T') goto yy197; + if(yych == 't') goto yy197; + goto yy174; yy191: yych = *++YYCURSOR; - if(yych <= 'T') { - if(yych == 'J') goto yy198; - if(yych <= 'S') goto yy174; - goto yy199; - } else { - if(yych <= 'j') { - if(yych <= 'i') goto yy174; - goto yy198; - } else { - if(yych == 't') goto yy199; - goto yy174; - } - } + if(yych == 'V') goto yy192; + if(yych != 'v') goto yy174; yy192: yych = *++YYCURSOR; - if(yych == 'V') goto yy193; - if(yych != 'v') goto yy174; + if(yych == 'A') goto yy193; + if(yych != 'a') goto yy174; yy193: yych = *++YYCURSOR; - if(yych == 'A') goto yy194; - if(yych != 'a') goto yy174; + if(yych == 'T') goto yy194; + if(yych != 't') goto yy174; yy194: yych = *++YYCURSOR; - if(yych == 'T') goto yy195; - if(yych != 't') goto yy174; -yy195: - yych = *++YYCURSOR; - if(yych == 'E') goto yy196; + if(yych == 'E') goto yy195; if(yych != 'e') goto yy174; -yy196: +yy195: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy197; + if(yych <= '/') goto yy196; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy197; + if(yych <= '`') goto yy196; if(yych <= 'z') goto yy173; } } -yy197: +yy196: #line 122 "src/sc_man_scanner.re" { RET(TK_Private); } -#line 1332 "src/sc_man_scanner.h" +#line 1321 "src/sc_man_scanner.h" +yy197: + yych = *++YYCURSOR; + if(yych == 'E') goto yy198; + if(yych != 'e') goto yy174; yy198: yych = *++YYCURSOR; - if(yych == 'E') goto yy206; - if(yych == 'e') goto yy206; - goto yy174; + if(yych == 'C') goto yy199; + if(yych != 'c') goto yy174; yy199: yych = *++YYCURSOR; - if(yych == 'E') goto yy200; - if(yych != 'e') goto yy174; + if(yych == 'T') goto yy200; + if(yych != 't') goto yy174; yy200: yych = *++YYCURSOR; - if(yych == 'C') goto yy201; - if(yych != 'c') goto yy174; + if(yych == 'E') goto yy201; + if(yych != 'e') goto yy174; yy201: yych = *++YYCURSOR; - if(yych == 'T') goto yy202; - if(yych != 't') goto yy174; -yy202: - yych = *++YYCURSOR; - if(yych == 'E') goto yy203; - if(yych != 'e') goto yy174; -yy203: - yych = *++YYCURSOR; - if(yych == 'D') goto yy204; + if(yych == 'D') goto yy202; if(yych != 'd') goto yy174; -yy204: +yy202: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy205; + if(yych <= '/') goto yy203; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy205; + if(yych <= '`') goto yy203; if(yych <= 'z') goto yy173; } } -yy205: +yy203: #line 121 "src/sc_man_scanner.re" { RET(TK_Protected); } -#line 1375 "src/sc_man_scanner.h" -yy206: - yych = *++YYCURSOR; - if(yych == 'C') goto yy207; - if(yych != 'c') goto yy174; -yy207: +#line 1359 "src/sc_man_scanner.h" +yy204: yych = *++YYCURSOR; if(yych == 'T') goto yy208; + if(yych == 't') goto yy208; + goto yy174; +yy205: + yych = *++YYCURSOR; + if(yych == 'T') goto yy206; if(yych != 't') goto yy174; +yy206: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy207; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy207; + if(yych <= 'z') goto yy173; + } + } +yy207: +#line 112 "src/sc_man_scanner.re" + { RET(TK_Out); } +#line 1386 "src/sc_man_scanner.h" yy208: yych = *++YYCURSOR; if(yych == 'I') goto yy209; if(yych != 'i') goto yy174; yy209: yych = *++YYCURSOR; - if(yych == 'L') goto yy210; - if(yych != 'l') goto yy174; + if(yych == 'O') goto yy210; + if(yych != 'o') goto yy174; yy210: yych = *++YYCURSOR; - if(yych == 'E') goto yy211; - if(yych != 'e') goto yy174; -yy211: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy212; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy212; - if(yych <= 'z') goto yy173; - } - } -yy212: -#line 147 "src/sc_man_scanner.re" - { RET(TK_Projectile); } -#line 1413 "src/sc_man_scanner.h" -yy213: - yych = *++YYCURSOR; - if(yych == 'K') goto yy214; - if(yych != 'k') goto yy174; -yy214: - yych = *++YYCURSOR; - if(yych == 'U') goto yy215; - if(yych != 'u') goto yy174; -yy215: - yych = *++YYCURSOR; - if(yych == 'P') goto yy216; - if(yych != 'p') goto yy174; -yy216: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy217; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy217; - if(yych <= 'z') goto yy173; - } - } -yy217: -#line 145 "src/sc_man_scanner.re" - { RET(TK_Pickup); } -#line 1443 "src/sc_man_scanner.h" -yy218: - yych = *++YYCURSOR; - if(yych == 'T') goto yy222; - if(yych == 't') goto yy222; - goto yy174; -yy219: - yych = *++YYCURSOR; - if(yych == 'T') goto yy220; - if(yych != 't') goto yy174; -yy220: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy221; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy221; - if(yych <= 'z') goto yy173; - } - } -yy221: -#line 112 "src/sc_man_scanner.re" - { RET(TK_Out); } -#line 1470 "src/sc_man_scanner.h" -yy222: - yych = *++YYCURSOR; - if(yych == 'I') goto yy223; - if(yych != 'i') goto yy174; -yy223: - yych = *++YYCURSOR; - if(yych == 'O') goto yy224; - if(yych != 'o') goto yy174; -yy224: - yych = *++YYCURSOR; - if(yych == 'N') goto yy225; + if(yych == 'N') goto yy211; if(yych != 'n') goto yy174; -yy225: +yy211: yych = *++YYCURSOR; - if(yych == 'A') goto yy226; + if(yych == 'A') goto yy212; if(yych != 'a') goto yy174; -yy226: +yy212: yych = *++YYCURSOR; - if(yych == 'L') goto yy227; + if(yych == 'L') goto yy213; if(yych != 'l') goto yy174; -yy227: +yy213: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy228; + if(yych <= '/') goto yy214; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy228; + if(yych <= '`') goto yy214; if(yych <= 'z') goto yy173; } } -yy228: +yy214: #line 132 "src/sc_man_scanner.re" { RET(TK_Optional); } -#line 1508 "src/sc_man_scanner.h" -yy229: +#line 1424 "src/sc_man_scanner.h" +yy215: yych = *++YYCURSOR; - if(yych == 'R') goto yy242; - if(yych == 'r') goto yy242; + if(yych == 'R') goto yy228; + if(yych == 'r') goto yy228; goto yy174; -yy230: +yy216: yych = *++YYCURSOR; if(yych <= 'U') { - if(yych == 'A') goto yy232; + if(yych == 'A') goto yy218; if(yych <= 'T') goto yy174; } else { if(yych <= 'a') { if(yych <= '`') goto yy174; - goto yy232; + goto yy218; } else { if(yych != 'u') goto yy174; } } yych = *++YYCURSOR; - if(yych == 'E') goto yy240; - if(yych == 'e') goto yy240; + if(yych == 'E') goto yy226; + if(yych == 'e') goto yy226; goto yy174; -yy232: +yy218: yych = *++YYCURSOR; - if(yych == 'N') goto yy233; + if(yych == 'N') goto yy219; if(yych != 'n') goto yy174; +yy219: + yych = *++YYCURSOR; + if(yych == 'S') goto yy220; + if(yych != 's') goto yy174; +yy220: + yych = *++YYCURSOR; + if(yych == 'I') goto yy221; + if(yych != 'i') goto yy174; +yy221: + yych = *++YYCURSOR; + if(yych == 'E') goto yy222; + if(yych != 'e') goto yy174; +yy222: + yych = *++YYCURSOR; + if(yych == 'N') goto yy223; + if(yych != 'n') goto yy174; +yy223: + yych = *++YYCURSOR; + if(yych == 'T') goto yy224; + if(yych != 't') goto yy174; +yy224: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy225; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy225; + if(yych <= 'z') goto yy173; + } + } +yy225: +#line 116 "src/sc_man_scanner.re" + { RET(TK_Transient); } +#line 1488 "src/sc_man_scanner.h" +yy226: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy227; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy227; + if(yych <= 'z') goto yy173; + } + } +yy227: +#line 103 "src/sc_man_scanner.re" + { RET(TK_True); } +#line 1506 "src/sc_man_scanner.h" +yy228: + yych = *++YYCURSOR; + if(yych == 'O') goto yy229; + if(yych != 'o') goto yy174; +yy229: + yych = *++YYCURSOR; + if(yych == 'W') goto yy230; + if(yych != 'w') goto yy174; +yy230: + yych = *++YYCURSOR; + if(yych == 'S') goto yy231; + if(yych != 's') goto yy174; +yy231: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy232; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy232; + if(yych <= 'z') goto yy173; + } + } +yy232: +#line 118 "src/sc_man_scanner.re" + { RET(TK_Throws); } +#line 1536 "src/sc_man_scanner.h" yy233: yych = *++YYCURSOR; - if(yych == 'S') goto yy234; - if(yych != 's') goto yy174; + if(yych == 'S') goto yy251; + if(yych == 's') goto yy251; + goto yy174; yy234: yych = *++YYCURSOR; - if(yych == 'I') goto yy235; - if(yych != 'i') goto yy174; + if(yych == 'T') goto yy246; + if(yych == 't') goto yy246; + goto yy174; yy235: yych = *++YYCURSOR; - if(yych == 'E') goto yy236; - if(yych != 'e') goto yy174; + if(yych == 'G') goto yy240; + if(yych == 'g') goto yy240; + goto yy174; yy236: yych = *++YYCURSOR; - if(yych == 'N') goto yy237; - if(yych != 'n') goto yy174; + if(yych == 'T') goto yy237; + if(yych != 't') goto yy174; yy237: yych = *++YYCURSOR; - if(yych == 'T') goto yy238; - if(yych != 't') goto yy174; + if(yych == 'O') goto yy238; + if(yych != 'o') goto yy174; yy238: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -1566,142 +1571,155 @@ yy238: } } yy239: -#line 116 "src/sc_man_scanner.re" - { RET(TK_Transient); } -#line 1572 "src/sc_man_scanner.h" -yy240: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy241; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy241; - if(yych <= 'z') goto yy173; - } - } -yy241: -#line 103 "src/sc_man_scanner.re" - { RET(TK_True); } -#line 1590 "src/sc_man_scanner.h" -yy242: - yych = *++YYCURSOR; - if(yych == 'O') goto yy243; - if(yych != 'o') goto yy174; -yy243: - yych = *++YYCURSOR; - if(yych == 'W') goto yy244; - if(yych != 'w') goto yy174; -yy244: - yych = *++YYCURSOR; - if(yych == 'S') goto yy245; - if(yych != 's') goto yy174; -yy245: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy246; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy246; - if(yych <= 'z') goto yy173; - } - } -yy246: -#line 118 "src/sc_man_scanner.re" - { RET(TK_Throws); } -#line 1620 "src/sc_man_scanner.h" -yy247: - yych = *++YYCURSOR; - if(yych == 'S') goto yy265; - if(yych == 's') goto yy265; - goto yy174; -yy248: - yych = *++YYCURSOR; - if(yych == 'T') goto yy260; - if(yych == 't') goto yy260; - goto yy174; -yy249: - yych = *++YYCURSOR; - if(yych == 'G') goto yy254; - if(yych == 'g') goto yy254; - goto yy174; -yy250: - yych = *++YYCURSOR; - if(yych == 'T') goto yy251; - if(yych != 't') goto yy174; -yy251: - yych = *++YYCURSOR; - if(yych == 'O') goto yy252; - if(yych != 'o') goto yy174; -yy252: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy253; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy253; - if(yych <= 'z') goto yy173; - } - } -yy253: #line 108 "src/sc_man_scanner.re" { RET(TK_Auto); } -#line 1661 "src/sc_man_scanner.h" -yy254: +#line 1577 "src/sc_man_scanner.h" +yy240: yych = *++YYCURSOR; - if(yych == 'L') goto yy255; + if(yych == 'L') goto yy241; if(yych != 'l') goto yy174; -yy255: +yy241: yych = *++YYCURSOR; - if(yych == 'E') goto yy256; + if(yych == 'E') goto yy242; if(yych != 'e') goto yy174; -yy256: +yy242: yych = *++YYCURSOR; if(yych != '_') goto yy174; yych = *++YYCURSOR; - if(yych == 'T') goto yy258; + if(yych == 'T') goto yy244; if(yych != 't') goto yy174; -yy258: +yy244: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy259; + if(yych <= '/') goto yy245; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy259; + if(yych <= '`') goto yy245; if(yych <= 'z') goto yy173; } } -yy259: -#line 149 "src/sc_man_scanner.re" +yy245: +#line 146 "src/sc_man_scanner.re" { RET(TK_Angle_t); } -#line 1693 "src/sc_man_scanner.h" +#line 1609 "src/sc_man_scanner.h" +yy246: + yych = *++YYCURSOR; + if(yych == 'I') goto yy247; + if(yych != 'i') goto yy174; +yy247: + yych = *++YYCURSOR; + if(yych == 'O') goto yy248; + if(yych != 'o') goto yy174; +yy248: + yych = *++YYCURSOR; + if(yych == 'N') goto yy249; + if(yych != 'n') goto yy174; +yy249: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy250; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy250; + if(yych <= 'z') goto yy173; + } + } +yy250: +#line 141 "src/sc_man_scanner.re" + { RET(TK_Action); } +#line 1639 "src/sc_man_scanner.h" +yy251: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '@') { + if(yych <= '/') goto yy252; + if(yych <= '9') goto yy173; + } else { + if(yych == 'T') goto yy253; + goto yy173; + } + } else { + if(yych <= '`') { + if(yych == '_') goto yy173; + } else { + if(yych == 't') goto yy253; + if(yych <= 'z') goto yy173; + } + } +yy252: +#line 147 "src/sc_man_scanner.re" + { RET(TK_Abs); } +#line 1661 "src/sc_man_scanner.h" +yy253: + yych = *++YYCURSOR; + if(yych == 'R') goto yy254; + if(yych != 'r') goto yy174; +yy254: + yych = *++YYCURSOR; + if(yych == 'A') goto yy255; + if(yych != 'a') goto yy174; +yy255: + yych = *++YYCURSOR; + if(yych == 'C') goto yy256; + if(yych != 'c') goto yy174; +yy256: + yych = *++YYCURSOR; + if(yych == 'T') goto yy257; + if(yych != 't') goto yy174; +yy257: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy258; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy258; + if(yych <= 'z') goto yy173; + } + } +yy258: +#line 101 "src/sc_man_scanner.re" + { RET(TK_Abstract); } +#line 1695 "src/sc_man_scanner.h" +yy259: + yych = *++YYCURSOR; + if(yych <= 'T') { + if(yych == 'M') goto yy267; + if(yych <= 'S') goto yy174; + goto yy268; + } else { + if(yych <= 'm') { + if(yych <= 'l') goto yy174; + goto yy267; + } else { + if(yych == 't') goto yy268; + goto yy174; + } + } yy260: yych = *++YYCURSOR; - if(yych == 'I') goto yy261; - if(yych != 'i') goto yy174; + if(yych == 'W') goto yy265; + if(yych == 'w') goto yy265; + goto yy174; yy261: yych = *++YYCURSOR; - if(yych == 'O') goto yy262; - if(yych != 'o') goto yy174; + if(yych == 'N') goto yy262; + if(yych != 'n') goto yy174; yy262: yych = *++YYCURSOR; - if(yych == 'N') goto yy263; - if(yych != 'n') goto yy174; + if(yych == 'E') goto yy263; + if(yych != 'e') goto yy174; yy263: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -1717,172 +1735,170 @@ yy263: } } yy264: -#line 141 "src/sc_man_scanner.re" - { RET(TK_Action); } -#line 1723 "src/sc_man_scanner.h" -yy265: - yych = *++YYCURSOR; - if(yych == 'T') goto yy266; - if(yych != 't') goto yy174; -yy266: - yych = *++YYCURSOR; - if(yych == 'R') goto yy267; - if(yych != 'r') goto yy174; -yy267: - yych = *++YYCURSOR; - if(yych == 'A') goto yy268; - if(yych != 'a') goto yy174; -yy268: - yych = *++YYCURSOR; - if(yych == 'C') goto yy269; - if(yych != 'c') goto yy174; -yy269: - yych = *++YYCURSOR; - if(yych == 'T') goto yy270; - if(yych != 't') goto yy174; -yy270: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy271; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy271; - if(yych <= 'z') goto yy173; - } - } -yy271: -#line 101 "src/sc_man_scanner.re" - { RET(TK_Abstract); } -#line 1761 "src/sc_man_scanner.h" -yy272: - yych = *++YYCURSOR; - if(yych <= 'T') { - if(yych == 'M') goto yy280; - if(yych <= 'S') goto yy174; - goto yy281; - } else { - if(yych <= 'm') { - if(yych <= 'l') goto yy174; - goto yy280; - } else { - if(yych == 't') goto yy281; - goto yy174; - } - } -yy273: - yych = *++YYCURSOR; - if(yych == 'W') goto yy278; - if(yych == 'w') goto yy278; - goto yy174; -yy274: - yych = *++YYCURSOR; - if(yych == 'N') goto yy275; - if(yych != 'n') goto yy174; -yy275: - yych = *++YYCURSOR; - if(yych == 'E') goto yy276; - if(yych != 'e') goto yy174; -yy276: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy277; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy277; - if(yych <= 'z') goto yy173; - } - } -yy277: #line 105 "src/sc_man_scanner.re" { RET(TK_None); } -#line 1807 "src/sc_man_scanner.h" -yy278: +#line 1741 "src/sc_man_scanner.h" +yy265: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy279; + if(yych <= '/') goto yy266; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy279; + if(yych <= '`') goto yy266; if(yych <= 'z') goto yy173; } } -yy279: +yy266: #line 106 "src/sc_man_scanner.re" { RET(TK_New); } -#line 1825 "src/sc_man_scanner.h" -yy280: +#line 1759 "src/sc_man_scanner.h" +yy267: yych = *++YYCURSOR; - if(yych == 'E') goto yy286; - if(yych == 'e') goto yy286; + if(yych == 'E') goto yy273; + if(yych == 'e') goto yy273; goto yy174; -yy281: +yy268: yych = *++YYCURSOR; - if(yych == 'I') goto yy282; + if(yych == 'I') goto yy269; if(yych != 'i') goto yy174; -yy282: +yy269: yych = *++YYCURSOR; - if(yych == 'V') goto yy283; + if(yych == 'V') goto yy270; if(yych != 'v') goto yy174; -yy283: +yy270: yych = *++YYCURSOR; - if(yych == 'E') goto yy284; + if(yych == 'E') goto yy271; if(yych != 'e') goto yy174; -yy284: +yy271: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy285; + if(yych <= '/') goto yy272; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy285; + if(yych <= '`') goto yy272; if(yych <= 'z') goto yy173; } } -yy285: +yy272: #line 111 "src/sc_man_scanner.re" { RET(TK_Native); } -#line 1860 "src/sc_man_scanner.h" -yy286: +#line 1794 "src/sc_man_scanner.h" +yy273: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy287; + if(yych <= '/') goto yy274; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy287; + if(yych <= '`') goto yy274; if(yych <= 'z') goto yy173; } } -yy287: +yy274: #line 94 "src/sc_man_scanner.re" { RET(TK_Name); } -#line 1878 "src/sc_man_scanner.h" -yy288: +#line 1812 "src/sc_man_scanner.h" +yy275: yych = *++YYCURSOR; - if(yych == 'D') goto yy289; + if(yych == 'D') goto yy276; if(yych != 'd') goto yy174; -yy289: +yy276: yych = *++YYCURSOR; - if(yych == 'E') goto yy290; + if(yych == 'E') goto yy277; if(yych != 'e') goto yy174; +yy277: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy278; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy278; + if(yych <= 'z') goto yy173; + } + } +yy278: +#line 92 "src/sc_man_scanner.re" + { RET(TK_Mode); } +#line 1838 "src/sc_man_scanner.h" +yy279: + yych = *++YYCURSOR; + if(yych == 'T') goto yy292; + if(yych == 't') goto yy292; + goto yy174; +yy280: + yych = *++YYCURSOR; + if(yych <= 'N') { + if(yych == 'C') goto yy282; + if(yych <= 'M') goto yy174; + } else { + if(yych <= 'c') { + if(yych <= 'b') goto yy174; + goto yy282; + } else { + if(yych != 'n') goto yy174; + } + } + yych = *++YYCURSOR; + if(yych == 'G') goto yy290; + if(yych == 'g') goto yy290; + goto yy174; +yy282: + yych = *++YYCURSOR; + if(yych == 'A') goto yy283; + if(yych != 'a') goto yy174; +yy283: + yych = *++YYCURSOR; + if(yych == 'L') goto yy284; + if(yych != 'l') goto yy174; +yy284: + yych = *++YYCURSOR; + if(yych == 'I') goto yy285; + if(yych != 'i') goto yy174; +yy285: + yych = *++YYCURSOR; + if(yych == 'Z') goto yy286; + if(yych != 'z') goto yy174; +yy286: + yych = *++YYCURSOR; + if(yych == 'E') goto yy287; + if(yych != 'e') goto yy174; +yy287: + yych = *++YYCURSOR; + if(yych == 'D') goto yy288; + if(yych != 'd') goto yy174; +yy288: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy289; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy289; + if(yych <= 'z') goto yy173; + } + } +yy289: +#line 126 "src/sc_man_scanner.re" + { RET(TK_Localized); } +#line 1902 "src/sc_man_scanner.h" yy290: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -1898,241 +1914,234 @@ yy290: } } yy291: -#line 92 "src/sc_man_scanner.re" - { RET(TK_Mode); } -#line 1904 "src/sc_man_scanner.h" +#line 87 "src/sc_man_scanner.re" + { RET(TK_Long); } +#line 1920 "src/sc_man_scanner.h" yy292: yych = *++YYCURSOR; - if(yych == 'T') goto yy305; - if(yych == 't') goto yy305; - goto yy174; + if(yych == 'E') goto yy293; + if(yych != 'e') goto yy174; yy293: yych = *++YYCURSOR; - if(yych <= 'N') { - if(yych == 'C') goto yy295; - if(yych <= 'M') goto yy174; + if(yych == 'N') goto yy294; + if(yych != 'n') goto yy174; +yy294: + yych = *++YYCURSOR; + if(yych == 'T') goto yy295; + if(yych != 't') goto yy174; +yy295: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy296; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; } else { - if(yych <= 'c') { - if(yych <= 'b') goto yy174; - goto yy295; + if(yych <= '_') { + if(yych >= '_') goto yy173; } else { - if(yych != 'n') goto yy174; + if(yych <= '`') goto yy296; + if(yych <= 'z') goto yy173; } } - yych = *++YYCURSOR; - if(yych == 'G') goto yy303; - if(yych == 'g') goto yy303; - goto yy174; -yy295: - yych = *++YYCURSOR; - if(yych == 'A') goto yy296; - if(yych != 'a') goto yy174; yy296: - yych = *++YYCURSOR; - if(yych == 'L') goto yy297; - if(yych != 'l') goto yy174; +#line 127 "src/sc_man_scanner.re" + { RET(TK_Latent); } +#line 1950 "src/sc_man_scanner.h" yy297: yych = *++YYCURSOR; if(yych == 'I') goto yy298; if(yych != 'i') goto yy174; yy298: yych = *++YYCURSOR; - if(yych == 'Z') goto yy299; - if(yych != 'z') goto yy174; + if(yych == 'L') goto yy299; + if(yych != 'l') goto yy174; yy299: yych = *++YYCURSOR; if(yych == 'E') goto yy300; if(yych != 'e') goto yy174; yy300: - yych = *++YYCURSOR; - if(yych == 'D') goto yy301; - if(yych != 'd') goto yy174; + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy301; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy301; + if(yych <= 'z') goto yy173; + } + } yy301: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy302; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy302; - if(yych <= 'z') goto yy173; - } - } -yy302: -#line 126 "src/sc_man_scanner.re" - { RET(TK_Localized); } -#line 1968 "src/sc_man_scanner.h" -yy303: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy304; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy304; - if(yych <= 'z') goto yy173; - } - } -yy304: -#line 87 "src/sc_man_scanner.re" - { RET(TK_Long); } -#line 1986 "src/sc_man_scanner.h" -yy305: - yych = *++YYCURSOR; - if(yych == 'E') goto yy306; - if(yych != 'e') goto yy174; -yy306: - yych = *++YYCURSOR; - if(yych == 'N') goto yy307; - if(yych != 'n') goto yy174; -yy307: - yych = *++YYCURSOR; - if(yych == 'T') goto yy308; - if(yych != 't') goto yy174; -yy308: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy309; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy309; - if(yych <= 'z') goto yy173; - } - } -yy309: -#line 127 "src/sc_man_scanner.re" - { RET(TK_Latent); } -#line 2016 "src/sc_man_scanner.h" -yy310: - yych = *++YYCURSOR; - if(yych == 'I') goto yy311; - if(yych != 'i') goto yy174; -yy311: - yych = *++YYCURSOR; - if(yych == 'L') goto yy312; - if(yych != 'l') goto yy174; -yy312: - yych = *++YYCURSOR; - if(yych == 'E') goto yy313; - if(yych != 'e') goto yy174; -yy313: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy314; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy314; - if(yych <= 'z') goto yy173; - } - } -yy314: #line 74 "src/sc_man_scanner.re" { RET(TK_While); } -#line 2046 "src/sc_man_scanner.h" -yy315: +#line 1980 "src/sc_man_scanner.h" +yy302: yych = *++YYCURSOR; - if(yych == 'R') goto yy327; - if(yych == 'r') goto yy327; + if(yych == 'R') goto yy314; + if(yych == 'r') goto yy314; goto yy174; -yy316: +yy303: yych = *++YYCURSOR; if(yych <= 'L') { - if(yych == 'I') goto yy318; + if(yych == 'I') goto yy305; if(yych <= 'K') goto yy174; } else { if(yych <= 'i') { if(yych <= 'h') goto yy174; - goto yy318; + goto yy305; } else { if(yych != 'l') goto yy174; } } yych = *++YYCURSOR; - if(yych == 'A') goto yy321; - if(yych == 'a') goto yy321; + if(yych == 'A') goto yy308; + if(yych == 'a') goto yy308; goto yy174; -yy318: +yy305: yych = *++YYCURSOR; - if(yych == 'D') goto yy319; + if(yych == 'D') goto yy306; if(yych != 'd') goto yy174; -yy319: +yy306: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy320; + if(yych <= '/') goto yy307; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy320; + if(yych <= '`') goto yy307; if(yych <= 'z') goto yy173; } } -yy320: +yy307: #line 89 "src/sc_man_scanner.re" { RET(TK_Void); } -#line 2090 "src/sc_man_scanner.h" -yy321: +#line 2024 "src/sc_man_scanner.h" +yy308: yych = *++YYCURSOR; - if(yych == 'T') goto yy322; + if(yych == 'T') goto yy309; if(yych != 't') goto yy174; -yy322: +yy309: yych = *++YYCURSOR; - if(yych == 'I') goto yy323; + if(yych == 'I') goto yy310; if(yych != 'i') goto yy174; -yy323: +yy310: yych = *++YYCURSOR; - if(yych == 'L') goto yy324; + if(yych == 'L') goto yy311; if(yych != 'l') goto yy174; -yy324: +yy311: yych = *++YYCURSOR; - if(yych == 'E') goto yy325; + if(yych == 'E') goto yy312; if(yych != 'e') goto yy174; -yy325: +yy312: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy326; + if(yych <= '/') goto yy313; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy326; + if(yych <= '`') goto yy313; if(yych <= 'z') goto yy173; } } -yy326: +yy313: #line 73 "src/sc_man_scanner.re" { RET(TK_Volatile); } -#line 2124 "src/sc_man_scanner.h" -yy327: +#line 2058 "src/sc_man_scanner.h" +yy314: yych = *++YYCURSOR; - if(yych == 'T') goto yy328; + if(yych == 'T') goto yy315; if(yych != 't') goto yy174; -yy328: +yy315: yych = *++YYCURSOR; - if(yych == 'U') goto yy329; + if(yych == 'U') goto yy316; if(yych != 'u') goto yy174; +yy316: + yych = *++YYCURSOR; + if(yych == 'A') goto yy317; + if(yych != 'a') goto yy174; +yy317: + yych = *++YYCURSOR; + if(yych == 'L') goto yy318; + if(yych != 'l') goto yy174; +yy318: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy319; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy319; + if(yych <= 'z') goto yy173; + } + } +yy319: +#line 134 "src/sc_man_scanner.re" + { RET(TK_Virtual); } +#line 2092 "src/sc_man_scanner.h" +yy320: + yych = *++YYCURSOR; + if(yych == 'N') goto yy337; + if(yych == 'n') goto yy337; + goto yy174; +yy321: + yych = *++YYCURSOR; + if(yych == 'O') goto yy333; + if(yych == 'o') goto yy333; + goto yy174; +yy322: + yych = *++YYCURSOR; + if(yych == 'T') goto yy329; + if(yych == 't') goto yy329; + goto yy174; +yy323: + yych = *++YYCURSOR; + if(yych == 'H') goto yy324; + if(yych != 'h') goto yy174; +yy324: + yych = *++YYCURSOR; + if(yych == 'O') goto yy325; + if(yych != 'o') goto yy174; +yy325: + yych = *++YYCURSOR; + if(yych == 'R') goto yy326; + if(yych != 'r') goto yy174; +yy326: + yych = *++YYCURSOR; + if(yych == 'T') goto yy327; + if(yych != 't') goto yy174; +yy327: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy328; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy328; + if(yych <= 'z') goto yy173; + } + } +yy328: +#line 84 "src/sc_man_scanner.re" + { RET(TK_UShort); } +#line 2141 "src/sc_man_scanner.h" yy329: yych = *++YYCURSOR; - if(yych == 'A') goto yy330; - if(yych != 'a') goto yy174; + if(yych == 'I') goto yy330; + if(yych != 'i') goto yy174; yy330: yych = *++YYCURSOR; if(yych == 'L') goto yy331; @@ -2152,114 +2161,124 @@ yy331: } } yy332: -#line 134 "src/sc_man_scanner.re" - { RET(TK_Virtual); } -#line 2158 "src/sc_man_scanner.h" -yy333: - yych = *++YYCURSOR; - if(yych == 'N') goto yy350; - if(yych == 'n') goto yy350; - goto yy174; -yy334: - yych = *++YYCURSOR; - if(yych == 'O') goto yy346; - if(yych == 'o') goto yy346; - goto yy174; -yy335: - yych = *++YYCURSOR; - if(yych == 'T') goto yy342; - if(yych == 't') goto yy342; - goto yy174; -yy336: - yych = *++YYCURSOR; - if(yych == 'H') goto yy337; - if(yych != 'h') goto yy174; -yy337: - yych = *++YYCURSOR; - if(yych == 'O') goto yy338; - if(yych != 'o') goto yy174; -yy338: - yych = *++YYCURSOR; - if(yych == 'R') goto yy339; - if(yych != 'r') goto yy174; -yy339: - yych = *++YYCURSOR; - if(yych == 'T') goto yy340; - if(yych != 't') goto yy174; -yy340: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy341; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy341; - if(yych <= 'z') goto yy173; - } - } -yy341: -#line 84 "src/sc_man_scanner.re" - { RET(TK_UShort); } -#line 2207 "src/sc_man_scanner.h" -yy342: - yych = *++YYCURSOR; - if(yych == 'I') goto yy343; - if(yych != 'i') goto yy174; -yy343: - yych = *++YYCURSOR; - if(yych == 'L') goto yy344; - if(yych != 'l') goto yy174; -yy344: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy345; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy345; - if(yych <= 'z') goto yy173; - } - } -yy345: #line 72 "src/sc_man_scanner.re" { RET(TK_Until); } -#line 2233 "src/sc_man_scanner.h" -yy346: +#line 2167 "src/sc_man_scanner.h" +yy333: yych = *++YYCURSOR; - if(yych == 'N') goto yy347; + if(yych == 'N') goto yy334; if(yych != 'n') goto yy174; -yy347: +yy334: yych = *++YYCURSOR; - if(yych == 'G') goto yy348; + if(yych == 'G') goto yy335; if(yych != 'g') goto yy174; -yy348: +yy335: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy349; + if(yych <= '/') goto yy336; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy349; + if(yych <= '`') goto yy336; if(yych <= 'z') goto yy173; } } -yy349: +yy336: #line 88 "src/sc_man_scanner.re" { RET(TK_ULong); } -#line 2259 "src/sc_man_scanner.h" +#line 2193 "src/sc_man_scanner.h" +yy337: + yych = *++YYCURSOR; + if(yych == 'T') goto yy338; + if(yych != 't') goto yy174; +yy338: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy339; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy339; + if(yych <= 'z') goto yy173; + } + } +yy339: +#line 86 "src/sc_man_scanner.re" + { RET(TK_UInt); } +#line 2215 "src/sc_man_scanner.h" +yy340: + yych = *++YYCURSOR; + if(yych == 'Y') goto yy394; + if(yych == 'y') goto yy394; + goto yy174; +yy341: + yych = *++YYCURSOR; + if(yych == 'L') goto yy391; + if(yych == 'l') goto yy391; + goto yy174; +yy342: + yych = *++YYCURSOR; + if(yych == 'O') goto yy387; + if(yych == 'o') goto yy387; + goto yy174; +yy343: + yych = *++YYCURSOR; + if(yych == 'N') goto yy380; + if(yych == 'n') goto yy380; + goto yy174; +yy344: + yych = *++YYCURSOR; + if(yych == 'U') goto yy376; + if(yych == 'u') goto yy376; + goto yy174; +yy345: + yych = *++YYCURSOR; + if(yych <= 'R') { + if(yych <= 'N') { + if(yych == 'A') goto yy358; + goto yy174; + } else { + if(yych <= 'O') goto yy359; + if(yych <= 'Q') goto yy174; + goto yy357; + } + } else { + if(yych <= 'n') { + if(yych == 'a') goto yy358; + goto yy174; + } else { + if(yych <= 'o') goto yy359; + if(yych == 'r') goto yy357; + goto yy174; + } + } +yy346: + yych = *++YYCURSOR; + if(yych == 'P') goto yy353; + if(yych == 'p') goto yy353; + goto yy174; +yy347: + yych = *++YYCURSOR; + if(yych == 'I') goto yy348; + if(yych != 'i') goto yy174; +yy348: + yych = *++YYCURSOR; + if(yych == 'T') goto yy349; + if(yych != 't') goto yy174; +yy349: + yych = *++YYCURSOR; + if(yych == 'C') goto yy350; + if(yych != 'c') goto yy174; yy350: yych = *++YYCURSOR; - if(yych == 'T') goto yy351; - if(yych != 't') goto yy174; + if(yych == 'H') goto yy351; + if(yych != 'h') goto yy174; yy351: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -2275,363 +2294,370 @@ yy351: } } yy352: -#line 86 "src/sc_man_scanner.re" - { RET(TK_UInt); } -#line 2281 "src/sc_man_scanner.h" -yy353: - yych = *++YYCURSOR; - if(yych == 'Y') goto yy407; - if(yych == 'y') goto yy407; - goto yy174; -yy354: - yych = *++YYCURSOR; - if(yych == 'L') goto yy404; - if(yych == 'l') goto yy404; - goto yy174; -yy355: - yych = *++YYCURSOR; - if(yych == 'O') goto yy400; - if(yych == 'o') goto yy400; - goto yy174; -yy356: - yych = *++YYCURSOR; - if(yych == 'N') goto yy393; - if(yych == 'n') goto yy393; - goto yy174; -yy357: - yych = *++YYCURSOR; - if(yych == 'U') goto yy389; - if(yych == 'u') goto yy389; - goto yy174; -yy358: - yych = *++YYCURSOR; - if(yych <= 'R') { - if(yych <= 'N') { - if(yych == 'A') goto yy371; - goto yy174; - } else { - if(yych <= 'O') goto yy372; - if(yych <= 'Q') goto yy174; - goto yy370; - } - } else { - if(yych <= 'n') { - if(yych == 'a') goto yy371; - goto yy174; - } else { - if(yych <= 'o') goto yy372; - if(yych == 'r') goto yy370; - goto yy174; - } - } -yy359: - yych = *++YYCURSOR; - if(yych == 'P') goto yy366; - if(yych == 'p') goto yy366; - goto yy174; -yy360: - yych = *++YYCURSOR; - if(yych == 'I') goto yy361; - if(yych != 'i') goto yy174; -yy361: - yych = *++YYCURSOR; - if(yych == 'T') goto yy362; - if(yych != 't') goto yy174; -yy362: - yych = *++YYCURSOR; - if(yych == 'C') goto yy363; - if(yych != 'c') goto yy174; -yy363: - yych = *++YYCURSOR; - if(yych == 'H') goto yy364; - if(yych != 'h') goto yy174; -yy364: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy365; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy365; - if(yych <= 'z') goto yy173; - } - } -yy365: #line 71 "src/sc_man_scanner.re" { RET(TK_Switch); } -#line 2366 "src/sc_man_scanner.h" -yy366: +#line 2300 "src/sc_man_scanner.h" +yy353: yych = *++YYCURSOR; - if(yych == 'E') goto yy367; + if(yych == 'E') goto yy354; if(yych != 'e') goto yy174; -yy367: +yy354: yych = *++YYCURSOR; - if(yych == 'R') goto yy368; + if(yych == 'R') goto yy355; if(yych != 'r') goto yy174; -yy368: +yy355: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy369; + if(yych <= '/') goto yy356; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy369; + if(yych <= '`') goto yy356; if(yych <= 'z') goto yy173; } } -yy369: +yy356: #line 135 "src/sc_man_scanner.re" { RET(TK_Super); } -#line 2392 "src/sc_man_scanner.h" -yy370: +#line 2326 "src/sc_man_scanner.h" +yy357: yych = *++YYCURSOR; if(yych <= 'U') { - if(yych == 'I') goto yy381; + if(yych == 'I') goto yy368; if(yych <= 'T') goto yy174; - goto yy382; + goto yy369; } else { if(yych <= 'i') { if(yych <= 'h') goto yy174; - goto yy381; + goto yy368; } else { - if(yych == 'u') goto yy382; + if(yych == 'u') goto yy369; goto yy174; } } -yy371: +yy358: yych = *++YYCURSOR; - if(yych == 'T') goto yy375; - if(yych == 't') goto yy375; + if(yych == 'T') goto yy362; + if(yych == 't') goto yy362; goto yy174; -yy372: +yy359: yych = *++YYCURSOR; - if(yych == 'P') goto yy373; + if(yych == 'P') goto yy360; if(yych != 'p') goto yy174; -yy373: +yy360: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy374; + if(yych <= '/') goto yy361; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy374; + if(yych <= '`') goto yy361; if(yych <= 'z') goto yy173; } } -yy374: +yy361: #line 138 "src/sc_man_scanner.re" { RET(TK_Stop); } -#line 2434 "src/sc_man_scanner.h" -yy375: +#line 2368 "src/sc_man_scanner.h" +yy362: yych = *++YYCURSOR; if(yych <= 'I') { - if(yych == 'E') goto yy376; + if(yych == 'E') goto yy363; if(yych <= 'H') goto yy174; - goto yy378; + goto yy365; } else { if(yych <= 'e') { if(yych <= 'd') goto yy174; } else { - if(yych == 'i') goto yy378; + if(yych == 'i') goto yy365; goto yy174; } } -yy376: +yy363: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy377; + if(yych <= '/') goto yy364; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy377; + if(yych <= '`') goto yy364; if(yych <= 'z') goto yy173; } } -yy377: +yy364: #line 97 "src/sc_man_scanner.re" { RET(TK_State); } -#line 2466 "src/sc_man_scanner.h" -yy378: +#line 2400 "src/sc_man_scanner.h" +yy365: yych = *++YYCURSOR; - if(yych == 'C') goto yy379; + if(yych == 'C') goto yy366; if(yych != 'c') goto yy174; -yy379: +yy366: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy380; + if(yych <= '/') goto yy367; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy380; + if(yych <= '`') goto yy367; if(yych <= 'z') goto yy173; } } -yy380: +yy367: #line 115 "src/sc_man_scanner.re" { RET(TK_Static); } -#line 2488 "src/sc_man_scanner.h" -yy381: +#line 2422 "src/sc_man_scanner.h" +yy368: yych = *++YYCURSOR; - if(yych == 'N') goto yy386; - if(yych == 'n') goto yy386; + if(yych == 'N') goto yy373; + if(yych == 'n') goto yy373; goto yy174; -yy382: +yy369: yych = *++YYCURSOR; - if(yych == 'C') goto yy383; + if(yych == 'C') goto yy370; if(yych != 'c') goto yy174; -yy383: +yy370: yych = *++YYCURSOR; - if(yych == 'T') goto yy384; + if(yych == 'T') goto yy371; if(yych != 't') goto yy174; -yy384: +yy371: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy385; + if(yych <= '/') goto yy372; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy385; + if(yych <= '`') goto yy372; if(yych <= 'z') goto yy173; } } -yy385: +yy372: #line 90 "src/sc_man_scanner.re" { RET(TK_Struct); } -#line 2519 "src/sc_man_scanner.h" -yy386: +#line 2453 "src/sc_man_scanner.h" +yy373: yych = *++YYCURSOR; - if(yych == 'G') goto yy387; + if(yych == 'G') goto yy374; if(yych != 'g') goto yy174; -yy387: +yy374: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy388; + if(yych <= '/') goto yy375; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy388; + if(yych <= '`') goto yy375; if(yych <= 'z') goto yy173; } } -yy388: +yy375: #line 95 "src/sc_man_scanner.re" { RET(TK_String); } -#line 2541 "src/sc_man_scanner.h" -yy389: +#line 2475 "src/sc_man_scanner.h" +yy376: yych = *++YYCURSOR; - if(yych == 'N') goto yy390; + if(yych == 'N') goto yy377; if(yych != 'n') goto yy174; -yy390: +yy377: yych = *++YYCURSOR; - if(yych == 'D') goto yy391; + if(yych == 'D') goto yy378; if(yych != 'd') goto yy174; -yy391: +yy378: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy392; + if(yych <= '/') goto yy379; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy392; + if(yych <= '`') goto yy379; if(yych <= 'z') goto yy173; } } -yy392: +yy379: #line 96 "src/sc_man_scanner.re" { RET(TK_Sound); } -#line 2567 "src/sc_man_scanner.h" -yy393: +#line 2501 "src/sc_man_scanner.h" +yy380: yych = *++YYCURSOR; - if(yych == 'G') goto yy394; + if(yych == 'G') goto yy381; if(yych != 'g') goto yy174; -yy394: +yy381: yych = *++YYCURSOR; - if(yych == 'U') goto yy395; + if(yych == 'U') goto yy382; if(yych != 'u') goto yy174; -yy395: +yy382: yych = *++YYCURSOR; - if(yych == 'L') goto yy396; + if(yych == 'L') goto yy383; if(yych != 'l') goto yy174; -yy396: +yy383: yych = *++YYCURSOR; - if(yych == 'A') goto yy397; + if(yych == 'A') goto yy384; if(yych != 'a') goto yy174; -yy397: +yy384: yych = *++YYCURSOR; - if(yych == 'R') goto yy398; + if(yych == 'R') goto yy385; if(yych != 'r') goto yy174; -yy398: +yy385: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy399; + if(yych <= '/') goto yy386; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy399; + if(yych <= '`') goto yy386; if(yych <= 'z') goto yy173; } } -yy399: +yy386: #line 128 "src/sc_man_scanner.re" { RET(TK_Singular); } -#line 2605 "src/sc_man_scanner.h" -yy400: +#line 2539 "src/sc_man_scanner.h" +yy387: yych = *++YYCURSOR; - if(yych == 'R') goto yy401; + if(yych == 'R') goto yy388; if(yych != 'r') goto yy174; -yy401: +yy388: yych = *++YYCURSOR; - if(yych == 'T') goto yy402; + if(yych == 'T') goto yy389; if(yych != 't') goto yy174; -yy402: +yy389: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy403; + if(yych <= '/') goto yy390; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy403; + if(yych <= '`') goto yy390; if(yych <= 'z') goto yy173; } } -yy403: +yy390: #line 83 "src/sc_man_scanner.re" { RET(TK_Short); } -#line 2631 "src/sc_man_scanner.h" +#line 2565 "src/sc_man_scanner.h" +yy391: + yych = *++YYCURSOR; + if(yych == 'F') goto yy392; + if(yych != 'f') goto yy174; +yy392: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy393; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy393; + if(yych <= 'z') goto yy173; + } + } +yy393: +#line 137 "src/sc_man_scanner.re" + { RET(TK_Self); } +#line 2587 "src/sc_man_scanner.h" +yy394: + yych = *++YYCURSOR; + if(yych == 'T') goto yy395; + if(yych != 't') goto yy174; +yy395: + yych = *++YYCURSOR; + if(yych == 'E') goto yy396; + if(yych != 'e') goto yy174; +yy396: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy397; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy397; + if(yych <= 'z') goto yy173; + } + } +yy397: +#line 82 "src/sc_man_scanner.re" + { RET(TK_SByte); } +#line 2613 "src/sc_man_scanner.h" +yy398: + yych = *++YYCURSOR; + if(yych == 'N') goto yy407; + if(yych == 'n') goto yy407; + goto yy174; +yy399: + yych = *++YYCURSOR; + if(yych <= 'T') { + if(yych == 'F') goto yy401; + if(yych <= 'S') goto yy174; + } else { + if(yych <= 'f') { + if(yych <= 'e') goto yy174; + goto yy401; + } else { + if(yych != 't') goto yy174; + } + } + yych = *++YYCURSOR; + if(yych == 'U') goto yy403; + if(yych == 'u') goto yy403; + goto yy174; +yy401: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy402; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy402; + if(yych <= 'z') goto yy173; + } + } +yy402: +#line 113 "src/sc_man_scanner.re" + { RET(TK_Ref); } +#line 2653 "src/sc_man_scanner.h" +yy403: + yych = *++YYCURSOR; + if(yych == 'R') goto yy404; + if(yych != 'r') goto yy174; yy404: yych = *++YYCURSOR; - if(yych == 'F') goto yy405; - if(yych != 'f') goto yy174; + if(yych == 'N') goto yy405; + if(yych != 'n') goto yy174; yy405: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -2647,253 +2673,249 @@ yy405: } } yy406: -#line 137 "src/sc_man_scanner.re" - { RET(TK_Self); } -#line 2653 "src/sc_man_scanner.h" -yy407: - yych = *++YYCURSOR; - if(yych == 'T') goto yy408; - if(yych != 't') goto yy174; -yy408: - yych = *++YYCURSOR; - if(yych == 'E') goto yy409; - if(yych != 'e') goto yy174; -yy409: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy410; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy410; - if(yych <= 'z') goto yy173; - } - } -yy410: -#line 82 "src/sc_man_scanner.re" - { RET(TK_SByte); } -#line 2679 "src/sc_man_scanner.h" -yy411: - yych = *++YYCURSOR; - if(yych <= 'T') { - if(yych == 'F') goto yy413; - if(yych <= 'S') goto yy174; - } else { - if(yych <= 'f') { - if(yych <= 'e') goto yy174; - goto yy413; - } else { - if(yych != 't') goto yy174; - } - } - yych = *++YYCURSOR; - if(yych == 'U') goto yy415; - if(yych == 'u') goto yy415; - goto yy174; -yy413: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy414; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy414; - if(yych <= 'z') goto yy173; - } - } -yy414: -#line 113 "src/sc_man_scanner.re" - { RET(TK_Ref); } -#line 2714 "src/sc_man_scanner.h" -yy415: - yych = *++YYCURSOR; - if(yych == 'R') goto yy416; - if(yych != 'r') goto yy174; -yy416: - yych = *++YYCURSOR; - if(yych == 'N') goto yy417; - if(yych != 'n') goto yy174; -yy417: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy418; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy418; - if(yych <= 'z') goto yy173; - } - } -yy418: #line 70 "src/sc_man_scanner.re" { RET(TK_Return); } -#line 2740 "src/sc_man_scanner.h" -yy419: +#line 2679 "src/sc_man_scanner.h" +yy407: + yych = *++YYCURSOR; + if(yych == 'D') goto yy408; + if(yych != 'd') goto yy174; +yy408: + yych = *++YYCURSOR; + if(yych == 'O') goto yy409; + if(yych != 'o') goto yy174; +yy409: + yych = *++YYCURSOR; + if(yych == 'M') goto yy410; + if(yych != 'm') goto yy174; +yy410: + ++YYCURSOR; + if((yych = *YYCURSOR) <= '@') { + if(yych <= '1') { + if(yych >= '0') goto yy173; + } else { + if(yych <= '2') goto yy412; + if(yych <= '9') goto yy173; + } + } else { + if(yych <= '_') { + if(yych <= 'Z') goto yy173; + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy411; + if(yych <= 'z') goto yy173; + } + } +yy411: +#line 148 "src/sc_man_scanner.re" + { RET(TK_Random); } +#line 2713 "src/sc_man_scanner.h" +yy412: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy420; + if(yych <= '/') goto yy413; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy420; + if(yych <= '`') goto yy413; if(yych <= 'z') goto yy173; } } -yy420: +yy413: +#line 149 "src/sc_man_scanner.re" + { RET(TK_Random2); } +#line 2731 "src/sc_man_scanner.h" +yy414: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy415; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy415; + if(yych <= 'z') goto yy173; + } + } +yy415: #line 69 "src/sc_man_scanner.re" { RET(TK_If); } -#line 2758 "src/sc_man_scanner.h" -yy421: +#line 2749 "src/sc_man_scanner.h" +yy416: yych = *++YYCURSOR; - if(yych == 'N') goto yy442; - if(yych == 'n') goto yy442; + if(yych == 'N') goto yy437; + if(yych == 'n') goto yy437; goto yy174; -yy422: +yy417: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'R') goto yy174; - if(yych <= 'S') goto yy433; - goto yy431; + if(yych <= 'S') goto yy428; + goto yy426; } else { if(yych <= 'r') goto yy174; - if(yych <= 's') goto yy433; - if(yych <= 't') goto yy431; + if(yych <= 's') goto yy428; + if(yych <= 't') goto yy426; goto yy174; } +yy418: + yych = *++YYCURSOR; + if(yych == 'E') goto yy419; + if(yych != 'e') goto yy174; +yy419: + yych = *++YYCURSOR; + if(yych == 'R') goto yy420; + if(yych != 'r') goto yy174; +yy420: + yych = *++YYCURSOR; + if(yych == 'A') goto yy421; + if(yych != 'a') goto yy174; +yy421: + yych = *++YYCURSOR; + if(yych == 'T') goto yy422; + if(yych != 't') goto yy174; +yy422: + yych = *++YYCURSOR; + if(yych == 'O') goto yy423; + if(yych != 'o') goto yy174; yy423: yych = *++YYCURSOR; - if(yych == 'E') goto yy424; - if(yych != 'e') goto yy174; + if(yych == 'R') goto yy424; + if(yych != 'r') goto yy174; yy424: - yych = *++YYCURSOR; - if(yych == 'R') goto yy425; - if(yych != 'r') goto yy174; -yy425: - yych = *++YYCURSOR; - if(yych == 'A') goto yy426; - if(yych != 'a') goto yy174; -yy426: - yych = *++YYCURSOR; - if(yych == 'T') goto yy427; - if(yych != 't') goto yy174; -yy427: - yych = *++YYCURSOR; - if(yych == 'O') goto yy428; - if(yych != 'o') goto yy174; -yy428: - yych = *++YYCURSOR; - if(yych == 'R') goto yy429; - if(yych != 'r') goto yy174; -yy429: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy430; + if(yych <= '/') goto yy425; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy430; + if(yych <= '`') goto yy425; if(yych <= 'z') goto yy173; } } -yy430: +yy425: #line 131 "src/sc_man_scanner.re" { RET(TK_Iterator); } -#line 2817 "src/sc_man_scanner.h" -yy431: +#line 2808 "src/sc_man_scanner.h" +yy426: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy432; + if(yych <= '/') goto yy427; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy432; + if(yych <= '`') goto yy427; if(yych <= 'z') goto yy173; } } -yy432: +yy427: #line 85 "src/sc_man_scanner.re" { RET(TK_Int); } -#line 2835 "src/sc_man_scanner.h" +#line 2826 "src/sc_man_scanner.h" +yy428: + yych = *++YYCURSOR; + if(yych == 'T') goto yy429; + if(yych != 't') goto yy174; +yy429: + yych = *++YYCURSOR; + if(yych == 'A') goto yy430; + if(yych != 'a') goto yy174; +yy430: + yych = *++YYCURSOR; + if(yych == 'N') goto yy431; + if(yych != 'n') goto yy174; +yy431: + yych = *++YYCURSOR; + if(yych == 'C') goto yy432; + if(yych != 'c') goto yy174; +yy432: + yych = *++YYCURSOR; + if(yych == 'E') goto yy433; + if(yych != 'e') goto yy174; yy433: yych = *++YYCURSOR; - if(yych == 'T') goto yy434; - if(yych != 't') goto yy174; + if(yych == 'O') goto yy434; + if(yych != 'o') goto yy174; yy434: yych = *++YYCURSOR; - if(yych == 'A') goto yy435; - if(yych != 'a') goto yy174; -yy435: - yych = *++YYCURSOR; - if(yych == 'N') goto yy436; - if(yych != 'n') goto yy174; -yy436: - yych = *++YYCURSOR; - if(yych == 'C') goto yy437; - if(yych != 'c') goto yy174; -yy437: - yych = *++YYCURSOR; - if(yych == 'E') goto yy438; - if(yych != 'e') goto yy174; -yy438: - yych = *++YYCURSOR; - if(yych == 'O') goto yy439; - if(yych != 'o') goto yy174; -yy439: - yych = *++YYCURSOR; - if(yych == 'F') goto yy440; + if(yych == 'F') goto yy435; if(yych != 'f') goto yy174; -yy440: +yy435: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy441; + if(yych <= '/') goto yy436; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy441; + if(yych <= '`') goto yy436; if(yych <= 'z') goto yy173; } } -yy441: +yy436: #line 107 "src/sc_man_scanner.re" { RET(TK_InstanceOf); } -#line 2881 "src/sc_man_scanner.h" -yy442: +#line 2872 "src/sc_man_scanner.h" +yy437: yych = *++YYCURSOR; - if(yych == 'O') goto yy443; + if(yych == 'O') goto yy438; if(yych != 'o') goto yy174; +yy438: + yych = *++YYCURSOR; + if(yych == 'R') goto yy439; + if(yych != 'r') goto yy174; +yy439: + yych = *++YYCURSOR; + if(yych == 'E') goto yy440; + if(yych != 'e') goto yy174; +yy440: + yych = *++YYCURSOR; + if(yych == 'S') goto yy441; + if(yych != 's') goto yy174; +yy441: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy442; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy442; + if(yych <= 'z') goto yy173; + } + } +yy442: +#line 125 "src/sc_man_scanner.re" + { RET(TK_Ignores); } +#line 2906 "src/sc_man_scanner.h" yy443: yych = *++YYCURSOR; - if(yych == 'R') goto yy444; - if(yych != 'r') goto yy174; + if(yych == 'O') goto yy448; + if(yych == 'o') goto yy448; + goto yy174; yy444: yych = *++YYCURSOR; - if(yych == 'E') goto yy445; - if(yych != 'e') goto yy174; + if(yych == 'T') goto yy445; + if(yych != 't') goto yy174; yy445: yych = *++YYCURSOR; - if(yych == 'S') goto yy446; - if(yych != 's') goto yy174; + if(yych == 'O') goto yy446; + if(yych != 'o') goto yy174; yy446: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -2909,22 +2931,21 @@ yy446: } } yy447: -#line 125 "src/sc_man_scanner.re" - { RET(TK_Ignores); } -#line 2915 "src/sc_man_scanner.h" +#line 68 "src/sc_man_scanner.re" + { RET(TK_Goto); } +#line 2937 "src/sc_man_scanner.h" yy448: yych = *++YYCURSOR; - if(yych == 'O') goto yy453; - if(yych == 'o') goto yy453; - goto yy174; + if(yych == 'B') goto yy449; + if(yych != 'b') goto yy174; yy449: yych = *++YYCURSOR; - if(yych == 'T') goto yy450; - if(yych != 't') goto yy174; + if(yych == 'A') goto yy450; + if(yych != 'a') goto yy174; yy450: yych = *++YYCURSOR; - if(yych == 'O') goto yy451; - if(yych != 'o') goto yy174; + if(yych == 'L') goto yy451; + if(yych != 'l') goto yy174; yy451: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -2940,286 +2961,286 @@ yy451: } } yy452: -#line 68 "src/sc_man_scanner.re" - { RET(TK_Goto); } -#line 2946 "src/sc_man_scanner.h" -yy453: - yych = *++YYCURSOR; - if(yych == 'B') goto yy454; - if(yych != 'b') goto yy174; -yy454: - yych = *++YYCURSOR; - if(yych == 'A') goto yy455; - if(yych != 'a') goto yy174; -yy455: - yych = *++YYCURSOR; - if(yych == 'L') goto yy456; - if(yych != 'l') goto yy174; -yy456: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy457; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy457; - if(yych <= 'z') goto yy173; - } - } -yy457: #line 136 "src/sc_man_scanner.re" { RET(TK_Global); } -#line 2976 "src/sc_man_scanner.h" -yy458: +#line 2967 "src/sc_man_scanner.h" +yy453: yych = *++YYCURSOR; - if(yych == 'L') goto yy483; - if(yych == 'l') goto yy483; + if(yych == 'L') goto yy478; + if(yych == 'l') goto yy478; goto yy174; -yy459: +yy454: yych = *++YYCURSOR; if(yych <= 'X') { - if(yych == 'N') goto yy473; + if(yych == 'N') goto yy468; if(yych <= 'W') goto yy174; - goto yy474; + goto yy469; } else { if(yych <= 'n') { if(yych <= 'm') goto yy174; - goto yy473; + goto yy468; } else { - if(yych == 'x') goto yy474; + if(yych == 'x') goto yy469; goto yy174; } } -yy460: +yy455: yych = *++YYCURSOR; - if(yych == 'O') goto yy469; - if(yych == 'o') goto yy469; + if(yych == 'O') goto yy464; + if(yych == 'o') goto yy464; goto yy174; -yy461: +yy456: yych = *++YYCURSOR; - if(yych == 'R') goto yy462; + if(yych == 'R') goto yy457; if(yych != 'r') goto yy174; -yy462: +yy457: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '@') { - if(yych <= '/') goto yy463; + if(yych <= '/') goto yy458; if(yych <= '9') goto yy173; } else { - if(yych == 'E') goto yy464; + if(yych == 'E') goto yy459; goto yy173; } } else { if(yych <= '`') { if(yych == '_') goto yy173; } else { - if(yych == 'e') goto yy464; + if(yych == 'e') goto yy459; + if(yych <= 'z') goto yy173; + } + } +yy458: +#line 67 "src/sc_man_scanner.re" + { RET(TK_For); } +#line 3018 "src/sc_man_scanner.h" +yy459: + yych = *++YYCURSOR; + if(yych == 'A') goto yy460; + if(yych != 'a') goto yy174; +yy460: + yych = *++YYCURSOR; + if(yych == 'C') goto yy461; + if(yych != 'c') goto yy174; +yy461: + yych = *++YYCURSOR; + if(yych == 'H') goto yy462; + if(yych != 'h') goto yy174; +yy462: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy463; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy463; if(yych <= 'z') goto yy173; } } yy463: -#line 67 "src/sc_man_scanner.re" - { RET(TK_For); } -#line 3027 "src/sc_man_scanner.h" +#line 102 "src/sc_man_scanner.re" + { RET(TK_ForEach); } +#line 3048 "src/sc_man_scanner.h" yy464: yych = *++YYCURSOR; if(yych == 'A') goto yy465; if(yych != 'a') goto yy174; yy465: yych = *++YYCURSOR; - if(yych == 'C') goto yy466; - if(yych != 'c') goto yy174; -yy466: - yych = *++YYCURSOR; - if(yych == 'H') goto yy467; - if(yych != 'h') goto yy174; -yy467: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy468; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy468; - if(yych <= 'z') goto yy173; - } - } -yy468: -#line 102 "src/sc_man_scanner.re" - { RET(TK_ForEach); } -#line 3057 "src/sc_man_scanner.h" -yy469: - yych = *++YYCURSOR; - if(yych == 'A') goto yy470; - if(yych != 'a') goto yy174; -yy470: - yych = *++YYCURSOR; - if(yych == 'T') goto yy471; + if(yych == 'T') goto yy466; if(yych != 't') goto yy174; -yy471: +yy466: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy472; + if(yych <= '/') goto yy467; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy472; + if(yych <= '`') goto yy467; if(yych <= 'z') goto yy173; } } -yy472: +yy467: #line 78 "src/sc_man_scanner.re" { RET(TK_Float); } -#line 3083 "src/sc_man_scanner.h" -yy473: +#line 3074 "src/sc_man_scanner.h" +yy468: yych = *++YYCURSOR; - if(yych == 'A') goto yy480; - if(yych == 'a') goto yy480; + if(yych == 'A') goto yy475; + if(yych == 'a') goto yy475; goto yy174; -yy474: +yy469: yych = *++YYCURSOR; - if(yych == 'E') goto yy475; + if(yych == 'E') goto yy470; if(yych != 'e') goto yy174; -yy475: +yy470: yych = *++YYCURSOR; - if(yych == 'D') goto yy476; + if(yych == 'D') goto yy471; if(yych != 'd') goto yy174; -yy476: +yy471: yych = *++YYCURSOR; if(yych != '_') goto yy174; yych = *++YYCURSOR; - if(yych == 'T') goto yy478; + if(yych == 'T') goto yy473; if(yych != 't') goto yy174; -yy478: +yy473: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy479; + if(yych <= '/') goto yy474; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy479; + if(yych <= '`') goto yy474; if(yych <= 'z') goto yy173; } } -yy479: -#line 148 "src/sc_man_scanner.re" +yy474: +#line 145 "src/sc_man_scanner.re" { RET(TK_Fixed_t); } -#line 3120 "src/sc_man_scanner.h" -yy480: +#line 3111 "src/sc_man_scanner.h" +yy475: yych = *++YYCURSOR; - if(yych == 'L') goto yy481; + if(yych == 'L') goto yy476; if(yych != 'l') goto yy174; -yy481: +yy476: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy482; + if(yych <= '/') goto yy477; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy482; + if(yych <= '`') goto yy477; if(yych <= 'z') goto yy173; } } -yy482: +yy477: #line 117 "src/sc_man_scanner.re" { RET(TK_Final); } -#line 3142 "src/sc_man_scanner.h" -yy483: +#line 3133 "src/sc_man_scanner.h" +yy478: yych = *++YYCURSOR; - if(yych == 'S') goto yy484; + if(yych == 'S') goto yy479; if(yych != 's') goto yy174; -yy484: +yy479: yych = *++YYCURSOR; - if(yych == 'E') goto yy485; + if(yych == 'E') goto yy480; if(yych != 'e') goto yy174; -yy485: +yy480: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy486; + if(yych <= '/') goto yy481; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy486; + if(yych <= '`') goto yy481; if(yych <= 'z') goto yy173; } } -yy486: +yy481: #line 104 "src/sc_man_scanner.re" { RET(TK_False); } -#line 3168 "src/sc_man_scanner.h" -yy487: +#line 3159 "src/sc_man_scanner.h" +yy482: yych = *++YYCURSOR; - if(yych == 'S') goto yy512; - if(yych == 's') goto yy512; + if(yych == 'S') goto yy507; + if(yych == 's') goto yy507; goto yy174; -yy488: +yy483: yych = *++YYCURSOR; - if(yych == 'U') goto yy509; - if(yych == 'u') goto yy509; + if(yych == 'U') goto yy504; + if(yych == 'u') goto yy504; goto yy174; -yy489: +yy484: yych = *++YYCURSOR; - if(yych == 'E') goto yy505; - if(yych == 'e') goto yy505; + if(yych == 'E') goto yy500; + if(yych == 'e') goto yy500; goto yy174; -yy490: +yy485: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'O') { if(yych != 'E') goto yy174; } else { - if(yych <= 'P') goto yy493; + if(yych <= 'P') goto yy488; if(yych <= 'S') goto yy174; - goto yy492; + goto yy487; } } else { if(yych <= 'o') { if(yych != 'e') goto yy174; } else { - if(yych <= 'p') goto yy493; - if(yych == 't') goto yy492; + if(yych <= 'p') goto yy488; + if(yych == 't') goto yy487; goto yy174; } } yych = *++YYCURSOR; - if(yych == 'C') goto yy503; - if(yych == 'c') goto yy503; + if(yych == 'C') goto yy498; + if(yych == 'c') goto yy498; goto yy174; -yy492: +yy487: yych = *++YYCURSOR; - if(yych == 'E') goto yy498; - if(yych == 'e') goto yy498; + if(yych == 'E') goto yy493; + if(yych == 'e') goto yy493; goto yy174; +yy488: + yych = *++YYCURSOR; + if(yych == 'O') goto yy489; + if(yych != 'o') goto yy174; +yy489: + yych = *++YYCURSOR; + if(yych == 'R') goto yy490; + if(yych != 'r') goto yy174; +yy490: + yych = *++YYCURSOR; + if(yych == 'T') goto yy491; + if(yych != 't') goto yy174; +yy491: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy492; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy492; + if(yych <= 'z') goto yy173; + } + } +yy492: +#line 133 "src/sc_man_scanner.re" + { RET(TK_Export); } +#line 3232 "src/sc_man_scanner.h" yy493: yych = *++YYCURSOR; - if(yych == 'O') goto yy494; - if(yych != 'o') goto yy174; + if(yych == 'N') goto yy494; + if(yych != 'n') goto yy174; yy494: yych = *++YYCURSOR; - if(yych == 'R') goto yy495; - if(yych != 'r') goto yy174; + if(yych == 'D') goto yy495; + if(yych != 'd') goto yy174; yy495: yych = *++YYCURSOR; - if(yych == 'T') goto yy496; - if(yych != 't') goto yy174; + if(yych == 'S') goto yy496; + if(yych != 's') goto yy174; yy496: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -3235,142 +3256,112 @@ yy496: } } yy497: -#line 133 "src/sc_man_scanner.re" - { RET(TK_Export); } -#line 3241 "src/sc_man_scanner.h" -yy498: - yych = *++YYCURSOR; - if(yych == 'N') goto yy499; - if(yych != 'n') goto yy174; -yy499: - yych = *++YYCURSOR; - if(yych == 'D') goto yy500; - if(yych != 'd') goto yy174; -yy500: - yych = *++YYCURSOR; - if(yych == 'S') goto yy501; - if(yych != 's') goto yy174; -yy501: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy502; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy502; - if(yych <= 'z') goto yy173; - } - } -yy502: #line 119 "src/sc_man_scanner.re" { RET(TK_Extends); } -#line 3271 "src/sc_man_scanner.h" -yy503: +#line 3262 "src/sc_man_scanner.h" +yy498: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy504; + if(yych <= '/') goto yy499; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy504; + if(yych <= '`') goto yy499; if(yych <= 'z') goto yy173; } } -yy504: +yy499: #line 109 "src/sc_man_scanner.re" { RET(TK_Exec); } -#line 3289 "src/sc_man_scanner.h" -yy505: +#line 3280 "src/sc_man_scanner.h" +yy500: yych = *++YYCURSOR; - if(yych == 'N') goto yy506; + if(yych == 'N') goto yy501; if(yych != 'n') goto yy174; -yy506: +yy501: yych = *++YYCURSOR; - if(yych == 'T') goto yy507; + if(yych == 'T') goto yy502; if(yych != 't') goto yy174; -yy507: +yy502: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy508; + if(yych <= '/') goto yy503; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy508; + if(yych <= '`') goto yy503; if(yych <= 'z') goto yy173; } } -yy508: +yy503: #line 114 "src/sc_man_scanner.re" { RET(TK_Event); } -#line 3315 "src/sc_man_scanner.h" -yy509: +#line 3306 "src/sc_man_scanner.h" +yy504: yych = *++YYCURSOR; - if(yych == 'M') goto yy510; + if(yych == 'M') goto yy505; if(yych != 'm') goto yy174; -yy510: +yy505: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy511; + if(yych <= '/') goto yy506; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy511; + if(yych <= '`') goto yy506; if(yych <= 'z') goto yy173; } } -yy511: +yy506: #line 93 "src/sc_man_scanner.re" { RET(TK_Enum); } -#line 3337 "src/sc_man_scanner.h" -yy512: +#line 3328 "src/sc_man_scanner.h" +yy507: yych = *++YYCURSOR; - if(yych == 'E') goto yy513; + if(yych == 'E') goto yy508; if(yych != 'e') goto yy174; -yy513: +yy508: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy514; + if(yych <= '/') goto yy509; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy514; + if(yych <= '`') goto yy509; if(yych <= 'z') goto yy173; } } -yy514: +yy509: #line 66 "src/sc_man_scanner.re" { RET(TK_Else); } -#line 3359 "src/sc_man_scanner.h" -yy515: +#line 3350 "src/sc_man_scanner.h" +yy510: yych = *++YYCURSOR; - if(yych == 'F') goto yy525; - if(yych == 'f') goto yy525; + if(yych == 'F') goto yy520; + if(yych == 'f') goto yy520; goto yy174; -yy516: +yy511: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '@') { - if(yych <= '/') goto yy517; + if(yych <= '/') goto yy512; if(yych <= '9') goto yy173; } else { if(yych <= 'S') goto yy173; - if(yych <= 'T') goto yy519; - if(yych <= 'U') goto yy518; + if(yych <= 'T') goto yy514; + if(yych <= 'U') goto yy513; goto yy173; } } else { @@ -3378,326 +3369,366 @@ yy516: if(yych == '_') goto yy173; if(yych >= 'a') goto yy173; } else { - if(yych <= 't') goto yy519; - if(yych <= 'u') goto yy518; + if(yych <= 't') goto yy514; + if(yych <= 'u') goto yy513; if(yych <= 'z') goto yy173; } } -yy517: +yy512: #line 65 "src/sc_man_scanner.re" { RET(TK_Do); } -#line 3390 "src/sc_man_scanner.h" -yy518: +#line 3381 "src/sc_man_scanner.h" +yy513: yych = *++YYCURSOR; - if(yych == 'B') goto yy521; - if(yych == 'b') goto yy521; + if(yych == 'B') goto yy516; + if(yych == 'b') goto yy516; goto yy174; -yy519: +yy514: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy520; + if(yych <= '/') goto yy515; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy520; + if(yych <= '`') goto yy515; if(yych <= 'z') goto yy173; } } -yy520: +yy515: #line 123 "src/sc_man_scanner.re" { RET(TK_Dot); } -#line 3413 "src/sc_man_scanner.h" -yy521: +#line 3404 "src/sc_man_scanner.h" +yy516: yych = *++YYCURSOR; - if(yych == 'L') goto yy522; + if(yych == 'L') goto yy517; if(yych != 'l') goto yy174; -yy522: +yy517: yych = *++YYCURSOR; - if(yych == 'E') goto yy523; + if(yych == 'E') goto yy518; if(yych != 'e') goto yy174; -yy523: +yy518: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy524; + if(yych <= '/') goto yy519; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy524; + if(yych <= '`') goto yy519; if(yych <= 'z') goto yy173; } } -yy524: +yy519: #line 79 "src/sc_man_scanner.re" { RET(TK_Double); } -#line 3439 "src/sc_man_scanner.h" -yy525: +#line 3430 "src/sc_man_scanner.h" +yy520: yych = *++YYCURSOR; - if(yych == 'A') goto yy526; + if(yych == 'A') goto yy521; if(yych != 'a') goto yy174; -yy526: +yy521: yych = *++YYCURSOR; - if(yych == 'U') goto yy527; + if(yych == 'U') goto yy522; if(yych != 'u') goto yy174; -yy527: +yy522: yych = *++YYCURSOR; - if(yych == 'L') goto yy528; + if(yych == 'L') goto yy523; if(yych != 'l') goto yy174; -yy528: +yy523: yych = *++YYCURSOR; - if(yych == 'T') goto yy529; + if(yych == 'T') goto yy524; if(yych != 't') goto yy174; -yy529: +yy524: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '@') { - if(yych <= '/') goto yy530; + if(yych <= '/') goto yy525; if(yych <= '9') goto yy173; } else { - if(yych == 'P') goto yy531; + if(yych == 'P') goto yy526; goto yy173; } } else { if(yych <= '`') { if(yych == '_') goto yy173; } else { - if(yych == 'p') goto yy531; + if(yych == 'p') goto yy526; if(yych <= 'z') goto yy173; } } -yy530: +yy525: #line 64 "src/sc_man_scanner.re" { RET(TK_Default); } -#line 3477 "src/sc_man_scanner.h" +#line 3468 "src/sc_man_scanner.h" +yy526: + yych = *++YYCURSOR; + if(yych == 'R') goto yy527; + if(yych != 'r') goto yy174; +yy527: + yych = *++YYCURSOR; + if(yych == 'O') goto yy528; + if(yych != 'o') goto yy174; +yy528: + yych = *++YYCURSOR; + if(yych == 'P') goto yy529; + if(yych != 'p') goto yy174; +yy529: + yych = *++YYCURSOR; + if(yych == 'E') goto yy530; + if(yych != 'e') goto yy174; +yy530: + yych = *++YYCURSOR; + if(yych == 'R') goto yy531; + if(yych != 'r') goto yy174; yy531: yych = *++YYCURSOR; - if(yych == 'R') goto yy532; - if(yych != 'r') goto yy174; + if(yych == 'T') goto yy532; + if(yych != 't') goto yy174; yy532: yych = *++YYCURSOR; - if(yych == 'O') goto yy533; - if(yych != 'o') goto yy174; + if(yych == 'I') goto yy533; + if(yych != 'i') goto yy174; yy533: yych = *++YYCURSOR; - if(yych == 'P') goto yy534; - if(yych != 'p') goto yy174; + if(yych == 'E') goto yy534; + if(yych != 'e') goto yy174; yy534: yych = *++YYCURSOR; - if(yych == 'E') goto yy535; - if(yych != 'e') goto yy174; -yy535: - yych = *++YYCURSOR; - if(yych == 'R') goto yy536; - if(yych != 'r') goto yy174; -yy536: - yych = *++YYCURSOR; - if(yych == 'T') goto yy537; - if(yych != 't') goto yy174; -yy537: - yych = *++YYCURSOR; - if(yych == 'I') goto yy538; - if(yych != 'i') goto yy174; -yy538: - yych = *++YYCURSOR; - if(yych == 'E') goto yy539; - if(yych != 'e') goto yy174; -yy539: - yych = *++YYCURSOR; - if(yych == 'S') goto yy540; + if(yych == 'S') goto yy535; if(yych != 's') goto yy174; -yy540: +yy535: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy541; + if(yych <= '/') goto yy536; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy541; + if(yych <= '`') goto yy536; if(yych <= 'z') goto yy173; } } -yy541: +yy536: #line 110 "src/sc_man_scanner.re" { RET(TK_DefaultProperties); } -#line 3531 "src/sc_man_scanner.h" -yy542: +#line 3522 "src/sc_man_scanner.h" +yy537: yych = *++YYCURSOR; - if(yych == 'S') goto yy581; - if(yych == 's') goto yy581; + if(yych == 'S') goto yy576; + if(yych == 's') goto yy576; goto yy174; -yy543: +yy538: yych = *++YYCURSOR; - if(yych == 'A') goto yy578; - if(yych == 'a') goto yy578; + if(yych == 'A') goto yy573; + if(yych == 'a') goto yy573; goto yy174; -yy544: +yy539: yych = *++YYCURSOR; - if(yych == 'A') goto yy574; - if(yych == 'a') goto yy574; + if(yych == 'A') goto yy569; + if(yych == 'a') goto yy569; goto yy174; -yy545: +yy540: yych = *++YYCURSOR; if(yych <= 'N') { if(yych <= 'K') { - if(yych == 'E') goto yy553; + if(yych == 'E') goto yy548; goto yy174; } else { - if(yych <= 'L') goto yy552; + if(yych <= 'L') goto yy547; if(yych <= 'M') goto yy174; - goto yy551; + goto yy546; } } else { if(yych <= 'k') { - if(yych == 'e') goto yy553; + if(yych == 'e') goto yy548; goto yy174; } else { - if(yych <= 'l') goto yy552; - if(yych == 'n') goto yy551; + if(yych <= 'l') goto yy547; + if(yych == 'n') goto yy546; goto yy174; } } -yy546: +yy541: yych = *++YYCURSOR; - if(yych == 'O') goto yy547; + if(yych == 'O') goto yy542; if(yych != 'o') goto yy174; -yy547: +yy542: yych = *++YYCURSOR; - if(yych == 'S') goto yy548; + if(yych == 'S') goto yy543; if(yych != 's') goto yy174; -yy548: +yy543: yych = *++YYCURSOR; - if(yych == 'S') goto yy549; + if(yych == 'S') goto yy544; if(yych != 's') goto yy174; -yy549: +yy544: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy550; + if(yych <= '/') goto yy545; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy550; + if(yych <= '`') goto yy545; if(yych <= 'z') goto yy173; } } -yy550: +yy545: #line 124 "src/sc_man_scanner.re" { RET(TK_Cross); } -#line 3597 "src/sc_man_scanner.h" -yy551: +#line 3588 "src/sc_man_scanner.h" +yy546: yych = *++YYCURSOR; if(yych <= 'T') { if(yych <= 'F') { if(yych <= 'E') goto yy174; - goto yy561; + goto yy556; } else { if(yych <= 'R') goto yy174; - if(yych <= 'S') goto yy562; - goto yy563; + if(yych <= 'S') goto yy557; + goto yy558; } } else { if(yych <= 'r') { - if(yych == 'f') goto yy561; + if(yych == 'f') goto yy556; goto yy174; } else { - if(yych <= 's') goto yy562; - if(yych <= 't') goto yy563; + if(yych <= 's') goto yy557; + if(yych <= 't') goto yy558; goto yy174; } } -yy552: +yy547: yych = *++YYCURSOR; - if(yych == 'O') goto yy558; - if(yych == 'o') goto yy558; + if(yych == 'O') goto yy553; + if(yych == 'o') goto yy553; goto yy174; +yy548: + yych = *++YYCURSOR; + if(yych == 'R') goto yy549; + if(yych != 'r') goto yy174; +yy549: + yych = *++YYCURSOR; + if(yych == 'C') goto yy550; + if(yych != 'c') goto yy174; +yy550: + yych = *++YYCURSOR; + if(yych == 'E') goto yy551; + if(yych != 'e') goto yy174; +yy551: + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy552; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy552; + if(yych <= 'z') goto yy173; + } + } +yy552: +#line 130 "src/sc_man_scanner.re" + { RET(TK_Coerce); } +#line 3644 "src/sc_man_scanner.h" yy553: yych = *++YYCURSOR; if(yych == 'R') goto yy554; if(yych != 'r') goto yy174; yy554: - yych = *++YYCURSOR; - if(yych == 'C') goto yy555; - if(yych != 'c') goto yy174; + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy555; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy555; + if(yych <= 'z') goto yy173; + } + } yy555: - yych = *++YYCURSOR; - if(yych == 'E') goto yy556; - if(yych != 'e') goto yy174; -yy556: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy557; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy557; - if(yych <= 'z') goto yy173; - } - } -yy557: -#line 130 "src/sc_man_scanner.re" - { RET(TK_Coerce); } -#line 3653 "src/sc_man_scanner.h" -yy558: - yych = *++YYCURSOR; - if(yych == 'R') goto yy559; - if(yych != 'r') goto yy174; -yy559: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy560; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy560; - if(yych <= 'z') goto yy173; - } - } -yy560: #line 98 "src/sc_man_scanner.re" { RET(TK_Color); } -#line 3675 "src/sc_man_scanner.h" +#line 3666 "src/sc_man_scanner.h" +yy556: + yych = *++YYCURSOR; + if(yych == 'I') goto yy566; + if(yych == 'i') goto yy566; + goto yy174; +yy557: + yych = *++YYCURSOR; + if(yych == 'T') goto yy564; + if(yych == 't') goto yy564; + goto yy174; +yy558: + yych = *++YYCURSOR; + if(yych == 'I') goto yy559; + if(yych != 'i') goto yy174; +yy559: + yych = *++YYCURSOR; + if(yych == 'N') goto yy560; + if(yych != 'n') goto yy174; +yy560: + yych = *++YYCURSOR; + if(yych == 'U') goto yy561; + if(yych != 'u') goto yy174; yy561: yych = *++YYCURSOR; - if(yych == 'I') goto yy571; - if(yych == 'i') goto yy571; - goto yy174; + if(yych == 'E') goto yy562; + if(yych != 'e') goto yy174; yy562: - yych = *++YYCURSOR; - if(yych == 'T') goto yy569; - if(yych == 't') goto yy569; - goto yy174; + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy563; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy563; + if(yych <= 'z') goto yy173; + } + } yy563: - yych = *++YYCURSOR; - if(yych == 'I') goto yy564; - if(yych != 'i') goto yy174; +#line 63 "src/sc_man_scanner.re" + { RET(TK_Continue); } +#line 3710 "src/sc_man_scanner.h" yy564: - yych = *++YYCURSOR; - if(yych == 'N') goto yy565; - if(yych != 'n') goto yy174; + ++YYCURSOR; + if((yych = *YYCURSOR) <= 'Z') { + if(yych <= '/') goto yy565; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; + } else { + if(yych <= '_') { + if(yych >= '_') goto yy173; + } else { + if(yych <= '`') goto yy565; + if(yych <= 'z') goto yy173; + } + } yy565: - yych = *++YYCURSOR; - if(yych == 'U') goto yy566; - if(yych != 'u') goto yy174; +#line 62 "src/sc_man_scanner.re" + { RET(TK_Const); } +#line 3728 "src/sc_man_scanner.h" yy566: yych = *++YYCURSOR; - if(yych == 'E') goto yy567; - if(yych != 'e') goto yy174; + if(yych == 'G') goto yy567; + if(yych != 'g') goto yy174; yy567: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -3713,258 +3744,184 @@ yy567: } } yy568: -#line 63 "src/sc_man_scanner.re" - { RET(TK_Continue); } -#line 3719 "src/sc_man_scanner.h" -yy569: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy570; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy570; - if(yych <= 'z') goto yy173; - } - } -yy570: -#line 62 "src/sc_man_scanner.re" - { RET(TK_Const); } -#line 3737 "src/sc_man_scanner.h" -yy571: - yych = *++YYCURSOR; - if(yych == 'G') goto yy572; - if(yych != 'g') goto yy174; -yy572: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy573; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy573; - if(yych <= 'z') goto yy173; - } - } -yy573: #line 129 "src/sc_man_scanner.re" { RET(TK_Config); } -#line 3759 "src/sc_man_scanner.h" -yy574: +#line 3750 "src/sc_man_scanner.h" +yy569: yych = *++YYCURSOR; - if(yych == 'S') goto yy575; + if(yych == 'S') goto yy570; if(yych != 's') goto yy174; -yy575: +yy570: yych = *++YYCURSOR; - if(yych == 'S') goto yy576; + if(yych == 'S') goto yy571; if(yych != 's') goto yy174; -yy576: +yy571: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy577; + if(yych <= '/') goto yy572; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy577; + if(yych <= '`') goto yy572; if(yych <= 'z') goto yy173; } } -yy577: +yy572: #line 91 "src/sc_man_scanner.re" { RET(TK_Class); } -#line 3785 "src/sc_man_scanner.h" -yy578: +#line 3776 "src/sc_man_scanner.h" +yy573: yych = *++YYCURSOR; - if(yych == 'R') goto yy579; + if(yych == 'R') goto yy574; if(yych != 'r') goto yy174; -yy579: +yy574: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy580; + if(yych <= '/') goto yy575; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy580; + if(yych <= '`') goto yy575; if(yych <= 'z') goto yy173; } } -yy580: +yy575: #line 80 "src/sc_man_scanner.re" { RET(TK_Char); } -#line 3807 "src/sc_man_scanner.h" -yy581: +#line 3798 "src/sc_man_scanner.h" +yy576: yych = *++YYCURSOR; - if(yych == 'E') goto yy582; + if(yych == 'E') goto yy577; if(yych != 'e') goto yy174; -yy582: +yy577: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy583; + if(yych <= '/') goto yy578; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy583; + if(yych <= '`') goto yy578; if(yych <= 'z') goto yy173; } } -yy583: +yy578: #line 61 "src/sc_man_scanner.re" { RET(TK_Case); } -#line 3829 "src/sc_man_scanner.h" -yy584: +#line 3820 "src/sc_man_scanner.h" +yy579: yych = *++YYCURSOR; - if(yych == 'O') goto yy599; - if(yych == 'o') goto yy599; + if(yych == 'O') goto yy589; + if(yych == 'o') goto yy589; goto yy174; -yy585: +yy580: yych = *++YYCURSOR; - if(yych == 'E') goto yy590; - if(yych == 'e') goto yy590; + if(yych == 'E') goto yy585; + if(yych == 'e') goto yy585; goto yy174; -yy586: +yy581: yych = *++YYCURSOR; - if(yych == 'T') goto yy587; + if(yych == 'T') goto yy582; if(yych != 't') goto yy174; -yy587: +yy582: yych = *++YYCURSOR; - if(yych == 'E') goto yy588; + if(yych == 'E') goto yy583; if(yych != 'e') goto yy174; -yy588: +yy583: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy589; + if(yych <= '/') goto yy584; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy589; + if(yych <= '`') goto yy584; if(yych <= 'z') goto yy173; } } -yy589: +yy584: #line 81 "src/sc_man_scanner.re" { RET(TK_Byte); } -#line 3865 "src/sc_man_scanner.h" -yy590: +#line 3856 "src/sc_man_scanner.h" +yy585: yych = *++YYCURSOR; - if(yych == 'A') goto yy591; + if(yych == 'A') goto yy586; if(yych != 'a') goto yy174; -yy591: +yy586: yych = *++YYCURSOR; - if(yych == 'K') goto yy592; + if(yych == 'K') goto yy587; if(yych != 'k') goto yy174; -yy592: +yy587: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '9') { - if(yych >= '0') goto yy173; - } else { - if(yych <= '@') goto yy593; - if(yych <= 'A') goto yy594; - goto yy173; - } + if(yych <= '/') goto yy588; + if(yych <= '9') goto yy173; + if(yych >= 'A') goto yy173; } else { - if(yych <= '`') { - if(yych == '_') goto yy173; + if(yych <= '_') { + if(yych >= '_') goto yy173; } else { - if(yych <= 'a') goto yy594; + if(yych <= '`') goto yy588; if(yych <= 'z') goto yy173; } } -yy593: +yy588: #line 60 "src/sc_man_scanner.re" { RET(TK_Break); } -#line 3895 "src/sc_man_scanner.h" -yy594: +#line 3882 "src/sc_man_scanner.h" +yy589: yych = *++YYCURSOR; - if(yych == 'B') goto yy595; - if(yych != 'b') goto yy174; -yy595: - yych = *++YYCURSOR; - if(yych == 'L') goto yy596; + if(yych == 'L') goto yy590; if(yych != 'l') goto yy174; -yy596: - yych = *++YYCURSOR; - if(yych == 'E') goto yy597; - if(yych != 'e') goto yy174; -yy597: +yy590: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy598; + if(yych <= '/') goto yy591; if(yych <= '9') goto yy173; if(yych >= 'A') goto yy173; } else { if(yych <= '_') { if(yych >= '_') goto yy173; } else { - if(yych <= '`') goto yy598; + if(yych <= '`') goto yy591; if(yych <= 'z') goto yy173; } } -yy598: -#line 146 "src/sc_man_scanner.re" - { RET(TK_Breakable); } -#line 3925 "src/sc_man_scanner.h" -yy599: - yych = *++YYCURSOR; - if(yych == 'L') goto yy600; - if(yych != 'l') goto yy174; -yy600: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 'Z') { - if(yych <= '/') goto yy601; - if(yych <= '9') goto yy173; - if(yych >= 'A') goto yy173; - } else { - if(yych <= '_') { - if(yych >= '_') goto yy173; - } else { - if(yych <= '`') goto yy601; - if(yych <= 'z') goto yy173; - } - } -yy601: +yy591: #line 77 "src/sc_man_scanner.re" { RET(TK_Bool); } -#line 3947 "src/sc_man_scanner.h" -yy602: +#line 3904 "src/sc_man_scanner.h" +yy592: ++YYCURSOR; #line 172 "src/sc_man_scanner.re" { RET(TK_DivEq); } -#line 3952 "src/sc_man_scanner.h" -yy604: +#line 3909 "src/sc_man_scanner.h" +yy594: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy608; - goto yy604; -yy606: + if(yych == 0x0A) goto yy598; + goto yy594; +yy596: ++YYCURSOR; #line 56 "src/sc_man_scanner.re" { goto comment; } -#line 3963 "src/sc_man_scanner.h" -yy608: +#line 3920 "src/sc_man_scanner.h" +yy598: ++YYCURSOR; #line 57 "src/sc_man_scanner.re" { goto newline; } -#line 3968 "src/sc_man_scanner.h" +#line 3925 "src/sc_man_scanner.h" } #line 220 "src/sc_man_scanner.re" @@ -3972,7 +3929,7 @@ yy608: if (!CMode) // The classic Hexen scanner. { -#line 3976 "src/sc_man_scanner.h" +#line 3933 "src/sc_man_scanner.h" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -3980,180 +3937,180 @@ yy608: yych = *YYCURSOR; if(yych <= '/') { if(yych <= ' ') { - if(yych == 0x0A) goto yy618; - goto yy616; + if(yych == 0x0A) goto yy608; + goto yy606; } else { - if(yych == '"') goto yy620; - if(yych <= '.') goto yy624; - goto yy613; + if(yych == '"') goto yy610; + if(yych <= '.') goto yy614; + goto yy603; } } else { if(yych <= '<') { - if(yych == ';') goto yy615; - goto yy624; + if(yych == ';') goto yy605; + goto yy614; } else { - if(yych <= '=') goto yy622; - if(yych <= 'z') goto yy624; - if(yych <= '}') goto yy622; - goto yy624; + if(yych <= '=') goto yy612; + if(yych <= 'z') goto yy614; + if(yych <= '}') goto yy612; + goto yy614; } } -yy612: +yy602: #line 235 "src/sc_man_scanner.re" { goto normal_token; } -#line 4005 "src/sc_man_scanner.h" -yy613: +#line 3962 "src/sc_man_scanner.h" +yy603: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '/') { if(yych <= '"') { - if(yych == '!') goto yy629; + if(yych == '!') goto yy619; } else { - if(yych == '*') goto yy637; - if(yych <= '.') goto yy629; - goto yy633; + if(yych == '*') goto yy627; + if(yych <= '.') goto yy619; + goto yy623; } } else { if(yych <= '<') { - if(yych != ';') goto yy629; + if(yych != ';') goto yy619; } else { - if(yych <= '=') goto yy614; - if(yych <= 'z') goto yy629; - if(yych >= '~') goto yy629; + if(yych <= '=') goto yy604; + if(yych <= 'z') goto yy619; + if(yych >= '~') goto yy619; } } -yy614: +yy604: #line 237 "src/sc_man_scanner.re" { goto normal_token; } -#line 4029 "src/sc_man_scanner.h" -yy615: +#line 3986 "src/sc_man_scanner.h" +yy605: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy634; -yy616: + goto yy624; +yy606: ++YYCURSOR; yych = *YYCURSOR; - goto yy632; -yy617: + goto yy622; +yy607: #line 228 "src/sc_man_scanner.re" { goto std1; } -#line 4041 "src/sc_man_scanner.h" -yy618: +#line 3998 "src/sc_man_scanner.h" +yy608: ++YYCURSOR; #line 229 "src/sc_man_scanner.re" { goto newline; } -#line 4046 "src/sc_man_scanner.h" -yy620: +#line 4003 "src/sc_man_scanner.h" +yy610: ++YYCURSOR; #line 230 "src/sc_man_scanner.re" { goto string; } -#line 4051 "src/sc_man_scanner.h" -yy622: +#line 4008 "src/sc_man_scanner.h" +yy612: ++YYCURSOR; #line 232 "src/sc_man_scanner.re" { goto normal_token; } -#line 4056 "src/sc_man_scanner.h" -yy624: +#line 4013 "src/sc_man_scanner.h" +yy614: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy628; -yy625: + goto yy618; +yy615: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '/') { if(yych <= '"') { - if(yych == '!') goto yy629; + if(yych == '!') goto yy619; } else { - if(yych == '*') goto yy626; - if(yych <= '.') goto yy629; + if(yych == '*') goto yy616; + if(yych <= '.') goto yy619; } } else { if(yych <= '<') { - if(yych != ';') goto yy629; + if(yych != ';') goto yy619; } else { - if(yych <= '=') goto yy626; - if(yych <= 'z') goto yy629; - if(yych >= '~') goto yy629; + if(yych <= '=') goto yy616; + if(yych <= 'z') goto yy619; + if(yych >= '~') goto yy619; } } -yy626: +yy616: YYCURSOR = YYMARKER; if(yyaccept <= 0) { - goto yy614; + goto yy604; } else { - goto yy612; + goto yy602; } -yy627: +yy617: yyaccept = 1; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy628: +yy618: if(yych <= ':') { if(yych <= '"') { - if(yych == '!') goto yy627; - goto yy612; + if(yych == '!') goto yy617; + goto yy602; } else { - if(yych == '/') goto yy625; - goto yy627; + if(yych == '/') goto yy615; + goto yy617; } } else { if(yych <= '=') { - if(yych == '<') goto yy627; - goto yy612; + if(yych == '<') goto yy617; + goto yy602; } else { - if(yych <= 'z') goto yy627; - if(yych <= '}') goto yy612; - goto yy627; + if(yych <= 'z') goto yy617; + if(yych <= '}') goto yy602; + goto yy617; } } -yy629: +yy619: yyaccept = 1; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= ':') { if(yych <= '"') { - if(yych == '!') goto yy629; - goto yy612; + if(yych == '!') goto yy619; + goto yy602; } else { - if(yych == '/') goto yy625; - goto yy629; + if(yych == '/') goto yy615; + goto yy619; } } else { if(yych <= '=') { - if(yych == '<') goto yy629; - goto yy612; + if(yych == '<') goto yy619; + goto yy602; } else { - if(yych <= 'z') goto yy629; - if(yych <= '}') goto yy612; - goto yy629; + if(yych <= 'z') goto yy619; + if(yych <= '}') goto yy602; + goto yy619; } } -yy631: +yy621: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy632: - if(yych == 0x0A) goto yy617; - if(yych <= ' ') goto yy631; - goto yy617; -yy633: +yy622: + if(yych == 0x0A) goto yy607; + if(yych <= ' ') goto yy621; + goto yy607; +yy623: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy634: - if(yych != 0x0A) goto yy633; +yy624: + if(yych != 0x0A) goto yy623; ++YYCURSOR; #line 226 "src/sc_man_scanner.re" { goto newline; } -#line 4152 "src/sc_man_scanner.h" -yy637: +#line 4109 "src/sc_man_scanner.h" +yy627: ++YYCURSOR; #line 225 "src/sc_man_scanner.re" { goto comment; } -#line 4157 "src/sc_man_scanner.h" +#line 4114 "src/sc_man_scanner.h" } #line 238 "src/sc_man_scanner.re" @@ -4161,7 +4118,7 @@ yy637: else // A modified Hexen scanner for DECORATE. { -#line 4165 "src/sc_man_scanner.h" +#line 4122 "src/sc_man_scanner.h" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); @@ -4169,245 +4126,245 @@ yy637: if(yych <= ':') { if(yych <= '&') { if(yych <= ' ') { - if(yych == 0x0A) goto yy645; - goto yy643; + if(yych == 0x0A) goto yy635; + goto yy633; } else { - if(yych == '"') goto yy647; - if(yych <= '%') goto yy660; - goto yy655; + if(yych == '"') goto yy637; + if(yych <= '%') goto yy650; + goto yy645; } } else { if(yych <= '-') { - if(yych <= '\'') goto yy661; - if(yych <= ',') goto yy660; - goto yy649; + if(yych <= '\'') goto yy651; + if(yych <= ',') goto yy650; + goto yy639; } else { - if(yych <= '.') goto yy653; - if(yych <= '/') goto yy641; - if(yych <= '9') goto yy651; - goto yy654; + if(yych <= '.') goto yy643; + if(yych <= '/') goto yy631; + if(yych <= '9') goto yy641; + goto yy644; } } } else { if(yych <= '^') { if(yych <= '=') { - if(yych <= ';') goto yy660; - if(yych <= '<') goto yy658; - goto yy656; + if(yych <= ';') goto yy650; + if(yych <= '<') goto yy648; + goto yy646; } else { - if(yych <= '>') goto yy659; - if(yych <= '@') goto yy660; - if(yych <= 'Z') goto yy661; - goto yy660; + if(yych <= '>') goto yy649; + if(yych <= '@') goto yy650; + if(yych <= 'Z') goto yy651; + goto yy650; } } else { if(yych <= 'z') { - if(yych == '`') goto yy660; - goto yy661; + if(yych == '`') goto yy650; + goto yy651; } else { - if(yych == '|') goto yy657; - if(yych <= '~') goto yy660; - goto yy661; + if(yych == '|') goto yy647; + if(yych <= '~') goto yy650; + goto yy651; } } } -yy641: +yy631: yych = *(YYMARKER = ++YYCURSOR); - if(yych == '*') goto yy687; - if(yych == '/') goto yy685; -yy642: + if(yych == '*') goto yy677; + if(yych == '/') goto yy675; +yy632: #line 258 "src/sc_man_scanner.re" { goto normal_token; } -#line 4222 "src/sc_man_scanner.h" -yy643: +#line 4179 "src/sc_man_scanner.h" +yy633: ++YYCURSOR; yych = *YYCURSOR; - goto yy684; -yy644: + goto yy674; +yy634: #line 246 "src/sc_man_scanner.re" { goto std1; } -#line 4230 "src/sc_man_scanner.h" -yy645: +#line 4187 "src/sc_man_scanner.h" +yy635: ++YYCURSOR; #line 247 "src/sc_man_scanner.re" { goto newline; } -#line 4235 "src/sc_man_scanner.h" -yy647: +#line 4192 "src/sc_man_scanner.h" +yy637: ++YYCURSOR; #line 248 "src/sc_man_scanner.re" { goto string; } -#line 4240 "src/sc_man_scanner.h" -yy649: +#line 4197 "src/sc_man_scanner.h" +yy639: ++YYCURSOR; #line 250 "src/sc_man_scanner.re" { goto negative_check; } -#line 4245 "src/sc_man_scanner.h" -yy651: +#line 4202 "src/sc_man_scanner.h" +yy641: ++YYCURSOR; - if((yych = *YYCURSOR) == '.') goto yy681; - if(yych <= '/') goto yy663; - if(yych <= '9') goto yy679; - goto yy663; -yy652: + if((yych = *YYCURSOR) == '.') goto yy671; + if(yych <= '/') goto yy653; + if(yych <= '9') goto yy669; + goto yy653; +yy642: #line 259 "src/sc_man_scanner.re" { goto normal_token; } -#line 4255 "src/sc_man_scanner.h" -yy653: +#line 4212 "src/sc_man_scanner.h" +yy643: yych = *++YYCURSOR; - if(yych <= '/') goto yy642; - if(yych <= '9') goto yy676; - goto yy642; -yy654: + if(yych <= '/') goto yy632; + if(yych <= '9') goto yy666; + goto yy632; +yy644: yych = *++YYCURSOR; - if(yych == ':') goto yy674; - goto yy642; -yy655: + if(yych == ':') goto yy664; + goto yy632; +yy645: yych = *++YYCURSOR; - if(yych == '&') goto yy672; - goto yy642; -yy656: + if(yych == '&') goto yy662; + goto yy632; +yy646: yych = *++YYCURSOR; - if(yych == '=') goto yy670; - goto yy642; -yy657: + if(yych == '=') goto yy660; + goto yy632; +yy647: yych = *++YYCURSOR; - if(yych == '|') goto yy668; - goto yy642; -yy658: + if(yych == '|') goto yy658; + goto yy632; +yy648: yych = *++YYCURSOR; - if(yych == '<') goto yy666; - goto yy642; -yy659: + if(yych == '<') goto yy656; + goto yy632; +yy649: yych = *++YYCURSOR; - if(yych == '>') goto yy664; - goto yy642; -yy660: + if(yych == '>') goto yy654; + goto yy632; +yy650: yych = *++YYCURSOR; - goto yy642; -yy661: + goto yy632; +yy651: yych = *++YYCURSOR; - goto yy663; -yy662: + goto yy653; +yy652: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy663: +yy653: if(yych <= 'Z') { if(yych <= '/') { - if(yych == '\'') goto yy662; - goto yy652; + if(yych == '\'') goto yy652; + goto yy642; } else { - if(yych <= '9') goto yy662; - if(yych <= '@') goto yy652; - goto yy662; + if(yych <= '9') goto yy652; + if(yych <= '@') goto yy642; + goto yy652; } } else { if(yych <= '`') { - if(yych == '_') goto yy662; - goto yy652; + if(yych == '_') goto yy652; + goto yy642; } else { - if(yych <= 'z') goto yy662; - if(yych <= '~') goto yy652; - goto yy662; + if(yych <= 'z') goto yy652; + if(yych <= '~') goto yy642; + goto yy652; } } -yy664: +yy654: ++YYCURSOR; #line 257 "src/sc_man_scanner.re" { goto normal_token; } -#line 4319 "src/sc_man_scanner.h" -yy666: +#line 4276 "src/sc_man_scanner.h" +yy656: ++YYCURSOR; #line 256 "src/sc_man_scanner.re" { goto normal_token; } -#line 4324 "src/sc_man_scanner.h" -yy668: +#line 4281 "src/sc_man_scanner.h" +yy658: ++YYCURSOR; #line 255 "src/sc_man_scanner.re" { goto normal_token; } -#line 4329 "src/sc_man_scanner.h" -yy670: +#line 4286 "src/sc_man_scanner.h" +yy660: ++YYCURSOR; #line 254 "src/sc_man_scanner.re" { goto normal_token; } -#line 4334 "src/sc_man_scanner.h" -yy672: +#line 4291 "src/sc_man_scanner.h" +yy662: ++YYCURSOR; #line 253 "src/sc_man_scanner.re" { goto normal_token; } -#line 4339 "src/sc_man_scanner.h" -yy674: +#line 4296 "src/sc_man_scanner.h" +yy664: ++YYCURSOR; #line 252 "src/sc_man_scanner.re" { goto normal_token; } -#line 4344 "src/sc_man_scanner.h" -yy676: +#line 4301 "src/sc_man_scanner.h" +yy666: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych <= '/') goto yy678; - if(yych <= '9') goto yy676; -yy678: + if(yych <= '/') goto yy668; + if(yych <= '9') goto yy666; +yy668: #line 251 "src/sc_man_scanner.re" { goto normal_token; } -#line 4354 "src/sc_man_scanner.h" -yy679: +#line 4311 "src/sc_man_scanner.h" +yy669: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '@') { if(yych <= '-') { - if(yych == '\'') goto yy662; - goto yy652; + if(yych == '\'') goto yy652; + goto yy642; } else { - if(yych <= '.') goto yy681; - if(yych <= '/') goto yy652; - if(yych <= '9') goto yy679; - goto yy652; + if(yych <= '.') goto yy671; + if(yych <= '/') goto yy642; + if(yych <= '9') goto yy669; + goto yy642; } } else { if(yych <= '_') { - if(yych <= 'Z') goto yy662; - if(yych <= '^') goto yy652; - goto yy662; + if(yych <= 'Z') goto yy652; + if(yych <= '^') goto yy642; + goto yy652; } else { - if(yych <= '`') goto yy652; - if(yych <= 'z') goto yy662; - if(yych <= '~') goto yy652; - goto yy662; + if(yych <= '`') goto yy642; + if(yych <= 'z') goto yy652; + if(yych <= '~') goto yy642; + goto yy652; } } -yy681: +yy671: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych <= '/') goto yy678; - if(yych <= '9') goto yy681; - goto yy678; -yy683: + if(yych <= '/') goto yy668; + if(yych <= '9') goto yy671; + goto yy668; +yy673: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy684: - if(yych == 0x0A) goto yy644; - if(yych <= ' ') goto yy683; - goto yy644; -yy685: +yy674: + if(yych == 0x0A) goto yy634; + if(yych <= ' ') goto yy673; + goto yy634; +yy675: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == 0x0A) goto yy689; - goto yy685; -yy687: + if(yych == 0x0A) goto yy679; + goto yy675; +yy677: ++YYCURSOR; #line 243 "src/sc_man_scanner.re" { goto comment; } -#line 4406 "src/sc_man_scanner.h" -yy689: +#line 4363 "src/sc_man_scanner.h" +yy679: ++YYCURSOR; #line 244 "src/sc_man_scanner.re" { goto newline; } -#line 4411 "src/sc_man_scanner.h" +#line 4368 "src/sc_man_scanner.h" } #line 262 "src/sc_man_scanner.re" @@ -4437,20 +4394,20 @@ negative_check: comment: -#line 4441 "src/sc_man_scanner.h" +#line 4398 "src/sc_man_scanner.h" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - if(yych == 0x0A) goto yy695; - if(yych != '*') goto yy697; + if(yych == 0x0A) goto yy685; + if(yych != '*') goto yy687; ++YYCURSOR; - if((yych = *YYCURSOR) == '/') goto yy698; -yy694: + if((yych = *YYCURSOR) == '/') goto yy688; +yy684: #line 311 "src/sc_man_scanner.re" { goto comment; } -#line 4453 "src/sc_man_scanner.h" -yy695: +#line 4410 "src/sc_man_scanner.h" +yy685: ++YYCURSOR; #line 300 "src/sc_man_scanner.re" { @@ -4464,11 +4421,11 @@ yy695: Crossed = true; goto comment; } -#line 4468 "src/sc_man_scanner.h" -yy697: +#line 4425 "src/sc_man_scanner.h" +yy687: yych = *++YYCURSOR; - goto yy694; -yy698: + goto yy684; +yy688: ++YYCURSOR; #line 290 "src/sc_man_scanner.re" { @@ -4480,7 +4437,7 @@ yy698: } goto std1; } -#line 4484 "src/sc_man_scanner.h" +#line 4441 "src/sc_man_scanner.h" } #line 312 "src/sc_man_scanner.re" diff --git a/src/sc_man_scanner.re b/src/sc_man_scanner.re index 43ffe7aef0..826a321905 100644 --- a/src/sc_man_scanner.re +++ b/src/sc_man_scanner.re @@ -142,11 +142,11 @@ std2: /* other DECORATE top level keywords */ '#include' { RET(TK_Include); } - 'pickup' { RET(TK_Pickup); } - 'breakable' { RET(TK_Breakable); } - 'projectile' { RET(TK_Projectile); } 'fixed_t' { RET(TK_Fixed_t); } 'angle_t' { RET(TK_Angle_t); } + 'abs' { RET(TK_Abs); } + 'random' { RET(TK_Random); } + 'random2' { RET(TK_Random2); } L (L|D)* { RET(TK_Identifier); } diff --git a/src/tarray.h b/src/tarray.h index b556c84197..1ce5ba5242 100644 --- a/src/tarray.h +++ b/src/tarray.h @@ -299,7 +299,8 @@ public: { for (unsigned int i = 0; i < TArray::Size(); ++i) { - delete (*this)[i]; + if ((*this)[i] != NULL) + delete (*this)[i]; } } }; diff --git a/src/textures/multipatchtexture.cpp b/src/textures/multipatchtexture.cpp index 570a1ebbc7..16119173b3 100644 --- a/src/textures/multipatchtexture.cpp +++ b/src/textures/multipatchtexture.cpp @@ -443,7 +443,7 @@ BYTE * GetBlendMap(PalEntry blend, BYTE *blendwork) default: if (blend.r >= BLEND_DESATURATE1 && blend.r <= BLEND_DESATURATE31) { - return DesaturateColormap[blend - BLEND_DESATURATE1]; + return DesaturateColormap[blend.r - BLEND_DESATURATE1]; } else { @@ -509,7 +509,7 @@ void FMultiPatchTexture::MakeTexture () trans = NullMap; hasTranslucent = true; } - else if (Parts[i].Blend != BLEND_NONE) + else if (Parts[i].Blend != 0) { trans = GetBlendMap(Parts[i].Blend, blendwork); } diff --git a/src/thingdef/olddecorations.cpp b/src/thingdef/olddecorations.cpp index 4caedb86fe..e79f61c7e7 100644 --- a/src/thingdef/olddecorations.cpp +++ b/src/thingdef/olddecorations.cpp @@ -102,7 +102,7 @@ IMPLEMENT_CLASS (AFakeInventory) // PRIVATE FUNCTION PROTOTYPES --------------------------------------------- static void ParseInsideDecoration (Baggage &bag, AActor *defaults, - FExtraInfo &extra, EDefinitionType def, FScanner &sc); + FExtraInfo &extra, EDefinitionType def, FScanner &sc, TArray &StateArray); static void ParseSpriteFrames (FActorInfo *info, TArray &states, FScanner &sc); // PRIVATE DATA DEFINITIONS ------------------------------------------------ @@ -134,6 +134,7 @@ static const char *RenderStyles[] = void ParseOldDecoration(FScanner &sc, EDefinitionType def) { Baggage bag; + TArray StateArray; FExtraInfo extra; FActorInfo *info; PClass *type; @@ -156,9 +157,9 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) sc.MustGetStringName("{"); memset (&extra, 0, sizeof(extra)); - ParseInsideDecoration (bag, (AActor *)(type->Defaults), extra, def, sc); + ParseInsideDecoration (bag, (AActor *)(type->Defaults), extra, def, sc, StateArray); - bag.Info->NumOwnedStates = bag.StateArray.Size(); + bag.Info->NumOwnedStates = StateArray.Size(); if (bag.Info->NumOwnedStates == 0) { sc.ScriptError ("%s does not define any animation frames", typeName.GetChars() ); @@ -179,13 +180,13 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) if (extra.IceDeathEnd != 0) { // Make a copy of the final frozen frame for A_FreezeDeathChunks - FState icecopy = bag.StateArray[extra.IceDeathEnd-1]; - bag.StateArray.Push (icecopy); + FState icecopy = StateArray[extra.IceDeathEnd-1]; + StateArray.Push (icecopy); info->NumOwnedStates += 1; } info->OwnedStates = new FState[info->NumOwnedStates]; - memcpy (info->OwnedStates, &bag.StateArray[0], info->NumOwnedStates * sizeof(info->OwnedStates[0])); + memcpy (info->OwnedStates, &StateArray[0], info->NumOwnedStates * sizeof(info->OwnedStates[0])); if (info->NumOwnedStates == 1) { info->OwnedStates->Tics = -1; @@ -246,7 +247,7 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) if (extra.DeathHeight == 0) extra.DeathHeight = ((AActor*)(type->Defaults))->height; info->Class->Meta.SetMetaFixed (AMETA_DeathHeight, extra.DeathHeight); } - bag.statedef.AddState("Death", &info->OwnedStates[extra.DeathStart]); + bag.statedef.SetStateLabel("Death", &info->OwnedStates[extra.DeathStart]); } // Burn states are the same as death states, except they can optionally terminate @@ -284,7 +285,7 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) if (extra.BurnHeight == 0) extra.BurnHeight = ((AActor*)(type->Defaults))->height; type->Meta.SetMetaFixed (AMETA_BurnHeight, extra.BurnHeight); - bag.statedef.AddState("Burn", &info->OwnedStates[extra.FireDeathStart]); + bag.statedef.SetStateLabel("Burn", &info->OwnedStates[extra.FireDeathStart]); } // Ice states are similar to burn and death, except their final frame enters @@ -305,11 +306,11 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) info->OwnedStates[i].Tics = 1; info->OwnedStates[i].Misc1 = 0; info->OwnedStates[i].SetAction(FindGlobalActionFunction("A_FreezeDeathChunks")); - bag.statedef.AddState("Ice", &info->OwnedStates[extra.IceDeathStart]); + bag.statedef.SetStateLabel("Ice", &info->OwnedStates[extra.IceDeathStart]); } else if (extra.bGenericIceDeath) { - bag.statedef.AddState("Ice", RUNTIME_CLASS(AActor)->ActorInfo->FindState(NAME_GenericFreezeDeath)); + bag.statedef.SetStateLabel("Ice", RUNTIME_CLASS(AActor)->ActorInfo->FindState(NAME_GenericFreezeDeath)); } } if (def == DEF_BreakableDecoration) @@ -320,7 +321,7 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) { ((AActor *)(type->Defaults))->flags |= MF_DROPOFF|MF_MISSILE; } - bag.statedef.AddState("Spawn", &info->OwnedStates[extra.SpawnStart]); + bag.statedef.SetStateLabel("Spawn", &info->OwnedStates[extra.SpawnStart]); bag.statedef.InstallStates (info, ((AActor *)(type->Defaults))); } @@ -333,7 +334,7 @@ void ParseOldDecoration(FScanner &sc, EDefinitionType def) //========================================================================== static void ParseInsideDecoration (Baggage &bag, AActor *defaults, - FExtraInfo &extra, EDefinitionType def, FScanner &sc) + FExtraInfo &extra, EDefinitionType def, FScanner &sc, TArray &StateArray) { AFakeInventory *const inv = static_cast(defaults); char sprite[5] = "TNT1"; @@ -382,31 +383,31 @@ static void ParseInsideDecoration (Baggage &bag, AActor *defaults, else if (sc.Compare ("Frames")) { sc.MustGetString (); - extra.SpawnStart = bag.StateArray.Size(); - ParseSpriteFrames (bag.Info, bag.StateArray, sc); - extra.SpawnEnd = bag.StateArray.Size(); + extra.SpawnStart = StateArray.Size(); + ParseSpriteFrames (bag.Info, StateArray, sc); + extra.SpawnEnd = StateArray.Size(); } else if ((def == DEF_BreakableDecoration || def == DEF_Projectile) && sc.Compare ("DeathFrames")) { sc.MustGetString (); - extra.DeathStart = bag.StateArray.Size(); - ParseSpriteFrames (bag.Info, bag.StateArray, sc); - extra.DeathEnd = bag.StateArray.Size(); + extra.DeathStart = StateArray.Size(); + ParseSpriteFrames (bag.Info, StateArray, sc); + extra.DeathEnd = StateArray.Size(); } else if (def == DEF_BreakableDecoration && sc.Compare ("IceDeathFrames")) { sc.MustGetString (); - extra.IceDeathStart = bag.StateArray.Size(); - ParseSpriteFrames (bag.Info, bag.StateArray, sc); - extra.IceDeathEnd = bag.StateArray.Size(); + extra.IceDeathStart = StateArray.Size(); + ParseSpriteFrames (bag.Info, StateArray, sc); + extra.IceDeathEnd = StateArray.Size(); } else if (def == DEF_BreakableDecoration && sc.Compare ("BurnDeathFrames")) { sc.MustGetString (); - extra.FireDeathStart = bag.StateArray.Size(); - ParseSpriteFrames (bag.Info, bag.StateArray, sc); - extra.FireDeathEnd = bag.StateArray.Size(); + extra.FireDeathStart = StateArray.Size(); + ParseSpriteFrames (bag.Info, StateArray, sc); + extra.FireDeathEnd = StateArray.Size(); } else if (def == DEF_BreakableDecoration && sc.Compare ("GenericIceDeath")) { @@ -587,16 +588,16 @@ static void ParseInsideDecoration (Baggage &bag, AActor *defaults, unsigned int i; int spr = GetSpriteIndex(sprite); - for (i = 0; i < bag.StateArray.Size(); ++i) + for (i = 0; i < StateArray.Size(); ++i) { - bag.StateArray[i].sprite = spr; + StateArray[i].sprite = spr; } if (extra.DeathSprite[0] && extra.DeathEnd != 0) { int spr = GetSpriteIndex(extra.DeathSprite); for (i = extra.DeathStart; i < extra.DeathEnd; ++i) { - bag.StateArray[i].sprite = spr; + StateArray[i].sprite = spr; } } } diff --git a/src/thingdef/thingdef.cpp b/src/thingdef/thingdef.cpp index 1fcba1f985..83fba3ef34 100644 --- a/src/thingdef/thingdef.cpp +++ b/src/thingdef/thingdef.cpp @@ -78,8 +78,7 @@ PSymbolTable GlobalSymbols; // Starts a new actor definition // //========================================================================== -FActorInfo *CreateNewActor(const FScriptPosition &sc, FName typeName, FName parentName, FName replaceName, - int DoomEdNum, bool native) +FActorInfo *CreateNewActor(FName typeName, FName parentName, bool native) { const PClass *replacee = NULL; PClass *ti = NULL; @@ -93,31 +92,15 @@ FActorInfo *CreateNewActor(const FScriptPosition &sc, FName typeName, FName pare if (parent == NULL) { - sc.Message(MSG_FATAL, "Parent type '%s' not found in %s", parentName.GetChars(), typeName.GetChars()); + I_Error( "Parent type '%s' not found in %s", parentName.GetChars(), typeName.GetChars()); } else if (!parent->IsDescendantOf(RUNTIME_CLASS(AActor))) { - sc.Message(MSG_FATAL, "Parent type '%s' is not an actor in %s", parentName.GetChars(), typeName.GetChars()); + I_Error( "Parent type '%s' is not an actor in %s", parentName.GetChars(), typeName.GetChars()); } else if (parent->ActorInfo == NULL) { - sc.Message(MSG_FATAL, "uninitialized parent type '%s' in %s", parentName.GetChars(), typeName.GetChars()); - } - } - - // Check for "replaces" - if (replaceName != NAME_None) - { - // Get actor name - replacee = PClass::FindClass (replaceName); - - if (replacee == NULL) - { - sc.Message(MSG_FATAL, "Replaced type '%s' not found in %s", replaceName.GetChars(), typeName.GetChars()); - } - else if (replacee->ActorInfo == NULL) - { - sc.Message(MSG_FATAL, "Replaced type '%s' is not an actor in %s", replaceName.GetChars(), typeName.GetChars()); + I_Error( "uninitialized parent type '%s' in %s", parentName.GetChars(), typeName.GetChars()); } } @@ -126,15 +109,15 @@ FActorInfo *CreateNewActor(const FScriptPosition &sc, FName typeName, FName pare ti = (PClass*)PClass::FindClass(typeName); if (ti == NULL) { - sc.Message(MSG_FATAL, "Unknown native class '%s'", typeName.GetChars()); + I_Error( "Unknown native class '%s'", typeName.GetChars()); } else if (ti != RUNTIME_CLASS(AActor) && ti->ParentClass->NativeClass() != parent->NativeClass()) { - sc.Message(MSG_FATAL, "Native class '%s' does not inherit from '%s'", typeName.GetChars(), parentName.GetChars()); + I_Error( "Native class '%s' does not inherit from '%s'", typeName.GetChars(), parentName.GetChars()); } else if (ti->ActorInfo != NULL) { - sc.Message(MSG_FATAL, "Redefinition of internal class '%s'", typeName.GetChars()); + I_Error( "Redefinition of internal class '%s'", typeName.GetChars()); } ti->InitializeActorInfo(); info = ti->ActorInfo; @@ -145,7 +128,6 @@ FActorInfo *CreateNewActor(const FScriptPosition &sc, FName typeName, FName pare info = ti->ActorInfo; } - info->DoomEdNum = -1; if (parent->ActorInfo->DamageFactors != NULL) { // copy damage factors from parent @@ -158,15 +140,40 @@ FActorInfo *CreateNewActor(const FScriptPosition &sc, FName typeName, FName pare info->PainChances = new PainChanceList; *info->PainChances = *parent->ActorInfo->PainChances; } + info->Replacee = info->Replacement = NULL; + info->DoomEdNum = -1; + return info; +} - if (replacee != NULL) +//========================================================================== +// +// +// +//========================================================================== + +void SetReplacement(FActorInfo *info, FName replaceName) +{ + // Check for "replaces" + if (replaceName != NAME_None) { - replacee->ActorInfo->Replacement = ti->ActorInfo; - ti->ActorInfo->Replacee = replacee->ActorInfo; + // Get actor name + const PClass *replacee = PClass::FindClass (replaceName); + + if (replacee == NULL) + { + I_Error ("Replaced type '%s' not found in %s", replaceName.GetChars(), info->Class->TypeName.GetChars()); + } + else if (replacee->ActorInfo == NULL) + { + I_Error ("Replaced type '%s' is not an actor in %s", replaceName.GetChars(), info->Class->TypeName.GetChars()); + } + if (replacee != NULL) + { + replacee->ActorInfo->Replacement = info; + info->Replacee = replacee->ActorInfo; + } } - if (DoomEdNum > 0) info->DoomEdNum = DoomEdNum; - return info; } //========================================================================== @@ -181,14 +188,14 @@ void FinishActor(const FScriptPosition &sc, FActorInfo *info, Baggage &bag) try { - bag.statedef.FinishStates (info, defaults, bag.StateArray); + bag.statedef.FinishStates (info, defaults); } catch (CRecoverableError &err) { sc.Message(MSG_FATAL, "%s", err.GetMessage()); } bag.statedef.InstallStates (info, defaults); - bag.StateArray.Clear (); + bag.statedef.MakeStateDefines(NULL); if (bag.DropItemSet) { if (bag.DropItemList == NULL) diff --git a/src/thingdef/thingdef.h b/src/thingdef/thingdef.h index f029bcadc3..d843cc15ff 100644 --- a/src/thingdef/thingdef.h +++ b/src/thingdef/thingdef.h @@ -82,6 +82,9 @@ struct FStateDefine class FStateDefinitions { TArray StateLabels; + FState *laststate; + intptr_t lastlabel; + TArray StateArray; static FStateDefine *FindStateLabelInList(TArray &list, FName name, bool create); static FStateLabels *CreateStateLabelList(TArray &statelist); @@ -96,20 +99,28 @@ class FStateDefinitions public: - - void ClearStateLabels() + FStateDefinitions() { - StateLabels.Clear(); + laststate = NULL; + lastlabel = -1; } - void AddState (const char * statename, FState * state, BYTE defflags = SDF_STATE); + void SetStateLabel (const char * statename, FState * state, BYTE defflags = SDF_STATE); + void AddStateLabel (const char * statename); void InstallStates(FActorInfo *info, AActor *defaults); - int FinishStates (FActorInfo *actor, AActor *defaults, TArray &StateArray); + int FinishStates (FActorInfo *actor, AActor *defaults); void MakeStateDefines(const PClass *cls); void AddStateDefines(const FStateLabels *list); void RetargetStates (intptr_t count, const char *target); + bool SetGotoLabel(const char *string); + bool SetStop(); + bool SetWait(); + bool SetLoop(); + bool AddStates(FState *state, const char *framechars); + int GetStateCount() const { return StateArray.Size(); } + }; //========================================================================== @@ -162,9 +173,10 @@ struct Baggage int CurrentState; int Lumpnum; FStateDefinitions statedef; - TArray StateArray; FDropItem *DropItemList; + + FScriptPosition ScriptPosition; }; inline void ResetBaggage (Baggage *bag, const PClass *stateclass) @@ -173,7 +185,6 @@ inline void ResetBaggage (Baggage *bag, const PClass *stateclass) bag->DropItemSet = false; bag->CurrentState = 0; bag->StateSet = false; - bag->StateArray.Clear(); bag->statedef.MakeStateDefines(stateclass); } @@ -193,7 +204,7 @@ AFuncDesc * FindFunction(const char * string); -int ParseStates(FScanner &sc, FActorInfo *actor, AActor *defaults, Baggage &bag); +void ParseStates(FScanner &sc, FActorInfo *actor, AActor *defaults, Baggage &bag); PSymbolActionFunction *FindGlobalActionFunction(const char *name); @@ -203,8 +214,8 @@ PSymbolActionFunction *FindGlobalActionFunction(const char *name); // //========================================================================== -FActorInfo *CreateNewActor(const FScriptPosition &sc, FName typeName, FName parentName, FName replaceName, - int DoomEdNum, bool native); +FActorInfo *CreateNewActor(FName typeName, FName parentName, bool native); +void SetReplacement(FActorInfo *info, FName replaceName); void HandleActorFlag(FScanner &sc, Baggage &bag, const char *part1, const char *part2, int mod); void FinishActor(const FScriptPosition &sc, FActorInfo *info, Baggage &bag); @@ -276,7 +287,7 @@ union FPropParam const char *s; }; -typedef void (*PropHandler)(AActor *defaults, Baggage &bag, FPropParam *params); +typedef void (*PropHandler)(AActor *defaults, FActorInfo *info, Baggage &bag, FPropParam *params); enum ECategory { @@ -307,18 +318,18 @@ int MatchString (const char *in, const char **strings); #define DEFINE_PROPERTY_BASE(name, paramlist, clas, cat) \ - static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, Baggage &bag, FPropParam *params); \ + static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, FActorInfo *info, Baggage &bag, FPropParam *params); \ static FPropertyInfo Prop_##name##_##paramlist##_##clas = \ { #name, #paramlist, RUNTIME_CLASS(A##clas), (PropHandler)Handler_##name##_##paramlist##_##clas, cat }; \ MSVC_PSEG FPropertyInfo *infoptr_##name##_##paramlist##_##clas GCC_PSEG = &Prop_##name##_##paramlist##_##clas; \ - static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, Baggage &bag, FPropParam *params) + static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, FActorInfo *info, Baggage &bag, FPropParam *params) #define DEFINE_PREFIXED_PROPERTY_BASE(prefix, name, paramlist, clas, cat) \ - static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, Baggage &bag, FPropParam *params); \ + static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, FActorInfo *info, Baggage &bag, FPropParam *params); \ static FPropertyInfo Prop_##name##_##paramlist##_##clas = \ { #prefix"."#name, #paramlist, RUNTIME_CLASS(A##clas), (PropHandler)Handler_##name##_##paramlist##_##clas, cat }; \ MSVC_PSEG FPropertyInfo *infoptr_##name##_##paramlist##_##clas GCC_PSEG = &Prop_##name##_##paramlist##_##clas; \ - static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, Baggage &bag, FPropParam *params) + static void Handler_##name##_##paramlist##_##clas(A##clas *defaults, FActorInfo *info, Baggage &bag, FPropParam *params) #define DEFINE_PROPERTY(name, paramlist, clas) DEFINE_PROPERTY_BASE(name, paramlist, clas, CAT_PROPERTY) diff --git a/src/thingdef/thingdef_exp.cpp b/src/thingdef/thingdef_exp.cpp index ab4564af87..88fcde9a9b 100644 --- a/src/thingdef/thingdef_exp.cpp +++ b/src/thingdef/thingdef_exp.cpp @@ -336,101 +336,92 @@ static FxExpression *ParseExpression0 (FScanner &sc, const PClass *cls) { return new FxConstant(sc.Float, scpos); } + else if (sc.CheckToken(TK_Random)) + { + FRandom *rng; + + if (sc.CheckToken('[')) + { + sc.MustGetToken(TK_Identifier); + rng = FRandom::StaticFindRNG(sc.String); + sc.MustGetToken(']'); + } + else + { + rng = &pr_exrandom; + } + sc.MustGetToken('('); + + FxExpression *min = ParseExpressionM (sc, cls); + sc.MustGetToken(','); + FxExpression *max = ParseExpressionM (sc, cls); + sc.MustGetToken(')'); + + return new FxRandom(rng, min, max, sc); + } + else if (sc.CheckToken(TK_Random2)) + { + FRandom *rng; + + if (sc.CheckToken('[')) + { + sc.MustGetToken(TK_Identifier); + rng = FRandom::StaticFindRNG(sc.String); + sc.MustGetToken(']'); + } + else + { + rng = &pr_exrandom; + } + + sc.MustGetToken('('); + + FxExpression *mask = NULL; + + if (!sc.CheckToken(')')) + { + mask = ParseExpressionM(sc, cls); + sc.MustGetToken(')'); + } + return new FxRandom2(rng, mask, sc); + } + else if (sc.CheckToken(TK_Abs)) + { + sc.MustGetToken('('); + FxExpression *x = ParseExpressionM (sc, cls); + sc.MustGetToken(')'); + return new FxAbs(x); + } else if (sc.CheckToken(TK_Identifier)) { FName identifier = FName(sc.String); - switch (identifier) + if (sc.CheckToken('(')) { - case NAME_Random: - { - FRandom *rng; - - if (sc.CheckToken('[')) + FArgumentList *args = NULL; + try { - sc.MustGetToken(TK_Identifier); - rng = FRandom::StaticFindRNG(sc.String); - sc.MustGetToken(']'); - } - else - { - rng = &pr_exrandom; - } - sc.MustGetToken('('); - - FxExpression *min = ParseExpressionM (sc, cls); - sc.MustGetToken(','); - FxExpression *max = ParseExpressionM (sc, cls); - sc.MustGetToken(')'); - - return new FxRandom(rng, min, max, sc); - } - break; - - case NAME_Random2: - { - FRandom *rng; - - if (sc.CheckToken('[')) - { - sc.MustGetToken(TK_Identifier); - rng = FRandom::StaticFindRNG(sc.String); - sc.MustGetToken(']'); - } - else - { - rng = &pr_exrandom; - } - - sc.MustGetToken('('); - - FxExpression *mask = NULL; - - if (!sc.CheckToken(')')) - { - mask = ParseExpressionM(sc, cls); - sc.MustGetToken(')'); - } - return new FxRandom2(rng, mask, sc); - } - break; - - case NAME_Abs: - { - sc.MustGetToken('('); - FxExpression *x = ParseExpressionM (sc, cls); - sc.MustGetToken(')'); - return new FxAbs(x); - } - - default: - if (sc.CheckToken('(')) - { - FArgumentList *args = NULL; - try + if (!sc.CheckToken(')')) { - if (!sc.CheckToken(')')) + args = new FArgumentList; + do { - args = new FArgumentList; - do - { - args->Push(ParseExpressionM (sc, cls)); + args->Push(ParseExpressionM (sc, cls)); - } - while (sc.CheckToken(',')); - sc.MustGetToken(')'); } - return new FxFunctionCall(NULL, identifier, args, sc); + while (sc.CheckToken(',')); + sc.MustGetToken(')'); } - catch (...) - { - delete args; - throw; - } - } - else - { - return new FxIdentifier(identifier, sc); + return new FxFunctionCall(NULL, identifier, args, sc); } + catch (...) + { + delete args; + throw; + } + } + else + { + return new FxIdentifier(identifier, sc); } } else diff --git a/src/thingdef/thingdef_expression.cpp b/src/thingdef/thingdef_expression.cpp index dc9c5f2d4d..b8336c2987 100644 --- a/src/thingdef/thingdef_expression.cpp +++ b/src/thingdef/thingdef_expression.cpp @@ -1601,9 +1601,13 @@ ExpVal FxAbs::EvalExpression (AActor *self) FxRandom::FxRandom(FRandom * r, FxExpression *mi, FxExpression *ma, const FScriptPosition &pos) : FxExpression(pos) { + if (mi != NULL && ma != NULL) + { + min = new FxIntCast(mi); + max = new FxIntCast(ma); + } + else min = max = NULL; rng = r; - min = new FxIntCast(mi); - max = new FxIntCast(ma); ValueType = VAL_Int; } @@ -1646,18 +1650,26 @@ FxExpression *FxRandom::Resolve(FCompileContext &ctx) ExpVal FxRandom::EvalExpression (AActor *self) { - int minval = min->EvalExpression (self).GetInt(); - int maxval = max->EvalExpression (self).GetInt(); - ExpVal val; val.Type = VAL_Int; - if (maxval < minval) + if (min != NULL && max != NULL) { - swap (maxval, minval); - } + int minval = min->EvalExpression (self).GetInt(); + int maxval = max->EvalExpression (self).GetInt(); - val.Int = (*rng)(maxval - minval + 1) + minval; + + if (maxval < minval) + { + swap (maxval, minval); + } + + val.Int = (*rng)(maxval - minval + 1) + minval; + } + else + { + val.Int = (*rng)(); + } return val; } diff --git a/src/thingdef/thingdef_parse.cpp b/src/thingdef/thingdef_parse.cpp index 77b6f82a5e..3b6577065d 100644 --- a/src/thingdef/thingdef_parse.cpp +++ b/src/thingdef/thingdef_parse.cpp @@ -145,6 +145,8 @@ FxExpression *ParseParameter(FScanner &sc, PClass *cls, char type, bool constant case 'X': case 'x': + case 'Y': + case 'y': x = ParseExpression (sc, cls); if (constant && !x->isConstant()) { @@ -190,7 +192,7 @@ static void ParseConstant (FScanner &sc, PSymbolTable * symt, PClass *cls) else { sym->ValueType = VAL_Float; - sym->Value = val.GetFloat(); + sym->Float = val.GetFloat(); } if (symt->AddSymbol (sym) == NULL) { @@ -654,7 +656,7 @@ static bool ParsePropertyParams(FScanner &sc, FPropertyInfo *prop, AActor *defau // call the handler try { - prop->Handler(defaults, bag, ¶ms[0]); + prop->Handler(defaults, bag.Info, bag, ¶ms[0]); } catch (CRecoverableError &error) { @@ -713,7 +715,7 @@ static void ParseActorProperty(FScanner &sc, Baggage &bag) } else if (MatchString(propname, statenames) != -1) { - bag.statedef.AddState(propname, CheckState (sc, bag.Info->Class)); + bag.statedef.SetStateLabel(propname, CheckState (sc, bag.Info->Class)); } else { @@ -782,10 +784,13 @@ static void ParseActionDef (FScanner &sc, PClass *cls) { case TK_Bool: case TK_Int: - case TK_Float: type = 'x'; break; + case TK_Float: + type = 'y'; + break; + case TK_Sound: type = 's'; break; case TK_String: type = 't'; break; case TK_Name: type = 't'; break; @@ -940,7 +945,10 @@ static FActorInfo *ParseActorHeader(FScanner &sc, Baggage *bag) try { - FActorInfo *info = CreateNewActor(sc, typeName, parentName, replaceName, DoomEdNum, native); + FActorInfo *info = CreateNewActor(typeName, parentName, native); + info->DoomEdNum = DoomEdNum > 0? DoomEdNum : -1; + SetReplacement(info, replaceName); + ResetBaggage (bag, info->Class->ParentClass); bag->Info = info; bag->Lumpnum = sc.LumpNum; @@ -989,8 +997,6 @@ static void ParseActor(FScanner &sc) break; case TK_Identifier: - // other identifier related checks here - case TK_Projectile: // special case: both keyword and property name ParseActorProperty(sc, bag); break; @@ -1047,18 +1053,6 @@ void ParseDecorate (FScanner &sc) ParseEnum (sc, &GlobalSymbols, NULL); break; - case TK_Pickup: - ParseOldDecoration (sc, DEF_Pickup); - break; - - case TK_Breakable: - ParseOldDecoration (sc, DEF_BreakableDecoration); - break; - - case TK_Projectile: - ParseOldDecoration (sc, DEF_Projectile); - break; - case TK_Native: ParseVariable(sc, &GlobalSymbols, NULL); break; @@ -1079,7 +1073,18 @@ void ParseDecorate (FScanner &sc) ParseActor (sc); break; } - + else if (sc.Compare("PICKUP")) + { + ParseOldDecoration (sc, DEF_Pickup); + } + else if (sc.Compare("BREAKABLE")) + { + ParseOldDecoration (sc, DEF_BreakableDecoration); + } + else if (sc.Compare("PROJECTILE")) + { + ParseOldDecoration (sc, DEF_Projectile); + } default: // without the option of game filters following, anything but an opening brace // here means a syntax error. diff --git a/src/thingdef/thingdef_properties.cpp b/src/thingdef/thingdef_properties.cpp index 3642d268ee..670fae27f0 100644 --- a/src/thingdef/thingdef_properties.cpp +++ b/src/thingdef/thingdef_properties.cpp @@ -152,31 +152,31 @@ DEFINE_INFO_PROPERTY(game, T, Actor) PROP_STRING_PARM(str, 0); if (!stricmp(str, "Doom")) { - bag.Info->GameFilter |= GAME_Doom; + info->GameFilter |= GAME_Doom; } else if (!stricmp(str, "Heretic")) { - bag.Info->GameFilter |= GAME_Heretic; + info->GameFilter |= GAME_Heretic; } else if (!stricmp(str, "Hexen")) { - bag.Info->GameFilter |= GAME_Hexen; + info->GameFilter |= GAME_Hexen; } else if (!stricmp(str, "Raven")) { - bag.Info->GameFilter |= GAME_Raven; + info->GameFilter |= GAME_Raven; } else if (!stricmp(str, "Strife")) { - bag.Info->GameFilter |= GAME_Strife; + info->GameFilter |= GAME_Strife; } else if (!stricmp(str, "Chex")) { - bag.Info->GameFilter |= GAME_Chex; + info->GameFilter |= GAME_Chex; } else if (!stricmp(str, "Any")) { - bag.Info->GameFilter = GAME_Any; + info->GameFilter = GAME_Any; } else { @@ -194,7 +194,7 @@ DEFINE_INFO_PROPERTY(spawnid, I, Actor) { I_Error ("SpawnID must be in the range [0,255]"); } - else bag.Info->SpawnID=(BYTE)id; + else info->SpawnID=(BYTE)id; } //========================================================================== @@ -222,7 +222,7 @@ DEFINE_INFO_PROPERTY(conversationid, IiI, Actor) { I_Error ("ConversationID must be in the range [0,1000]"); } - else StrifeTypes[convid] = bag.Info->Class; + else StrifeTypes[convid] = info->Class; } //========================================================================== @@ -236,9 +236,16 @@ DEFINE_INFO_PROPERTY(conversationid, IiI, Actor) //========================================================================== DEFINE_PROPERTY(skip_super, 0, Actor) { - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(AInventory))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(AInventory))) { - Printf("'skip_super' in definition of inventory item '%s' ignored.", bag.Info->Class->TypeName.GetChars() ); + bag.ScriptPosition.Message(MSG_WARNING, + "'skip_super' in definition of inventory item '%s' ignored.", info->Class->TypeName.GetChars() ); + return; + } + if (bag.StateSet) + { + bag.ScriptPosition.Message(MSG_WARNING, + "'skip_super' must appear before any state definitions."); return; } @@ -256,7 +263,7 @@ DEFINE_PROPERTY(skip_super, 0, Actor) DEFINE_PROPERTY(tag, S, Actor) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaString(AMETA_StrifeName, str); + info->Class->Meta.SetMetaString(AMETA_StrifeName, str); } //========================================================================== @@ -274,7 +281,7 @@ DEFINE_PROPERTY(health, I, Actor) DEFINE_PROPERTY(gibhealth, I, Actor) { PROP_INT_PARM(id, 0); - bag.Info->Class->Meta.SetMetaInt (AMETA_GibHealth, id); + info->Class->Meta.SetMetaInt (AMETA_GibHealth, id); } //========================================================================== @@ -283,7 +290,7 @@ DEFINE_PROPERTY(gibhealth, I, Actor) DEFINE_PROPERTY(woundhealth, I, Actor) { PROP_INT_PARM(id, 0); - bag.Info->Class->Meta.SetMetaInt (AMETA_WoundHealth, id); + info->Class->Meta.SetMetaInt (AMETA_WoundHealth, id); } //========================================================================== @@ -312,8 +319,8 @@ DEFINE_PROPERTY(painchance, ZI, Actor) if (!stricmp(str, "Normal")) painType = NAME_None; else painType=str; - if (bag.Info->PainChances == NULL) bag.Info->PainChances=new PainChanceList; - (*bag.Info->PainChances)[painType] = (BYTE)id; + if (info->PainChances == NULL) info->PainChances=new PainChanceList; + (*info->PainChances)[painType] = (BYTE)id; } } @@ -478,7 +485,7 @@ DEFINE_PROPERTY(activesound, S, Actor) DEFINE_PROPERTY(howlsound, S, Actor) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaInt (AMETA_HowlSound, S_FindSound(str)); + info->Class->Meta.SetMetaInt (AMETA_HowlSound, S_FindSound(str)); } //========================================================================== @@ -559,7 +566,7 @@ DEFINE_PROPERTY(alpha, F, Actor) DEFINE_PROPERTY(obituary, S, Actor) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaString (AMETA_Obituary, str); + info->Class->Meta.SetMetaString (AMETA_Obituary, str); } //========================================================================== @@ -568,7 +575,7 @@ DEFINE_PROPERTY(obituary, S, Actor) DEFINE_PROPERTY(hitobituary, S, Actor) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaString (AMETA_HitObituary, str); + info->Class->Meta.SetMetaString (AMETA_HitObituary, str); } //========================================================================== @@ -576,7 +583,7 @@ DEFINE_PROPERTY(hitobituary, S, Actor) //========================================================================== DEFINE_PROPERTY(donthurtshooter, 0, Actor) { - bag.Info->Class->Meta.SetMetaInt (ACMETA_DontHurtShooter, true); + info->Class->Meta.SetMetaInt (ACMETA_DontHurtShooter, true); } //========================================================================== @@ -585,7 +592,7 @@ DEFINE_PROPERTY(donthurtshooter, 0, Actor) DEFINE_PROPERTY(explosionradius, I, Actor) { PROP_INT_PARM(id, 0); - bag.Info->Class->Meta.SetMetaInt (ACMETA_ExplosionRadius, id); + info->Class->Meta.SetMetaInt (ACMETA_ExplosionRadius, id); } //========================================================================== @@ -594,7 +601,7 @@ DEFINE_PROPERTY(explosionradius, I, Actor) DEFINE_PROPERTY(explosiondamage, I, Actor) { PROP_INT_PARM(id, 0); - bag.Info->Class->Meta.SetMetaInt (ACMETA_ExplosionDamage, id); + info->Class->Meta.SetMetaInt (ACMETA_ExplosionDamage, id); } //========================================================================== @@ -605,7 +612,7 @@ DEFINE_PROPERTY(deathheight, F, Actor) PROP_FIXED_PARM(h, 0); // AActor::Die() uses a height of 0 to mean "cut the height to 1/4", // so if a height of 0 is desired, store it as -1. - bag.Info->Class->Meta.SetMetaFixed (AMETA_DeathHeight, h <= 0 ? -1 : h); + info->Class->Meta.SetMetaFixed (AMETA_DeathHeight, h <= 0 ? -1 : h); } //========================================================================== @@ -615,7 +622,7 @@ DEFINE_PROPERTY(burnheight, F, Actor) { PROP_FIXED_PARM(h, 0); // The note above for AMETA_DeathHeight also applies here. - bag.Info->Class->Meta.SetMetaFixed (AMETA_BurnHeight, h <= 0 ? -1 : h); + info->Class->Meta.SetMetaFixed (AMETA_BurnHeight, h <= 0 ? -1 : h); } //========================================================================== @@ -642,7 +649,7 @@ DEFINE_PROPERTY(meleethreshold, F, Actor) DEFINE_PROPERTY(meleedamage, I, Actor) { PROP_INT_PARM(id, 0); - bag.Info->Class->Meta.SetMetaInt (ACMETA_MeleeDamage, id); + info->Class->Meta.SetMetaInt (ACMETA_MeleeDamage, id); } //========================================================================== @@ -660,7 +667,7 @@ DEFINE_PROPERTY(meleerange, F, Actor) DEFINE_PROPERTY(meleesound, S, Actor) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaInt (ACMETA_MeleeSound, S_FindSound(str)); + info->Class->Meta.SetMetaInt (ACMETA_MeleeSound, S_FindSound(str)); } //========================================================================== @@ -669,7 +676,7 @@ DEFINE_PROPERTY(meleesound, S, Actor) DEFINE_PROPERTY(missiletype, S, Actor) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaInt (ACMETA_MissileName, FName(str)); + info->Class->Meta.SetMetaInt (ACMETA_MissileName, FName(str)); } //========================================================================== @@ -678,7 +685,7 @@ DEFINE_PROPERTY(missiletype, S, Actor) DEFINE_PROPERTY(missileheight, F, Actor) { PROP_FIXED_PARM(id, 0); - bag.Info->Class->Meta.SetMetaFixed (ACMETA_MissileHeight, id); + info->Class->Meta.SetMetaFixed (ACMETA_MissileHeight, id); } //========================================================================== @@ -691,7 +698,7 @@ DEFINE_PROPERTY(translation, L, Actor) if (type == 0) { PROP_INT_PARM(trans, 1); - int max = (gameinfo.gametype==GAME_Strife || (bag.Info->GameFilter&GAME_Strife)) ? 6:2; + int max = (gameinfo.gametype==GAME_Strife || (info->GameFilter&GAME_Strife)) ? 6:2; if (trans < 0 || trans > max) { I_Error ("Translation must be in the range [0,%d]", max); @@ -739,7 +746,7 @@ DEFINE_PROPERTY(bloodcolor, C, Actor) PalEntry pe = color; pe.a = CreateBloodTranslation(pe); - bag.Info->Class->Meta.SetMetaInt (AMETA_BloodColor, pe); + info->Class->Meta.SetMetaInt (AMETA_BloodColor, pe); } @@ -754,21 +761,21 @@ DEFINE_PROPERTY(bloodtype, Sss, Actor) FName blood = str; // normal blood - bag.Info->Class->Meta.SetMetaInt (AMETA_BloodType, blood); + info->Class->Meta.SetMetaInt (AMETA_BloodType, blood); if (PROP_PARM_COUNT > 1) { blood = str1; } // blood splatter - bag.Info->Class->Meta.SetMetaInt (AMETA_BloodType2, blood); + info->Class->Meta.SetMetaInt (AMETA_BloodType2, blood); if (PROP_PARM_COUNT > 2) { blood = str2; } // axe blood - bag.Info->Class->Meta.SetMetaInt (AMETA_BloodType3, blood); + info->Class->Meta.SetMetaInt (AMETA_BloodType3, blood); } //========================================================================== @@ -825,13 +832,13 @@ DEFINE_PROPERTY(damagefactor, SF, Actor) PROP_STRING_PARM(str, 0); PROP_FIXED_PARM(id, 1); - if (bag.Info->DamageFactors == NULL) bag.Info->DamageFactors=new DmgFactors; + if (info->DamageFactors == NULL) info->DamageFactors=new DmgFactors; FName dmgType; if (!stricmp(str, "Normal")) dmgType = NAME_None; else dmgType=str; - (*bag.Info->DamageFactors)[dmgType]=id; + (*info->DamageFactors)[dmgType]=id; } //========================================================================== @@ -867,7 +874,7 @@ DEFINE_PROPERTY(maxdropoffheight, F, Actor) DEFINE_PROPERTY(poisondamage, I, Actor) { PROP_INT_PARM(i, 0); - bag.Info->Class->Meta.SetMetaInt (AMETA_PoisonDamage, i); + info->Class->Meta.SetMetaInt (AMETA_PoisonDamage, i); } //========================================================================== @@ -876,7 +883,7 @@ DEFINE_PROPERTY(poisondamage, I, Actor) DEFINE_PROPERTY(fastspeed, F, Actor) { PROP_FIXED_PARM(i, 0); - bag.Info->Class->Meta.SetMetaFixed (AMETA_FastSpeed, i); + info->Class->Meta.SetMetaFixed (AMETA_FastSpeed, i); } //========================================================================== @@ -885,7 +892,7 @@ DEFINE_PROPERTY(fastspeed, F, Actor) DEFINE_PROPERTY(radiusdamagefactor, F, Actor) { PROP_FIXED_PARM(i, 0); - bag.Info->Class->Meta.SetMetaFixed (AMETA_RDFactor, i); + info->Class->Meta.SetMetaFixed (AMETA_RDFactor, i); } //========================================================================== @@ -894,7 +901,7 @@ DEFINE_PROPERTY(radiusdamagefactor, F, Actor) DEFINE_PROPERTY(cameraheight, F, Actor) { PROP_FIXED_PARM(i, 0); - bag.Info->Class->Meta.SetMetaFixed (AMETA_CameraHeight, i); + info->Class->Meta.SetMetaFixed (AMETA_CameraHeight, i); } //========================================================================== @@ -980,7 +987,7 @@ DEFINE_CLASS_PROPERTY(backpackmaxamount, I, Ammo) DEFINE_CLASS_PROPERTY(dropamount, I, Ammo) { PROP_INT_PARM(i, 0); - bag.Info->Class->Meta.SetMetaInt (AIMETA_DropAmount, i); + info->Class->Meta.SetMetaInt (AIMETA_DropAmount, i); } //========================================================================== @@ -1018,11 +1025,11 @@ DEFINE_CLASS_PROPERTY(saveamount, I, Armor) PROP_INT_PARM(i, 0); // Special case here because this property has to work for 2 unrelated classes - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) { ((ABasicArmorPickup*)defaults)->SaveAmount=i; } - else if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) + else if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) { ((ABasicArmorBonus*)defaults)->SaveAmount=i; } @@ -1039,18 +1046,19 @@ DEFINE_CLASS_PROPERTY(savepercent, F, Armor) { PROP_FIXED_PARM(i, 0); + i = clamp(i, 0, 100*FRACUNIT)/100; // Special case here because this property has to work for 2 unrelated classes - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) { - ((ABasicArmorPickup*)defaults)->SavePercent=i; + ((ABasicArmorPickup*)defaults)->SavePercent = i; } - else if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) + else if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) { - ((ABasicArmorBonus*)defaults)->SavePercent=i; + ((ABasicArmorBonus*)defaults)->SavePercent = i; } else { - I_Error("\"Armor.SavePercent\" requires an actor of type \"Armor\""); + I_Error("\"Armor.SavePercent\" requires an actor of type \"Armor\"\n"); } } @@ -1062,11 +1070,11 @@ DEFINE_CLASS_PROPERTY(maxabsorb, I, Armor) PROP_INT_PARM(i, 0); // Special case here because this property has to work for 2 unrelated classes - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) { ((ABasicArmorPickup*)defaults)->MaxAbsorb = i; } - else if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) + else if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) { ((ABasicArmorBonus*)defaults)->MaxAbsorb = i; } @@ -1084,11 +1092,11 @@ DEFINE_CLASS_PROPERTY(maxfullabsorb, I, Armor) PROP_INT_PARM(i, 0); // Special case here because this property has to work for 2 unrelated classes - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorPickup))) { ((ABasicArmorPickup*)defaults)->MaxFullAbsorb = i; } - else if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) + else if (info->Class->IsDescendantOf(RUNTIME_CLASS(ABasicArmorBonus))) { ((ABasicArmorBonus*)defaults)->MaxFullAbsorb = i; } @@ -1119,10 +1127,11 @@ DEFINE_CLASS_PROPERTY(icon, S, Inventory) { // Don't print warnings if the item is for another game or if this is a shareware IWAD. // Strife's teaser doesn't contain all the icon graphics of the full game. - if ((bag.Info->GameFilter == GAME_Any || bag.Info->GameFilter & gameinfo.gametype) && + if ((info->GameFilter == GAME_Any || info->GameFilter & gameinfo.gametype) && !(gameinfo.flags&GI_SHAREWARE) && Wads.GetLumpFile(bag.Lumpnum) != 0) { - Printf("Icon '%s' for '%s' not found\n", i, bag.Info->Class->TypeName.GetChars()); + bag.ScriptPosition.Message(MSG_WARNING, + "Icon '%s' for '%s' not found\n", i, info->Class->TypeName.GetChars()); } } } @@ -1160,7 +1169,7 @@ DEFINE_CLASS_PROPERTY(pickupflash, S, Inventory) DEFINE_CLASS_PROPERTY(pickupmessage, S, Inventory) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaString(AIMETA_PickupMessage, str); + info->Class->Meta.SetMetaString(AIMETA_PickupMessage, str); } //========================================================================== @@ -1196,7 +1205,7 @@ DEFINE_CLASS_PROPERTY(usesound, S, Inventory) DEFINE_CLASS_PROPERTY(givequest, I, Inventory) { PROP_INT_PARM(i, 0); - bag.Info->Class->Meta.SetMetaInt(AIMETA_GiveQuest, i); + info->Class->Meta.SetMetaInt(AIMETA_GiveQuest, i); } //========================================================================== @@ -1206,8 +1215,8 @@ DEFINE_CLASS_PROPERTY(lowmessage, IS, Health) { PROP_INT_PARM(i, 0); PROP_STRING_PARM(str, 1); - bag.Info->Class->Meta.SetMetaInt(AIMETA_LowHealth, i); - bag.Info->Class->Meta.SetMetaString(AIMETA_LowHealthMessage, str); + info->Class->Meta.SetMetaInt(AIMETA_LowHealth, i); + info->Class->Meta.SetMetaString(AIMETA_LowHealthMessage, str); } //========================================================================== @@ -1225,7 +1234,7 @@ DEFINE_CLASS_PROPERTY(number, I, PuzzleItem) DEFINE_CLASS_PROPERTY(failmessage, S, PuzzleItem) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaString(AIMETA_PuzzFailMessage, str); + info->Class->Meta.SetMetaString(AIMETA_PuzzFailMessage, str); } //========================================================================== @@ -1399,11 +1408,11 @@ DEFINE_CLASS_PROPERTY_PREFIX(powerup, color, C_f, Inventory) int alpha; PalEntry * pBlendColor; - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(APowerup))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(APowerup))) { pBlendColor = &((APowerup*)defaults)->BlendColor; } - else if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(APowerupGiver))) + else if (info->Class->IsDescendantOf(RUNTIME_CLASS(APowerupGiver))) { pBlendColor = &((APowerupGiver*)defaults)->BlendColor; } @@ -1463,11 +1472,11 @@ DEFINE_CLASS_PROPERTY_PREFIX(powerup, duration, I, Inventory) { int *pEffectTics; - if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(APowerup))) + if (info->Class->IsDescendantOf(RUNTIME_CLASS(APowerup))) { pEffectTics = &((APowerup*)defaults)->EffectTics; } - else if (bag.Info->Class->IsDescendantOf(RUNTIME_CLASS(APowerupGiver))) + else if (info->Class->IsDescendantOf(RUNTIME_CLASS(APowerupGiver))) { pEffectTics = &((APowerupGiver*)defaults)->EffectTics; } @@ -1511,7 +1520,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(powerup, type, S, PowerupGiver) DEFINE_CLASS_PROPERTY_PREFIX(player, displayname, S, PlayerPawn) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaString (APMETA_DisplayName, str); + info->Class->Meta.SetMetaString (APMETA_DisplayName, str); } //========================================================================== @@ -1523,7 +1532,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, soundclass, S, PlayerPawn) FString tmp = str; tmp.ReplaceChars (' ', '_'); - bag.Info->Class->Meta.SetMetaString (APMETA_SoundClass, tmp); + info->Class->Meta.SetMetaString (APMETA_SoundClass, tmp); } //========================================================================== @@ -1537,8 +1546,9 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, face, S, PlayerPawn) tmp.ToUpper(); if (tmp.Len() != 3) { - Printf("Invalid face '%s' for '%s';\nSTF replacement codes must be 3 characters.\n", - tmp.GetChars(), bag.Info->Class->TypeName.GetChars ()); + bag.ScriptPosition.Message(MSG_WARNING, + "Invalid face '%s' for '%s';\nSTF replacement codes must be 3 characters.\n", + tmp.GetChars(), info->Class->TypeName.GetChars ()); } bool valid = ( @@ -1548,11 +1558,12 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, face, S, PlayerPawn) ); if (!valid) { - Printf("Invalid face '%s' for '%s';\nSTF replacement codes must be alphanumeric.\n", - tmp.GetChars(), bag.Info->Class->TypeName.GetChars ()); + bag.ScriptPosition.Message(MSG_WARNING, + "Invalid face '%s' for '%s';\nSTF replacement codes must be alphanumeric.\n", + tmp.GetChars(), info->Class->TypeName.GetChars ()); } - bag.Info->Class->Meta.SetMetaString (APMETA_Face, tmp); + info->Class->Meta.SetMetaString (APMETA_Face, tmp); } //========================================================================== @@ -1566,7 +1577,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, colorrange, I_I, PlayerPawn) if (start > end) swap (start, end); - bag.Info->Class->Meta.SetMetaInt (APMETA_ColorRange, (start & 255) | ((end & 255) << 8)); + info->Class->Meta.SetMetaInt (APMETA_ColorRange, (start & 255) | ((end & 255) << 8)); } //========================================================================== @@ -1691,7 +1702,8 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, scoreicon, S, PlayerPawn) defaults->ScoreIcon = TexMan.CheckForTexture(z, FTexture::TEX_MiscPatch); if (!defaults->ScoreIcon.isValid()) { - Printf("Icon '%s' for '%s' not found\n", z, bag.Info->Class->TypeName.GetChars ()); + bag.ScriptPosition.Message(MSG_WARNING, + "Icon '%s' for '%s' not found\n", z, info->Class->TypeName.GetChars ()); } } @@ -1751,7 +1763,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, startitem, S_i, PlayerPawn) DEFINE_CLASS_PROPERTY_PREFIX(player, invulnerabilitymode, S, PlayerPawn) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaInt (APMETA_InvulMode, (FName)str); + info->Class->Meta.SetMetaInt (APMETA_InvulMode, (FName)str); } //========================================================================== @@ -1760,7 +1772,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, invulnerabilitymode, S, PlayerPawn) DEFINE_CLASS_PROPERTY_PREFIX(player, healradiustype, S, PlayerPawn) { PROP_STRING_PARM(str, 0); - bag.Info->Class->Meta.SetMetaInt (APMETA_HealingRadius, (FName)str); + info->Class->Meta.SetMetaInt (APMETA_HealingRadius, (FName)str); } //========================================================================== @@ -1771,7 +1783,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, hexenarmor, FFFFF, PlayerPawn) for (int i=0;i<5;i++) { PROP_FIXED_PARM(val, i); - bag.Info->Class->Meta.SetMetaFixed (APMETA_Hexenarmor0+i, val); + info->Class->Meta.SetMetaFixed (APMETA_Hexenarmor0+i, val); } } diff --git a/src/thingdef/thingdef_states.cpp b/src/thingdef/thingdef_states.cpp index 82c3a44228..69d6a49465 100644 --- a/src/thingdef/thingdef_states.cpp +++ b/src/thingdef/thingdef_states.cpp @@ -63,7 +63,7 @@ // creates an empty parameter list for a parameterized function call // //========================================================================== -static int PrepareStateParameters(FState * state, int numparams, const PClass *cls) +int PrepareStateParameters(FState * state, int numparams, const PClass *cls) { int paramindex=StateParams.Reserve(numparams, cls); state->ParameterIndex = paramindex+1; @@ -76,7 +76,7 @@ static int PrepareStateParameters(FState * state, int numparams, const PClass *c // handles action specials as code pointers // //========================================================================== -bool DoActionSpecials(FScanner &sc, FState & state, bool multistate, int * statecount, Baggage &bag) +bool DoActionSpecials(FScanner &sc, FState & state, Baggage &bag) { int i; int min_args, max_args; @@ -150,15 +150,10 @@ static FString ParseStateString(FScanner &sc) // parses a state block // //========================================================================== -int ParseStates(FScanner &sc, FActorInfo * actor, AActor * defaults, Baggage &bag) +void ParseStates(FScanner &sc, FActorInfo * actor, AActor * defaults, Baggage &bag) { FString statestring; - intptr_t count = 0; FState state; - FState * laststate = NULL; - intptr_t lastlabel = -1; - int minrequiredstate = -1; - int spriteindex = 0; char lastsprite[5]=""; sc.MustGetStringName ("{"); @@ -177,17 +172,7 @@ do_goto: statestring += '+'; statestring += sc.String; } - // copy the text - this must be resolved later! - if (laststate != NULL) - { // Following a state definition: Modify it. - laststate->NextState = (FState*)copystring(statestring); - laststate->DefineFlags = SDF_LABEL; - } - else if (lastlabel >= 0) - { // Following a label: Retarget it. - bag.statedef.RetargetStates (count+1, statestring); - } - else + if (!bag.statedef.SetGotoLabel(statestring)) { sc.ScriptError("GOTO before first state"); } @@ -195,15 +180,7 @@ do_goto: else if (!statestring.CompareNoCase("STOP")) { do_stop: - if (laststate!=NULL) - { - laststate->DefineFlags = SDF_STOP; - } - else if (lastlabel >=0) - { - bag.statedef.RetargetStates (count+1, NULL); - } - else + if (!bag.statedef.SetStop()) { sc.ScriptError("STOP before first state"); continue; @@ -211,35 +188,28 @@ do_stop: } else if (!statestring.CompareNoCase("WAIT") || !statestring.CompareNoCase("FAIL")) { - if (!laststate) + if (!bag.statedef.SetWait()) { sc.ScriptError("%s before first state", sc.String); continue; } - laststate->DefineFlags = SDF_WAIT; } else if (!statestring.CompareNoCase("LOOP")) { - if (!laststate) + if (!bag.statedef.SetLoop()) { sc.ScriptError("LOOP before first state"); continue; } - laststate->NextState=(FState*)(lastlabel+1); - laststate->DefineFlags = SDF_INDEX; } else { - const char * statestrp; - sc.MustGetString(); if (sc.Compare (":")) { - laststate = NULL; do { - lastlabel = count; - bag.statedef.AddState(statestring, (FState *) (count+1), SDF_INDEX); + bag.statedef.AddStateLabel(statestring); statestring = ParseStateString(sc); if (!statestring.CompareNoCase("GOTO")) { @@ -261,25 +231,11 @@ do_stop: sc.ScriptError ("Sprite names must be exactly 4 characters\n"); } - statestring.ToUpper(); - if (strcmp(statestring, lastsprite)) - { - strcpy(lastsprite, statestring); - spriteindex = GetSpriteIndex(lastsprite); - } - - state.sprite = spriteindex; + state.sprite = GetSpriteIndex(statestring); state.Misc1 = state.Misc2 = 0; state.ParameterIndex = 0; sc.MustGetString(); - statestring = (sc.String+1); - statestrp = statestring; - state.Frame = (*sc.String & 223)-'A'; - if ((*sc.String & 223)<'A' || (*sc.String & 223)>']') - { - sc.ScriptError ("Frames must be A-Z, [, \\, or ]"); - state.Frame=0; - } + statestring = sc.String; sc.MustGetNumber(); state.Tics = clamp(sc.Number, -1, 32767); @@ -307,10 +263,8 @@ do_stop: // Make the action name lowercase to satisfy the gperf hashers strlwr (sc.String); - int minreq = count; - if (DoActionSpecials(sc, state, !statestring.IsEmpty(), &minreq, bag)) + if (DoActionSpecials(sc, state, bag)) { - if (minreq>minrequiredstate) minrequiredstate=minreq; goto endofstate; } @@ -360,7 +314,7 @@ do_stop: if ((*params == 'l' || *params == 'L') && sc.CheckNumber()) { // Special case: State label as an offset - if (sc.Number > 0 && strlen(statestring)>0) + if (sc.Number > 0 && statestring.Len() > 1) { sc.ScriptError("You cannot use state jumps commands with a jump offset on multistate definitions\n"); } @@ -371,7 +325,7 @@ do_stop: sc.ScriptError("Negative jump offsets are not allowed"); } - x = new FxStateByIndex(count+v, sc); + x = new FxStateByIndex(bag.statedef.GetStateCount() + v, sc); } else { @@ -420,26 +374,12 @@ do_stop: } sc.UnGet(); endofstate: - bag.StateArray.Push(state); - while (*statestrp) + if (!bag.statedef.AddStates(&state, statestring)) { - int frame=((*statestrp++)&223)-'A'; - - if (frame<0 || frame>28) - { - sc.ScriptError ("Frames must be A-Z, [, \\, or ]"); - frame=0; - } - - state.Frame=(state.Frame&(SF_FULLBRIGHT))|frame; - bag.StateArray.Push(state); - count++; + sc.ScriptError ("Invalid frame character string '%s'", statestring.GetChars()); } - laststate=&bag.StateArray[count]; - count++; } } sc.SetEscape(true); // re-enable escape sequences - return count; } diff --git a/src/v_palette.cpp b/src/v_palette.cpp index 39a2001cdd..6306506f17 100644 --- a/src/v_palette.cpp +++ b/src/v_palette.cpp @@ -441,9 +441,9 @@ void InitPalette () shade = DesaturateColormap[m]; for (c = 0; c < 256; c++) { - intensity = GPalette.BaseColors[c].r * 77 + + intensity = (GPalette.BaseColors[c].r * 77 + GPalette.BaseColors[c].g * 143 + - GPalette.BaseColors[c].b * 37; + GPalette.BaseColors[c].b * 37) / 255; int r = (GPalette.BaseColors[c].r * (31-m) + intensity *m) / 31; int g = (GPalette.BaseColors[c].g * (31-m) + intensity *m) / 31; diff --git a/src/v_palette.h b/src/v_palette.h index 71c2cd0473..0d6643645b 100644 --- a/src/v_palette.h +++ b/src/v_palette.h @@ -34,7 +34,7 @@ #ifndef __V_PALETTE_H__ #define __V_PALETTE_H__ -#include "basictypes.h" +#include "doomtype.h" #define MAKERGB(r,g,b) DWORD(((r)<<16)|((g)<<8)|(b)) #define MAKEARGB(a,r,g,b) DWORD(((a)<<24)|((r)<<16)|((g)<<8)|(b)) diff --git a/src/v_video.cpp b/src/v_video.cpp index 60c65f9ab2..32e70866b7 100644 --- a/src/v_video.cpp +++ b/src/v_video.cpp @@ -454,33 +454,48 @@ int V_GetColorFromString (const DWORD *palette, const char *cstr) } else { - // Treat it as a space-delemited hexadecimal string - for (i = 0; i < 3; ++i) + if (strlen(cstr) == 6) { - // Skip leading whitespace - while (*cstr <= ' ' && *cstr != '\0') + char *p; + int color = strtol(cstr, &p, 16); + if (*p == 0) { - cstr++; + // RRGGBB string + c[0] = (color & 0xff0000) >> 16; + c[1] = (color & 0xff00) >> 8; + c[2] = (color & 0xff); } - // Extract a component and convert it to eight-bit - for (p = 0; *cstr > ' '; ++p, ++cstr) + } + else + { + // Treat it as a space-delemited hexadecimal string + for (i = 0; i < 3; ++i) { - if (p < 2) + // Skip leading whitespace + while (*cstr <= ' ' && *cstr != '\0') { - val[p] = *cstr; + cstr++; } - } - if (p == 0) - { - c[i] = 0; - } - else - { - if (p == 1) + // Extract a component and convert it to eight-bit + for (p = 0; *cstr > ' '; ++p, ++cstr) { - val[1] = val[0]; + if (p < 2) + { + val[p] = *cstr; + } + } + if (p == 0) + { + c[i] = 0; + } + else + { + if (p == 1) + { + val[1] = val[0]; + } + c[i] = ParseHex (val); } - c[i] = ParseHex (val); } } } diff --git a/wadsrc/static/actors/doom/doomarmor.txt b/wadsrc/static/actors/doom/doomarmor.txt index 1af1008caa..0474ee041b 100644 --- a/wadsrc/static/actors/doom/doomarmor.txt +++ b/wadsrc/static/actors/doom/doomarmor.txt @@ -32,8 +32,8 @@ Actor GreenArmor : BasicArmorPickup 2018 Height 16 Inventory.Pickupmessage "$GOTARMOR" Inventory.Icon "ARM1A0" - Armor.Savepercent 33.33333 - Armor.Saveamount 100 + Armor.SavePercent 33.335 + Armor.SaveAmount 100 States { Spawn: diff --git a/wadsrc/static/actors/strife/strifearmor.txt b/wadsrc/static/actors/strife/strifearmor.txt index 3da5e73817..e3b9bafaab 100644 --- a/wadsrc/static/actors/strife/strifearmor.txt +++ b/wadsrc/static/actors/strife/strifearmor.txt @@ -37,7 +37,7 @@ ACTOR LeatherArmor : BasicArmorPickup 2018 Inventory.Icon "I_ARM2" Inventory.PickupMessage "$TXT_LEATHERARMOR" Armor.SaveAmount 100 - Armor.SavePercent 33.33333 + Armor.SavePercent 33.335 Tag "Leather_Armor" States {