public void TestDoubleFail() { DoubleLexer l = new DoubleLexer(".4"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает .4"); l = new DoubleLexer("4."); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает 4."); l = new DoubleLexer("."); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает ."); l = new DoubleLexer(""); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает пустую строку"); }
public void TestDoubleParse() { DoubleLexer l = new DoubleLexer("123.4"); Assert.IsTrue(l.Parse(), "Не понимает 123.4"); Assert.AreEqual(123.4, l.ParseResult, 0.01, "Неправильно прочитал 123.4"); l = new DoubleLexer("123"); Assert.IsTrue(l.Parse(), "Не понимает 123"); Assert.AreEqual(123, l.ParseResult, 0.01, "Неправильно прочитал 123"); l = new DoubleLexer("0.4"); Assert.IsTrue(l.Parse(), "Не понимает 0.4"); Assert.AreEqual(0.4, l.ParseResult, 0.01, "Неправильно прочитал 0.4"); }
// 2.3) public static void test23() { System.Console.WriteLine("Work DoubleLexer:"); string[] testInput = { "123.45678", "12", ".12", "12.", "", "asdd", "12.213.2" }; Lexer L; for (int i = 0; i < testInput.Length; ++i) { L = new DoubleLexer(testInput[i]); try{ L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } } }
public static void Test() { // Тесты для IntNum System.Console.WriteLine("Tests for IntNum" + "\n"); string input = "0"; System.Console.WriteLine(input + ":"); Lexer L = new IntNum(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = ""; System.Console.WriteLine("Empty string:"); L = new IntNum(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "253"; System.Console.WriteLine(input + ":"); L = new IntNum(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "-271273"; System.Console.WriteLine(input + ":"); L = new IntNum(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "124-1373"; System.Console.WriteLine(input + ":"); L = new IntNum(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для Identifier System.Console.WriteLine("\n" + "Tests for Identifier"); input = ""; System.Console.WriteLine("Empty string:"); L = new Identifier(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a"; System.Console.WriteLine(input + ":"); L = new Identifier(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "bnasbh1221bhiu"; System.Console.WriteLine(input + ":"); L = new Identifier(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "5"; System.Console.WriteLine(input + ":"); L = new Identifier(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "5asbdh28"; System.Console.WriteLine(input + ":"); L = new Identifier(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = ";adf22f"; System.Console.WriteLine(input + ":"); L = new Identifier(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для Int0 System.Console.WriteLine("\n" + "Tests for Int0"); input = ""; System.Console.WriteLine("Empty string:"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "-724"; System.Console.WriteLine(input + ":"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "213651"; System.Console.WriteLine(input + ":"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "abc"; System.Console.WriteLine(input + ":"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "-012"; System.Console.WriteLine(input + ":"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "0"; System.Console.WriteLine(input + ":"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "0931"; System.Console.WriteLine(input + ":"); L = new Int0(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для Alternation System.Console.WriteLine("\n" + "Tests for Alternation"); input = ""; System.Console.WriteLine("Empty string:"); L = new Alternation(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a"; System.Console.WriteLine(input + ":"); L = new Alternation(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "1"; System.Console.WriteLine(input + ":"); L = new Alternation(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "b3n4n6"; System.Console.WriteLine(input + ":"); L = new Alternation(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "m2hr4"; System.Console.WriteLine(input + ":"); L = new Alternation(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "i8s74g"; System.Console.WriteLine(input + ":"); L = new Alternation(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для ListOfLetters System.Console.WriteLine("\n" + "Tests for ListOfLetters"); input = ""; System.Console.WriteLine("Empty string:"); L = new ListOfLetters(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "v;d:n:"; System.Console.WriteLine(input + ":"); L = new ListOfLetters(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = ":n;e;"; System.Console.WriteLine(input + ":"); L = new ListOfLetters(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "m"; System.Console.WriteLine(input + ":"); L = new ListOfLetters(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "fe:n:"; System.Console.WriteLine(input + ":"); L = new ListOfLetters(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "m;:w;w"; System.Console.WriteLine(input + ":"); L = new ListOfLetters(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для ListOfNumbers System.Console.WriteLine("\n" + "Tests for ListOfNumbers"); input = ""; System.Console.WriteLine("Empty string:"); L = new ListOfNumbers(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "12 636 22 1 523"; System.Console.WriteLine(input + ":"); L = new ListOfNumbers(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = " 2 4 9"; System.Console.WriteLine(input + ":"); L = new ListOfNumbers(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "1; 3"; System.Console.WriteLine(input + ":"); L = new ListOfNumbers(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для Groups System.Console.WriteLine("\n" + "Tests for Groups"); input = ""; System.Console.WriteLine("Empty string:"); L = new Groups(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "aa12c23dd1"; System.Console.WriteLine(input + ":"); L = new Groups(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "aa122c23dd1"; System.Console.WriteLine(input + ":"); L = new Groups(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "aa 12v6"; System.Console.WriteLine(input + ":"); L = new Groups(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для DoubleLexer System.Console.WriteLine("\n" + "Tests for DoubleLexer"); input = ""; System.Console.WriteLine("Empty string:"); L = new DoubleLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "3"; System.Console.WriteLine(input + ":"); L = new DoubleLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "5241.32"; System.Console.WriteLine(input + ":"); L = new DoubleLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "7265.27.37"; System.Console.WriteLine(input + ":"); L = new DoubleLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = ".34"; System.Console.WriteLine(input + ":"); L = new DoubleLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "782."; System.Console.WriteLine(input + ":"); L = new DoubleLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для StringInQuotes System.Console.WriteLine("\n" + "Tests for StringInQuotes"); input = ""; System.Console.WriteLine("Empty string:"); L = new StringInQuotes(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'dbj2134;sdh.adsn'"; System.Console.WriteLine(input + ":"); L = new StringInQuotes(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'h6gsf2'sdj1d'"; System.Console.WriteLine(input + ":"); L = new StringInQuotes(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "''"; System.Console.WriteLine(input + ":"); L = new StringInQuotes(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'vqhw2"; System.Console.WriteLine(input + ":"); L = new StringInQuotes(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "annx'"; System.Console.WriteLine(input + ":"); L = new StringInQuotes(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Тесты для Comment System.Console.WriteLine("\n" + "Tests for Comment"); input = ""; System.Console.WriteLine("Empty string:"); L = new Comment(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "/**/"; System.Console.WriteLine(input + ":"); L = new Comment(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "/*jbs.d3d431iu*/"; System.Console.WriteLine(input + ":"); L = new Comment(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "/*4odpus"; System.Console.WriteLine(input + ":"); L = new Comment(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "an;sjsof*/"; System.Console.WriteLine(input + ":"); L = new Comment(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "*/msdc;w"; System.Console.WriteLine(input + ":"); L = new Comment(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } }
public static void Main() { string input = "154216"; Lexer L = new IntLexer(input); try { L.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } //Задание 1 System.Console.WriteLine("\nTask 1:"); input = "0"; Lexer L1 = new NewIntLexer(input); try { L1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = ""; L1 = new NewIntLexer(input); try { L1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "365"; L1 = new NewIntLexer(input); try { L1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "-22"; L1 = new NewIntLexer(input); try { L1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "4-2"; L1 = new NewIntLexer(input); try { L1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } //Задание 2 System.Console.WriteLine("\nTask 2:"); input = ""; Lexer L2 = new IDLexer(input); try { L2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "d"; L2 = new IDLexer(input); try { L2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "da236E0"; L2 = new IDLexer(input); try { L2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "2abcd"; L2 = new IDLexer(input); try { L2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } //Задание 3 System.Console.WriteLine("\nTask 3:"); input = ""; Lexer L3 = new NewIntLexer2(input); try { L3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "25"; L3 = new NewIntLexer2(input); try { L3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "-73060"; L3 = new NewIntLexer2(input); try { L3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "012"; L3 = new NewIntLexer2(input); try { L3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Задание 4 System.Console.WriteLine("\nTask 4:"); input = "a"; Lexer L4 = new LetterDigitLexer(input); try { L4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a1b2c3"; L4 = new LetterDigitLexer(input); try { L4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "aa2b3c"; L4 = new LetterDigitLexer(input); try { L4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "r4c2n"; L4 = new LetterDigitLexer(input); try { L4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "0a9u5"; L4 = new LetterDigitLexer(input); try { L4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Задание 5 System.Console.WriteLine("\nTask 5:"); input = "c"; Lexer L5 = new LettersLexer(input); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "c,a,b"; L5 = new LettersLexer(input); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "c,a;b,5;k"; L5 = new LettersLexer(input); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "ca,g,h"; L5 = new LettersLexer(input); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a;b,c;d;e,"; L5 = new LettersLexer(input); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "e,f,g;h"; L5 = new LettersLexer(input); try { L5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Дополнительное задание 1 System.Console.WriteLine("\nExtra Task 1:"); input = "4"; Lexer LL1 = new DigitsLexer(input); try { LL1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "4 5 2"; LL1 = new DigitsLexer(input); try { LL1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "4,5 2"; LL1 = new DigitsLexer(input); try { LL1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "1 2 3 4 5"; LL1 = new DigitsLexer(input); try { LL1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "1 2 34 5 6"; LL1 = new DigitsLexer(input); try { LL1.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Дополнительное задание 2 System.Console.WriteLine("\nExtra Task 2:"); input = "aa12c23dd1"; Lexer LL2 = new DigitsLettersGroupsLexer(input); try { LL2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "4"; LL2 = new DigitsLettersGroupsLexer(input); try { LL2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "4sd35r5d5t03ab"; LL2 = new DigitsLettersGroupsLexer(input); try { LL2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "ab0k"; LL2 = new DigitsLettersGroupsLexer(input); try { LL2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a4bcd5e"; LL2 = new DigitsLettersGroupsLexer(input); try { LL2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "ab4c,d5e"; LL2 = new DigitsLettersGroupsLexer(input); try { LL2.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Дополнительное задание 3 System.Console.WriteLine("\nExtra Task 3:"); input = "1.0"; Lexer LL3 = new DoubleLexer(input); try { LL3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "4"; LL3 = new DoubleLexer(input); try { LL3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "55."; LL3 = new DoubleLexer(input); try { LL3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = ".3"; LL3 = new DoubleLexer(input); try { LL3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "12.345"; LL3 = new DoubleLexer(input); try { LL3.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Дополнительное задание 4 System.Console.WriteLine("\nExtra Task 4:"); input = "a'bcd'"; Lexer LL4 = new StringLexer(input); try { LL4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'a'"; LL4 = new StringLexer(input); try { LL4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'a'bcd"; LL4 = new StringLexer(input); try { LL4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'a123bcd0'"; LL4 = new StringLexer(input); try { LL4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "'123"; LL4 = new StringLexer(input); try { LL4.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Дополнительное задание 5 System.Console.WriteLine("\nExtra Task 5:"); input = "/*12345"; Lexer LL5 = new CommentLexer(input); try { LL5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "12/*345*/"; LL5 = new CommentLexer(input); try { LL5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "/*1234*/5"; LL5 = new CommentLexer(input); try { LL5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "/*12345*/"; LL5 = new CommentLexer(input); try { LL5.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } // Дополнительное сложное задание System.Console.WriteLine("\nHard Extra Task:"); input = "a225"; Lexer LLL = new IDListLexer(input); try { LLL.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a225.abcd.e00e00.k"; LLL = new IDListLexer(input); try { LLL.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a225.abcd e00e00.k"; LLL = new IDListLexer(input); try { LLL.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } input = "a225..abcd.e00e00.k"; LLL = new IDListLexer(input); try { LLL.Parse(); } catch (LexerException e) { System.Console.WriteLine(e.Message); } }
private static void TestDoubleLexer() { System.Console.WriteLine("/----------------------------------------------/"); System.Console.WriteLine("Test DoubleLexer..."); string s1 = "123.456"; string s2 = ".123"; string s3 = "12345"; string s4 = "12345."; string s5 = "1.2.3"; Lexer L1 = new DoubleLexer(s1); Lexer L2 = new DoubleLexer(s2); Lexer L3 = new DoubleLexer(s3); Lexer L4 = new DoubleLexer(s4); Lexer L5 = new DoubleLexer(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"); }