public void TestSuperEasyLang() { List <Token> tokens = EasyLexerLang.SearchTokens(StringToStream("a=2")); tokens.RemoveAll((s) => s.Type.Name.Contains("CH_")); tokens.WriteAll(); Console.WriteLine(SuperEasyParserLang.Check(tokens).Compile); List <string> StackCode = SuperEasyParserLang.Compile(tokens); StackCode.WriteAll(); CollectionAssert.AreEqual(new string[] { "a", "2", "=" }, StackCode); EasyStackLang.Execute(StackCode); Assert.AreEqual(2, EasyStackLang.Variables["a"], double.Epsilon); }
public void TestMethod1() { List <Token> tokens = EasyLexerLang.SearchTokens(StringToStream(Resources.Stack_var_print)); tokens.RemoveAll((s) => s.Type.Name.Contains("CH_")); tokens.WriteAll(); Console.WriteLine(EasyParserLang.Check(tokens).Compile); List <string> StackCode = EasyParserLang.Compile(tokens); StackCode.WriteAll(); CollectionAssert.AreEqual(new string[] { "a", "2", "=", "print" }, StackCode); Console.WriteLine("Выполнение стековой машины..."); EasyStackLang.Execute(StackCode); Console.WriteLine("Выполнение стековой машины завершено."); Assert.AreEqual(1, EasyStackLang.Variables.Count); }