// functionListのコピーを必要とする呼び出し元が無かったのでコピーしないことにする。 public ProcessState Clone() { ProcessState ret = new ProcessState(console); ret.isClone = true; //どうせ消すからコピー不要 //foreach (CalledFunction func in functionList) // ret.functionList.Add(func.Clone()); ret.currentLine = this.currentLine; //ret.nextLine = this.nextLine; //ret.sequential = this.sequential; ret.sysStateCode = this.sysStateCode; ret.begintype = this.begintype; //ret.MethodReturnValue = this.MethodReturnValue; return(ret); }
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); }
public void BeginTitle() { vEvaluator.ResetData(); state = originalState; state.Begin(BeginType.TITLE); }
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.PrintLine("コンフィグファイルに異常があり、終了が選択されたため処理を終了しました"); return false; } } if (Config.UseKeyMacro && !Program.AnalysisMode) { if (File.Exists(Program.ExeDir + "macro.txt")) { if (Config.DisplayReport) console.PrintLine("macro.txt読み込み中・・・"); KeyMacro.LoadMacroFile(Program.ExeDir + "macro.txt"); } } if (Config.UseReplaceFile && !Program.AnalysisMode) { if (File.Exists(Program.CsvDir + "_Replace.csv")) { if (Config.DisplayReport) console.PrintLine("_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.PrintLine("_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.PrintLine("_Rename.csv読み込み中・・・"); ParserMediator.LoadEraExRenameFile(Program.CsvDir + "_Rename.csv"); } else console.PrintError("csv\\_Rename.csvが見つかりません"); } if (!Config.DisplayReport) { console.PrintLine(Config.LoadLabel); console.RefreshStrings(true); } gamebase = new GameBase(); gamebase.LoadGameBaseCsv(Program.CsvDir + "GAMEBASE.CSV"); 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.PrintLine("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.PrintLine("初期化中に致命的なエラーが発生したため処理を終了しました"); return false; } if (labelDic == null) { return false; } state.Begin(BeginType.TITLE); GC.Collect(); return true; }
// functionListのコピーを必要とする呼び出し元が無かったのでコピーしないことにする。 public ProcessState Clone() { ProcessState ret = new ProcessState(console); ret.isClone = true; //どうせ消すからコピー不要 //foreach (CalledFunction func in functionList) // ret.functionList.Add(func.Clone()); ret.currentLine = this.currentLine; //ret.nextLine = this.nextLine; //ret.sequential = this.sequential; ret.sysStateCode = this.sysStateCode; ret.begintype = this.begintype; //ret.MethodReturnValue = this.MethodReturnValue; return ret; }