/// <summary> /// シナリオファイルを読み込む /// </summary> /// <returns>シナリオファイルが読み込めたかどうか</returns> public bool LoadScenario() { //ReadJEncを利用してファイルの読み込み using (Hnx8.ReadJEnc.FileReader reader = new FileReader(this.File)) { Hnx8.ReadJEnc.CharCode c = reader.Read(this.File); Console.WriteLine("-----------------------------------------------------------------------"); Console.WriteLine("Loading ScenarioFile【{0}】...", this.File.Name); string text = reader.Text; if (c is CharCode.Text) { //読み込んだファイルがテキスト Console.WriteLine("Encoding: {0}", c.Name); ScenarioGrammarParser parser = new ScenarioGrammarParser(); try { this.Data = parser.Parse(text); Console.WriteLine("Parse Successful !"); return(true); } catch (NullReferenceException) { Console.Error.WriteLine("Scenario: 【{0}】header mismatched.", this.File.FullName); } } else { //テキストファイルではない Console.Error.WriteLine("【{0}】is not text file.", this.File.FullName); } } Console.Error.WriteLine("Scenario Load Error"); return(false); }
/// <summary> /// シナリオ構文のテストを行います。 /// </summary> /// <param name="input">構文文字列</param> private static void ScenarioGrammarTest(string input) { Console.WriteLine("===================================="); Console.WriteLine("ScenarioGrammar Parser Output:"); ScenarioGrammarParser parser = new ScenarioGrammarParser(); ScenarioData data = null; try { data = parser.Parse(input); } catch (Exception e) { Console.Error.WriteLine(e.Message + ":" + e.StackTrace); } }
/// <summary> /// シナリオファイルを読み込んで解析します。 /// </summary> /// <returns>シナリオが正常に読み込めたかどうか</returns> public bool Load() { if (!File.Exists(FilePath)) { //ファイルが存在しない Console.Error.WriteLine("Scenario: 【{0}】not found.", FileName); return(false); } //ReadJEncを利用してファイルの読み込み FileInfo file = new FileInfo(FilePath); using (Hnx8.ReadJEnc.FileReader reader = new FileReader(file)) { Hnx8.ReadJEnc.CharCode c = reader.Read(file); Console.WriteLine("-----------------------------------------------------------------------"); Console.WriteLine("Loading ScenarioFile【{0}】...", FileName); string text = reader.Text; if (c is CharCode.Text && Regex.IsMatch(text, @"BveTs\s*Scenario", RegexOptions.IgnoreCase)) { //読み込んだファイルがテキスト Console.WriteLine("Encoding: {0}", c.Name); ScenarioGrammarParser parser = new ScenarioGrammarParser(); parser.ErrorListener = ErrorListener; try { this.Data = parser.Parse(text); Console.WriteLine("Parse Successful !"); InitData(); return(true); } catch (NullReferenceException) { Console.Error.WriteLine("Scenario: 【{0}】header mismatched.", FileName); } } else { //テキストファイルではない Console.Error.WriteLine("【{0}】is not text file.", FileName); } } Console.Error.WriteLine("Scenario Load Error"); return(false); }