protected LuaFunction(ILuaFile luaFile, BinaryReader reader) { LuaFile = luaFile; Reader = reader; Parse(); }
public Function GetDecompiledFile(ILuaFile luaFile) { var function = new Function(new SymbolTable(), luaFile); DecompileFunction(function, luaFile.MainFunction); return(function); }
public string Decompile(ILuaFile luaFile) { var function = new IR.Function(); GenerateIRHKS(function, luaFile.MainFunction); return(function.ToString()); }
public Function(SymbolTable symbolTable, ILuaFile luaFile) { SymbolTable = symbolTable; LuaFile = luaFile; Parameters = new List <Identifier>(); Closures = new List <Function>(); Instructions = new List <IInstruction>(); Labels = new Dictionary <uint, Label>(); }
private static void ReadSplitFile <T>(bool hasNoKeyTable) where T : ITable { T luaTable = default; ILuaFile <T> luaFile = (ILuaFile <T>)luaTable; ILuaSplitFile <T> luaSplitFile = (ILuaSplitFile <T>)luaTable; string[] arrayFullPath = Directory.GetFiles(luaSplitFile.GetFolderPath()); if (arrayFullPath == null || arrayFullPath.Length == 0) { return; } List <T> list = luaFile.GetModel(); string mainFileName = luaSplitFile.GetMainFileName(); string childFileHeadStart = luaSplitFile.GetChildFileHeadStart(); bool isCheckMainFile = false; for (int fileIndex = 0; fileIndex < arrayFullPath.Length; fileIndex++) { string fullPath = arrayFullPath[fileIndex]; if (!isCheckMainFile && fullPath.Contains(mainFileName)) { isCheckMainFile = true; continue; } if (fullPath.EndsWith(Config.MetaExtension)) { continue; } string luaText = File.ReadAllText(fullPath); if (hasNoKeyTable) { WriteArrayKeyToFileString(ref luaText); } T table = ReadLuaSplitFileTable <T>(luaText, childFileHeadStart); list.Add(table); } }
public LuaJitFunction(ILuaFile luaFile, BinaryReader reader) : base(luaFile, reader) { }
public string Decompile(ILuaFile luaFile) { var function = GetDecompiledFile(luaFile); return(function.ToString()); }
public HavokLuaFunctionT6(ILuaFile luaFile, BinaryReader reader) : base(luaFile, reader) { }
public Function(Function parent, SymbolTable symbolTable, ILuaFile luaFile) : this(symbolTable, luaFile) { Parent = parent; }