public void TestCountNodes() { Node no1 = new Node(new WordToken("1")); Node no2 = new Node(new WordToken("2")); Node no3 = new Node(new WordToken("3")); Node no4 = new Node(new WordToken("4")); Node no5 = new Node(new WordToken("5")); Node no6 = new Node(new WordToken("6")); binaryTree.insertNode(no1, no2); binaryTree.insertNode(binaryTree.root, no3); binaryTree.insertNode(binaryTree.root, no4); binaryTree.insertNode(binaryTree.root, no5); binaryTree.insertNode(binaryTree.root, no6); List <Token> tokenList = new List <Token>(); binaryTree.convertTreeToList(binaryTree.root, ref tokenList); Assert.AreEqual(tokenList.Count, binaryTree.count); Assert.AreNotEqual(tokenList.Count + 1, binaryTree.count); binaryTree = null; Assert.IsNull(binaryTree); binaryTree = new BinaryTreeImp(); Assert.AreEqual(0, binaryTree.count); }
private void _term() { if (next.GetType() == typeof(ParenthesisBeginToken) && (!_tokens.isEmpty())) { Token token = _tokens.getNextToken(); BinaryTree = new BinaryTreeImp(); //reset the binary tree to ready for a new branch build next = _tokens.PeekToken(); _term(); } if (next.GetType() == typeof(ParenthesisEndToken) && (!_tokens.isEmpty())) { Token token = _tokens.getNextToken(); _buildTreeFromAllRemainingBranches(); if (_tokens.isEmpty()) { return; } next = _tokens.PeekToken(); _term(); } if (next.GetType() == typeof(WordToken) && (!_tokens.isEmpty())) { Token wordToken = _tokens.getNextToken(); branchesStack.Push(new Node(wordToken)); next = _tokens.PeekToken(); _term(); } if (_tokens.isEmpty()) { return; } }
public void TestCountNodes() { Node no1 = new Node(new WordToken("1")); Node no2 = new Node(new WordToken("2")); Node no3 = new Node(new WordToken("3")); Node no4 = new Node(new WordToken("4")); Node no5 = new Node(new WordToken("5")); Node no6 = new Node(new WordToken("6")); binaryTree.insertNode(no1, no2); binaryTree.insertNode(binaryTree.root, no3); binaryTree.insertNode(binaryTree.root, no4); binaryTree.insertNode(binaryTree.root, no5); binaryTree.insertNode(binaryTree.root, no6); List<Token> tokenList = new List<Token>(); binaryTree.convertTreeToList(binaryTree.root, ref tokenList); Assert.AreEqual(tokenList.Count, binaryTree.count); Assert.AreNotEqual(tokenList.Count+1, binaryTree.count); binaryTree = null; Assert.IsNull(binaryTree); binaryTree = new BinaryTreeImp(); Assert.AreEqual(0, binaryTree.count); }
public Parser(Tokens tokens) { branchesStack = new Stack<Node>(); BinaryTree = new BinaryTreeImp(); _tokens = tokens; next = _tokens.PeekToken(); if (next.ToString() == "(") _query(); else //NOTE: if the first token is not a parenthesis then all tokens are treated as word tokens, not logic tokens or others _buildTreeWordsOnly(); }
public Parser(Tokens tokens) { branchesStack = new Stack <Node>(); BinaryTree = new BinaryTreeImp(); _tokens = tokens; next = _tokens.PeekToken(); if (next.ToString() == "(") { _query(); } else //NOTE: if the first token is not a parenthesis then all tokens are treated as word tokens, not logic tokens or others { _buildTreeWordsOnly(); } }
public void Init() { binaryTree = new BinaryTreeImp(); }
private void newSimpleTree(Node root, Node leaf) { BinaryTree = new BinaryTreeImp(); BinaryTree.insertNode(root, leaf); branchesStack.Push(BinaryTree.root); }
private void _term() { if (next.GetType() == typeof(ParenthesisBeginToken) && (!_tokens.isEmpty())) { Token token = _tokens.getNextToken(); BinaryTree = new BinaryTreeImp(); //reset the binary tree to ready for a new branch build next = _tokens.PeekToken(); _term(); } if (next.GetType() == typeof(ParenthesisEndToken) && (!_tokens.isEmpty())) { Token token = _tokens.getNextToken(); _buildTreeFromAllRemainingBranches(); if (_tokens.isEmpty()) return; next = _tokens.PeekToken(); _term(); } if (next.GetType() == typeof(WordToken) && (!_tokens.isEmpty())) { Token wordToken = _tokens.getNextToken(); branchesStack.Push(new Node(wordToken)); next = _tokens.PeekToken(); _term(); } if (_tokens.isEmpty()) return; }