using Canon.Core.GrammarParser; namespace Canon.Tests; public static class Utils { public static LinkedList GetLinkedList(string content) { LinkedList list = []; foreach(char c in content) { list.AddLast(c); } return list; } /// /// 验证两棵语法树一致 /// /// 一棵语法树 /// 另一棵语法树 public static void CheckSyntaxRoot(SyntaxNode a, SyntaxNode b) { int length = a.Count(); Assert.Equal(length, b.Count()); using IEnumerator aIter = a.GetEnumerator(), bIter = b.GetEnumerator(); for (int i = 0; i < length; i++) { Assert.True(aIter.MoveNext()); Assert.True(bIter.MoveNext()); Assert.Equal(aIter.Current, bIter.Current); } } }