private static void CheckTree(object expected, TreeNode.TokenNode tree) { object[] array = expected as object[]; if(array != null) { CheckTree(array[0], tree); var tokenChildren = tree.GetChildrenTokens(); Assert.AreEqual(array.Length - 1, tokenChildren.Count); for(int i = 1; i < array.Length; ++i) { CheckTree(array[i], tokenChildren[i - 1]); } } else { Assert.AreEqual(expected, tree.Token.Value); } }