Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
186
CryptoSource/ScriptEngine-MCF File/string.l
Normal file
186
CryptoSource/ScriptEngine-MCF File/string.l
Normal file
@@ -0,0 +1,186 @@
|
||||
%{
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
Initial code (copied verbatim to the output file)
|
||||
------------------------------------------------------------------ */
|
||||
#include <io.h> // isatty
|
||||
|
||||
#define _LEX_CPP_ // make sure our variables get created
|
||||
#include "lex.h"
|
||||
#include "lexsymb.h"
|
||||
#include "SymbolTable.h"
|
||||
#include <string>
|
||||
|
||||
#ifdef MSVC
|
||||
#define isatty _isatty // for some reason isatty is called _isatty in VC..
|
||||
#endif
|
||||
|
||||
extern "C" int yywrap (); // the yywrap function is declared by the caller
|
||||
|
||||
|
||||
void EatCComment();
|
||||
void EatCppComment();
|
||||
|
||||
extern CSymbolTable * g_pSymbolTable;
|
||||
|
||||
%}
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
Some macros (standard regular expressions)
|
||||
------------------------------------------------------------------ */
|
||||
|
||||
LETTER [a-zA-Z_]
|
||||
DIGIT [0-9]
|
||||
HEXLETTER [a-fA-F0-9]
|
||||
|
||||
HEXVALUE 0[xX]{HEXLETTER}+
|
||||
INTEGERVALUE {DIGIT}+
|
||||
FLOATVALUE {DIGIT}+[.]{DIGIT}+
|
||||
BOOLVALUE true|false
|
||||
STRINGVALUE \"[^\"]*\"
|
||||
|
||||
ID {LETTER}({LETTER}|{DIGIT})*
|
||||
|
||||
WSPACE [ \t]+
|
||||
|
||||
INCLUDE "#include"{WSPACE}*{STRINGVALUE}
|
||||
DEFINEoptPARAM {WSPACE}*","{WSPACE}*{ID}
|
||||
DEFINEopt {WSPACE}*"("{WSPACE}*{ID}{DEFINEoptPARAM}*{WSPACE}*")"
|
||||
DEFINEtokenstring {WSPACE}+{ID}
|
||||
DEFINE "#define"{WSPACE}+{ID}{DEFINEopt}?{DEFINEtokenstring}?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
The lexer rules
|
||||
------------------------------------------------------------------ */
|
||||
|
||||
%%
|
||||
|
||||
{INCLUDE} { return TOKEN_INCLUDE; }
|
||||
{DEFINE} { return TOKEN_DEFINE; }
|
||||
|
||||
{HEXVALUE} { strcpy( yylval.szConstant, yytext );
|
||||
return TOKEN_INTEGERVALUE; }
|
||||
{INTEGERVALUE} { strcpy( yylval.szConstant, yytext );
|
||||
return TOKEN_INTEGERVALUE; }
|
||||
{FLOATVALUE} { strcpy( yylval.szConstant, yytext );
|
||||
return TOKEN_FLOATVALUE; }
|
||||
{BOOLVALUE} { strcpy( yylval.szConstant, yytext );
|
||||
return TOKEN_BOOLVALUE; }
|
||||
{STRINGVALUE} { strcpy( yylval.szConstant, yytext + 1 );
|
||||
yylval.szConstant[ strlen( yylval.szConstant ) - 1 ] = '\0';
|
||||
return TOKEN_STRINGVALUE; }
|
||||
|
||||
"void" { return TOKEN_VOID; }
|
||||
"int" { return TOKEN_INT; }
|
||||
"float" { return TOKEN_FLOAT; }
|
||||
"bool" { return TOKEN_BOOL; }
|
||||
"string" { return TOKEN_STRING; }
|
||||
|
||||
"for" { return TOKEN_FOR; }
|
||||
"while" { return TOKEN_WHILE; }
|
||||
"break" { return TOKEN_BREAK; }
|
||||
"if" { return TOKEN_IF; }
|
||||
"else" { return TOKEN_ELSE; }
|
||||
"switch" { return TOKEN_SWITCH; }
|
||||
"case" { return TOKEN_CASE; }
|
||||
"default" { return TOKEN_DEFAULT; }
|
||||
"continue" { return TOKEN_CONTINUE; }
|
||||
"return" { return TOKEN_RETURN; }
|
||||
|
||||
{ID} { strcpy( yylval.szIdentifier, yytext );
|
||||
return TOKEN_ID; }
|
||||
|
||||
"+" { return TOKEN_ADDITION; }
|
||||
"-" { return TOKEN_SUBTRACTION; }
|
||||
"*" { return TOKEN_MULTIPLICATION; }
|
||||
"/" { return TOKEN_DIVISION; }
|
||||
"%" { return TOKEN_REMINDER; }
|
||||
"=" { return TOKEN_ASSIGNMENT; }
|
||||
"+=" { return TOKEN_COMPOUNDADDITION; }
|
||||
"-=" { return TOKEN_COMPOUNDSUBTRACTION; }
|
||||
"*=" { return TOKEN_COMPOUNDMULTIPLICATION; }
|
||||
"/=" { return TOKEN_COMPOUNDDIVISION; }
|
||||
"%=" { return TOKEN_COMPOUNDREMINDER; }
|
||||
|
||||
|
||||
|
||||
"!" { return TOKEN_NOT; }
|
||||
"<" { return TOKEN_LESSTHAN; }
|
||||
"<=" { return TOKEN_LESSTHANOREQUAL; }
|
||||
">" { return TOKEN_MORETHAN; }
|
||||
">=" { return TOKEN_MORETHANOREQUAL; }
|
||||
"==" { return TOKEN_EQUALITY; }
|
||||
"!=" { return TOKEN_NOTEQUAL; }
|
||||
"++" { return TOKEN_INCREMENT; }
|
||||
"--" { return TOKEN_DECREMENT; }
|
||||
";" { return TOKEN_ENDSTATEMENT; }
|
||||
"(" { return TOKEN_LEFTPARENTHESIS; }
|
||||
")" { return TOKEN_RIGHTPARENTHESIS; }
|
||||
"[" { return TOKEN_LEFTBRACE; }
|
||||
"]" { return TOKEN_RIGHTBRACE; }
|
||||
"{" { return TOKEN_LEFTBRACKET; }
|
||||
"}" { return TOKEN_RIGHTBRACKET; }
|
||||
"," { return TOKEN_COMMA; }
|
||||
":" { return TOKEN_COLON; }
|
||||
|
||||
"||" { return TOKEN_OR; }
|
||||
"&&" { return TOKEN_AND; }
|
||||
|
||||
|
||||
"//" { EatCppComment(); }
|
||||
"/*" { EatCComment(); }
|
||||
\n { yylloc.first_line = ++lineno; }
|
||||
{WSPACE} {} //<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD>
|
||||
|
||||
. { return TOKEN_ERROR; } //<2F><> <20><><EFBFBD><EFBFBD> <20>͵<EFBFBD><CDB5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>!
|
||||
|
||||
%%
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
Additional code (again copied verbatim to the output file)
|
||||
------------------------------------------------------------------ */
|
||||
|
||||
void EatCppComment()
|
||||
{
|
||||
char c;
|
||||
|
||||
while( (c = yyinput()) != '\n' && c != 0 );
|
||||
|
||||
yylloc.first_line = ++lineno;
|
||||
}
|
||||
|
||||
void EatCComment()
|
||||
{
|
||||
char c, c0 = ' ';
|
||||
|
||||
while( true )
|
||||
{
|
||||
c = yyinput();
|
||||
|
||||
if( c0 == '*' && c == '/' )
|
||||
break;
|
||||
|
||||
if( c == '\n' )
|
||||
yylloc.first_line = ++lineno;
|
||||
|
||||
c0 = c;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user