public bool Inject(string gPath, string fPath, string mPath) { // 获取g.j文件内容 string[] g = File.ReadAllLines(gPath); IList <Variable> globals = new List <Variable>(); foreach (string code in g) { Variable v = new Variable(code); globals.Add(v); } // 获取f.j文件内容 JassFile f = new JassFile(fPath); IList <Function> functions = f.Functions; // 获取m.j文件内容 string[] m = File.ReadAllLines(mPath); List <string> mainCodes = new List <string>(); mainCodes.AddRange(m); // 执行注入 return(Inject(globals, functions, mainCodes)); }
public bool ParseMapJass() { try { string jPath = @"scripts\war3map.j"; MpqStream jassStream = MapFile.OpenFile(jPath); StreamReader streader = new StreamReader(jassStream); IList <string> lines = new List <string>(); while (!streader.EndOfStream) { lines.Add(streader.ReadLine()); } logger.Info($"读取jass文件{lines.Count}行"); JassFile = new JassFile(lines); JassFile.Parse(); logger.Info($"解析jass完成,共计{JassFile.Globals.Variables.Count}个全局变量,{JassFile.Functions.Count}个函数"); return(true); } catch (FileNotFoundException ex) { logger.Error("未找到jass文件:" + ex.Message); } return(false); }