/// <summary> /// /// </summary> /// <param name="erbDir"></param> /// <param name="displayReport"></param> /// <returns></returns> public bool LoadHeaderFiles(string headerDir, bool displayReport) { List <KeyValuePair <string, string> > headerFiles = Config.GetFiles(headerDir, "*.ERH"); bool noError = true; try { for (int i = 0; i < headerFiles.Count; i++) { string filename = headerFiles[i].Key; string file = headerFiles[i].Value; if (displayReport) { output.PrintSystemLine(filename + "読み込み中・・・"); } noError = loadHeaderFile(file, filename); if (!noError) { break; } System.Windows.Forms.Application.DoEvents(); } } finally { ParserMediator.FlushWarningList(); } return(noError); }
/// <summary> /// </summary> /// <param name="erbDir"></param> /// <param name="displayReport"></param> /// <returns></returns> public bool LoadHeaderFiles(string headerDir, bool displayReport) { var headerFiles = Config.GetFiles(headerDir, "*.ERH"); var noError = true; try { for (var i = 0; i < headerFiles.Count; i++) { var filename = headerFiles[i].Key; var file = headerFiles[i].Value; if (displayReport) { output.PrintSystemLine(filename + "読み込み中・・・"); } noError = loadHeaderFile(file, filename); if (!noError) { break; } Application.DoEvents(); } } finally { ParserMediator.FlushWarningList(); } return(noError); }
/// <summary> /// /// </summary> /// <param name="erbDir"></param> /// <param name="displayReport"></param> /// <returns></returns> public bool LoadHeaderFiles(string headerDir, bool displayReport) { List <KeyValuePair <string, string> > headerFiles = Config.GetFiles(headerDir, "*.ERH"); #if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR headerFiles.AddRange(Config.GetFiles(headerDir, "*.erh")); #endif bool noError = true; dimlines = new Queue <DimLineWC>(); try { for (int i = 0; i < headerFiles.Count; i++) { string filename = headerFiles[i].Key; string file = headerFiles[i].Value; if (displayReport) { output.PrintSystemLine(filename + "読み込み中・・・"); } noError = loadHeaderFile(file, filename); if (!noError) { break; } //System.Windows.Forms.//Application.DoEvents(); } //エラーが起きてる場合でも読み込めてる分だけはチェックする if (dimlines.Count > 0) { //&=でないと、ここで起きたエラーをキャッチできない noError &= analyzeSharpDimLines(); } dimlines.Clear(); } finally { ParserMediator.FlushWarningList(); } return(noError); }
public bool Initialize() { LexicalAnalyzer.UseMacro = false; state = new ProcessState(console); originalState = state; initialiing = true; try { ParserMediator.Initialize(console); if (ParserMediator.HasWarning) { ParserMediator.FlushWarningList(); if (MessageBox.Show("コンフィグファイルに異常があります\nEmueraを終了しますか", "コンフィグエラー", MessageBoxButtons.YesNo) == DialogResult.Yes) { console.PrintSystemLine("コンフィグファイルに異常があり、終了が選択されたため処理を終了しました"); return(false); } } Content.AppContents.LoadContents(); if (Config.UseKeyMacro && !Program.AnalysisMode) { if (File.Exists(Program.ExeDir + "macro.txt")) { if (Config.DisplayReport) { console.PrintSystemLine("macro.txt読み込み中・・・"); } KeyMacro.LoadMacroFile(Program.ExeDir + "macro.txt"); } } if (Config.UseReplaceFile && !Program.AnalysisMode) { if (File.Exists(Program.CsvDir + "_Replace.csv")) { if (Config.DisplayReport) { console.PrintSystemLine("_Replace.csv読み込み中・・・"); } ConfigData.Instance.LoadReplaceFile(Program.CsvDir + "_Replace.csv"); if (ParserMediator.HasWarning) { ParserMediator.FlushWarningList(); if (MessageBox.Show("_Replace.csvに異常があります\nEmueraを終了しますか", "_Replace.csvエラー", MessageBoxButtons.YesNo) == DialogResult.Yes) { console.PrintSystemLine("_Replace.csvに異常があり、終了が選択されたため処理を終了しました"); return(false); } } } } Config.SetReplace(ConfigData.Instance); //ここでBARを設定すれば、いいことに気づいた予感 console.setStBar(Config.DrawLineString); if (Config.UseRenameFile) { if (File.Exists(Program.CsvDir + "_Rename.csv")) { if (Config.DisplayReport || Program.AnalysisMode) { console.PrintSystemLine("_Rename.csv読み込み中・・・"); } ParserMediator.LoadEraExRenameFile(Program.CsvDir + "_Rename.csv"); } else { console.PrintError("csv\\_Rename.csvが見つかりません"); } } if (!Config.DisplayReport) { console.PrintSingleLine(Config.LoadLabel); console.RefreshStrings(true); } gamebase = new GameBase(); if (!gamebase.LoadGameBaseCsv(Program.CsvDir + "GAMEBASE.CSV")) { console.PrintSystemLine("GAMEBASE.CSVの読み込み中に問題が発生したため処理を終了しました"); return(false); } console.SetWindowTitle(gamebase.ScriptWindowTitle); GlobalStatic.GameBaseData = gamebase; ConstantData constant = new ConstantData(gamebase); constant.LoadData(Program.CsvDir, console, Config.DisplayReport); GlobalStatic.ConstantData = constant; TrainName = constant.GetCsvNameList(VariableCode.TRAINNAME); vEvaluator = new VariableEvaluator(gamebase, constant); GlobalStatic.VEvaluator = vEvaluator; idDic = new IdentifierDictionary(vEvaluator.VariableData); GlobalStatic.IdentifierDictionary = idDic; StrForm.Initialize(); VariableParser.Initialize(); exm = new ExpressionMediator(this, vEvaluator, console); GlobalStatic.EMediator = exm; labelDic = new LabelDictionary(); GlobalStatic.LabelDictionary = labelDic; HeaderFileLoader hLoader = new HeaderFileLoader(console, idDic, this); LexicalAnalyzer.UseMacro = false; if (!hLoader.LoadHeaderFiles(Program.ErbDir, Config.DisplayReport)) { console.PrintSystemLine("ERHの読み込み中にエラーが発生したため処理を終了しました"); return(false); } LexicalAnalyzer.UseMacro = idDic.UseMacro(); ErbLoader loader = new ErbLoader(console, exm, this); if (Program.AnalysisMode) { noError = loader.loadErbs(Program.AnalysisFiles, labelDic); } else { noError = loader.LoadErbFiles(Program.ErbDir, Config.DisplayReport, labelDic); } initSystemProcess(); initialiing = false; } catch (Exception e) { handleException(e, null, true); console.PrintSystemLine("初期化中に致命的なエラーが発生したため処理を終了しました"); return(false); } if (labelDic == null) { return(false); } state.Begin(BeginType.TITLE); GC.Collect(); return(true); }