using NTERA.Engine.Compiler; namespace NTERA.Engine.Runtime { public static class BaseDefinitions { public static FunctionVariable[] DefaultGlobalVariables { get; } = { new FunctionVariable("LOCAL", ValueType.Real), new FunctionVariable("ABL", ValueType.Real), new FunctionVariable("RESULT", ValueType.Real), new FunctionVariable("SOURCE", ValueType.Real), new FunctionVariable("ARG", ValueType.Real), new FunctionVariable("GLOBAL", ValueType.Real), new FunctionVariable("IS", ValueType.Real), new FunctionVariable("CUP", ValueType.Real), new FunctionVariable("CDOWN", ValueType.Real), new FunctionVariable("UP", ValueType.Real), new FunctionVariable("DOWN", ValueType.Real), new FunctionVariable("DOWNBASE", ValueType.Real), new FunctionVariable("COUNT", ValueType.Real), new FunctionVariable("TCVAR", ValueType.Real), new FunctionVariable("CDFLAG", ValueType.Real), new FunctionVariable("ITEMPRICE", ValueType.Real), new FunctionVariable("RANDDATA", ValueType.Real), new FunctionVariable("LINECOUNT", ValueType.Real), new FunctionVariable("ISTIMEOUT", ValueType.Real), new FunctionVariable("__INT_MAX__", ValueType.Real), new FunctionVariable("__INT_MIN__", ValueType.Real), new FunctionVariable("RAND", ValueType.Real), new FunctionVariable("CHARANUM", ValueType.Real), new FunctionVariable("TALENT", ValueType.Real), new FunctionVariable("FLAG", ValueType.Real), new FunctionVariable("TFLAG", ValueType.Real), new FunctionVariable("CFLAG", ValueType.Real), new FunctionVariable("MASTER", ValueType.Real), new FunctionVariable("BASE", ValueType.Real), new FunctionVariable("MAXBASE", ValueType.Real), new FunctionVariable("PALAM", ValueType.Real), new FunctionVariable("TEQUIP", ValueType.Real), new FunctionVariable("EQUIP", ValueType.Real), new FunctionVariable("DAY", ValueType.Real), new FunctionVariable("MARK", ValueType.Real), new FunctionVariable("PALAMLV", ValueType.Real), new FunctionVariable("TARGET", ValueType.Real), new FunctionVariable("PLAYER", ValueType.Real), new FunctionVariable("NOWEX", ValueType.Real), new FunctionVariable("EX", ValueType.Real), new FunctionVariable("STAIN", ValueType.Real), new FunctionVariable("EXP", ValueType.Real), new FunctionVariable("ASSIPLAY", ValueType.Real), new FunctionVariable("ASSI", ValueType.Real), new FunctionVariable("ITEM", ValueType.Real), new FunctionVariable("EXPLV", ValueType.Real), new FunctionVariable("TIME", ValueType.Real), new FunctionVariable("MONEY", ValueType.Real), new FunctionVariable("SELECTCOM", ValueType.Real), new FunctionVariable("PREVCOM", ValueType.Real), new FunctionVariable("NEXTCOM", ValueType.Real), new FunctionVariable("DITEMTYPE", ValueType.Real), new FunctionVariable("NO", ValueType.Real), new FunctionVariable("RELATION", ValueType.Real), new FunctionVariable("JUEL", ValueType.Real), new FunctionVariable("GOTJUEL", ValueType.Real), new FunctionVariable("EJAC", ValueType.Real), new FunctionVariable("BOUGHT", ValueType.Real), new FunctionVariable("ITEMSALES", ValueType.Real), new FunctionVariable("FORWARD", ValueType.Real), //special casing for SORTCHARA new FunctionVariable("BACK", ValueType.Real), //special casing for SORTCHARA new FunctionVariable("LEFT", ValueType.Real), //special casing for __FORMAT new FunctionVariable("RIGHT", ValueType.Real), //special casing for __FORMAT new FunctionVariable("DEBUG_MODE", ValueType.Real), new FunctionVariable("NOITEM", ValueType.Real), new FunctionVariable("A", ValueType.Real), new FunctionVariable("B", ValueType.Real), new FunctionVariable("C", ValueType.Real), new FunctionVariable("D", ValueType.Real), new FunctionVariable("E", ValueType.Real), new FunctionVariable("F", ValueType.Real), new FunctionVariable("G", ValueType.Real), new FunctionVariable("H", ValueType.Real), new FunctionVariable("I", ValueType.Real), new FunctionVariable("J", ValueType.Real), new FunctionVariable("K", ValueType.Real), new FunctionVariable("L", ValueType.Real), new FunctionVariable("M", ValueType.Real), new FunctionVariable("N", ValueType.Real), new FunctionVariable("O", ValueType.Real), new FunctionVariable("P", ValueType.Real), new FunctionVariable("Q", ValueType.Real), new FunctionVariable("R", ValueType.Real), new FunctionVariable("S", ValueType.Real), new FunctionVariable("T", ValueType.Real), new FunctionVariable("U", ValueType.Real), new FunctionVariable("V", ValueType.Real), new FunctionVariable("W", ValueType.Real), new FunctionVariable("X", ValueType.Real), new FunctionVariable("Y", ValueType.Real), new FunctionVariable("Z", ValueType.Real), new FunctionVariable("LOCALS", ValueType.String), new FunctionVariable("ARGS", ValueType.String), new FunctionVariable("RESULTS", ValueType.String), new FunctionVariable("CSTR", ValueType.String), new FunctionVariable("GLOBALS", ValueType.String), new FunctionVariable("NICKNAME", ValueType.String), new FunctionVariable("MASTERNAME", ValueType.String), new FunctionVariable("NAME", ValueType.String), new FunctionVariable("TRAINNAME", ValueType.String), new FunctionVariable("BASENAME", ValueType.String), new FunctionVariable("EQUIPNAME", ValueType.String), new FunctionVariable("TEQUIPNAME", ValueType.String), new FunctionVariable("STAINNAME", ValueType.String), new FunctionVariable("EXNAME", ValueType.String), new FunctionVariable("SOURCENAME", ValueType.String), new FunctionVariable("CALLNAME", ValueType.String), new FunctionVariable("FLAGNAME", ValueType.String), new FunctionVariable("TFLAGNAME", ValueType.String), new FunctionVariable("CFLAGNAME", ValueType.String), new FunctionVariable("TCVARNAME", ValueType.String), new FunctionVariable("STRNAME", ValueType.String), new FunctionVariable("TSTRNAME", ValueType.String), new FunctionVariable("CSTRNAME", ValueType.String), new FunctionVariable("SAVESTRNAME", ValueType.String), new FunctionVariable("CDFLAGNAME", ValueType.String), new FunctionVariable("GLOBALNAME", ValueType.String), new FunctionVariable("GLOBALSNAME", ValueType.String), new FunctionVariable("GAMEBASE_AUTHOR", ValueType.String), new FunctionVariable("GAMEBASE_INFO", ValueType.String), new FunctionVariable("GAMEBASE_YEAR", ValueType.String), new FunctionVariable("GAMEBASE_TITLE", ValueType.String), new FunctionVariable("GAMEBASE_GAMECODE", ValueType.String), new FunctionVariable("GAMEBASE_VERSION", ValueType.String), new FunctionVariable("GAMEBASE_ALLOWVERSION", ValueType.String), new FunctionVariable("GAMEBASE_DEFAULTCHARA", ValueType.String), new FunctionVariable("GAMEBASE_NOITEM", ValueType.String), new FunctionVariable("WINDOW_TITLE", ValueType.String), new FunctionVariable("MONEYLABEL", ValueType.String), new FunctionVariable("DRAWLINESTR", ValueType.String), new FunctionVariable("LASTLOAD_VERSION", ValueType.String), new FunctionVariable("LASTLOAD_NO", ValueType.String), new FunctionVariable("LASTLOAD_TEXT", ValueType.String), new FunctionVariable("SAVEDATA_TEXT", ValueType.String), new FunctionVariable("TSTR", ValueType.String), new FunctionVariable("STR", ValueType.String), new FunctionVariable("SAVESTR", ValueType.String), new FunctionVariable("ABLNAME", ValueType.String), new FunctionVariable("MARKNAME", ValueType.String), new FunctionVariable("TALENTNAME", ValueType.String), new FunctionVariable("ITEMNAME", ValueType.String), new FunctionVariable("PALAMNAME", ValueType.String), new FunctionVariable("EXPNAME", ValueType.String) }; public static FunctionDefinition[] DefaultGlobalFunctions { get; } = { new FunctionDefinition("ABS", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("SQRT", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("SIGN", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVCALLNAME", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOFULL", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOINT", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("RAND", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("VARSIZE", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOSTR", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOUPPER", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOLOWER", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOHALF", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOFULL", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("TOUPPER", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("ISNUMERIC", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("LOG10", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("ESCAPE", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("STRCOUNT", new[] { new FunctionParameter("input"), new FunctionParameter("match") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("MIN", new[] { new FunctionParameter("a", isArrayParameter: true) }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("MAX", new[] { new FunctionParameter("a", isArrayParameter: true) }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("POWER", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETPALAMLV", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETBIT", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETEXPLV", new[] { new FunctionParameter("a"), new FunctionParameter("b") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("UNICODE", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("MATCH", new[] { new FunctionParameter("a"), new FunctionParameter("b"), new FunctionParameter("c"), new FunctionParameter("d") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("INRANGE", new[] { new FunctionParameter("a"), new FunctionParameter("b"), new FunctionParameter("c") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("HE_SHE", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("SUBSTRING", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("STRLENS", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVNAME", new[] { new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVNAME", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVBASE", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVTALENT", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVCFLAG", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVRELATION", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVCSTR", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVEXP", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CSVABL", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETNUM", new[] { new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("FINDCHARA", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("LIMIT", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("SUMCARRAY", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("MAXCARRAY", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("SUBSTRINGU", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("FINDELEMENT", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a") }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GROUPMATCH", new[] { new FunctionParameter("a"), new FunctionParameter("a", isArrayParameter: true) }, new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETTIME", new FunctionParameter[0], new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("SAVENOS", new FunctionParameter[0], new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETCOLOR", new FunctionParameter[0], new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("CURRENTREDRAW", new FunctionParameter[0], new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETFONT", new FunctionParameter[0], new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("GETMILLISECOND", new FunctionParameter[0], new FunctionVariable[0], true, "__GLOBAL"), new FunctionDefinition("__FORMAT", new[] { new FunctionParameter("a"), new FunctionParameter("a"), new FunctionParameter("a"), }, new FunctionVariable[0], true, "__GLOBAL") }; public static Keyword[] DefaultKeywords { get; } = { new Keyword("DRAWLINEFORM", true, true), new Keyword("PRINTFORML", true, true), new Keyword("DATAFORM", true, true), new Keyword("PRINTFORMD", true, true), new Keyword("PRINTFORMDL", true, true), new Keyword("PRINTFORMW", true, true), new Keyword("PRINTFORMDW", true, true), new Keyword("PRINTFORMC", true, true), new Keyword("PRINTFORMLC", true, true), new Keyword("PRINTFORM", true, true), new Keyword("PRINTPLAINFORM", true, true), new Keyword("DEBUGPRINTFORM", true, true), new Keyword("DEBUGPRINTFORML", true, true), new Keyword("THROW", true, true), new Keyword("PRINT", true), new Keyword("PRINTD", true), new Keyword("PRINTDW", true), new Keyword("PRINTDL", true), new Keyword("PRINTW", true), new Keyword("PRINTV", true), new Keyword("PRINTL", true), new Keyword("PRINTLC", true), new Keyword("PRINTC", true), new Keyword("ALIGNMENT", true), new Keyword("CALL", true, true), new Keyword("CUSTOMDRAWLINE", true), new Keyword("GOTO", true), new Keyword("DEBUGPRINTL", true), new Keyword("REUSELASTLINE", true), new Keyword("PRINTPLAIN", true), new Keyword("PRINT_TRAIN_NAME", true), new Keyword("PRINT_STR", true), }; } }