/// <summary> /// 範囲外エラーをログ出力 /// </summary> /// <param name="categoryName">カテゴリ名</param> /// <param name="itemName">項目名</param> /// <param name="o">対象の値</param> /// <param name="lexer">字句解析器</param> public static void OutOfRange(string categoryName, string itemName, Object o, TextLexer lexer) { Warning("[{0}] Out of range: {1} at {2} ({3} L{4})", categoryName, ObjectHelper.ToString(o), itemName, lexer.FileName, lexer.LineNo); }
/// <summary> /// 閉じ括弧忘れエラーをログ出力する /// </summary> /// <param name="categoryName">カテゴリ名</param> /// <param name="sectionName">セクション名</param> /// <param name="lexer">字句解析器</param> public static void MissingCloseBrace(string categoryName, string sectionName, TextLexer lexer) { Warning("[{0}] Missing close brace: {1} section ({2} L{3})", categoryName, sectionName, lexer.FileName, lexer.LineNo); }
/// <summary> /// セクション解析エラーをログ出力する /// </summary> /// <param name="categoryName">カテゴリ名</param> /// <param name="sectionName">セクション名</param> /// <param name="lexer">字句解析器</param> public static void InvalidSection(string categoryName, string sectionName, TextLexer lexer) { Warning("[{0}] Parse failed: {1} section ({2} L{3})", categoryName, sectionName, lexer.FileName, lexer.LineNo); }
/// <summary> /// クローズ解析エラーをログ出力する /// </summary> /// <param name="categoryName">カテゴリ名</param> /// <param name="clauseName">クローズ名</param> /// <param name="lexer">字句解析器</param> public static void InvalidClause(string categoryName, string clauseName, TextLexer lexer) { Warning("[{0}] Parse failed: {1} clause ({2} L{3})", categoryName, clauseName, lexer.FileName, lexer.LineNo); }
/// <summary> /// 無効トークンエラーをログ出力する /// </summary> /// <param name="categoryName">カテゴリ名</param> /// <param name="token">トークン</param> /// <param name="lexer">字句解析器</param> public static void InvalidToken(string categoryName, Token token, TextLexer lexer) { Warning("[{0}] Invalid token: {1} ({2} L{3})", categoryName, ObjectHelper.ToString(token.Value), lexer.FileName, lexer.LineNo); }
private static void TestTextLexer() { System.Console.WriteLine("/----------------------------------------------/"); System.Console.WriteLine("Test TextLexer..."); string s1 = "'fqqwe'"; string s2 = "'fqw'ewewe'"; string s3 = "eww'"; string s4 = "''"; string s5 = "'qwerew''"; Lexer L1 = new TextLexer(s1); Lexer L2 = new TextLexer(s2); Lexer L3 = new TextLexer(s3); Lexer L4 = new TextLexer(s4); Lexer L5 = new TextLexer(s5); System.Console.WriteLine("Test for " + s1); try { L1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } System.Console.WriteLine("Test for " + s2); try { L2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } System.Console.WriteLine("Test for " + s3); try { L3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } System.Console.WriteLine("Test for " + s4); try { L4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } System.Console.WriteLine("Test for " + s5); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } System.Console.WriteLine("/----------------------------------------------/\n\n"); }