void Parser::popOperator(Operator op) { string nodeName = ""; if(op.value == "+") { nodeName = "PLUS_NODE"; } else if(op.value == "-") { nodeName = "MINUS_NODE"; } else if(op.value == "*") { nodeName = "TIMES_NODE"; } TNode* operatorNode = new TNode(nodeName, op.value, line, currentProc); TNode* rightOperand = operandStack.top(); operandStack.pop(); TNode* leftOperand = operandStack.top(); operandStack.pop(); operatorNode->addChild(leftOperand); operatorNode->addChild(rightOperand); operatorStack.pop(); operandStack.push(operatorNode); postfix += " " + op.value; }
void Parser::popOperator(Operator op) { TNode operatorNode = TNode(TNODE_NAMES[PLUS_NODE], "+", loc, 0); TNode* rightOperand = operandStack.top(); operandStack.pop(); TNode* leftOperand = operandStack.top(); operandStack.pop(); operatorNode.addChild(leftOperand); operatorNode.addChild(rightOperand); operatorStack.pop(); operandStack.push(&operatorNode); expressionPostfix += " +"; }
ULONG VorticalLayerCtrl::insertSubItem(ULONG nItem) { TNode* pNode = m_pRoot->getAt(nItem); if (pNode != NULL) { setVirtualSizeCached(FALSE); pNode->addChild(SPTNode(new TNode)); if (pNode->isExpanded()) { CacheInfo chinfo(pNode->getMyLayer() + 1, TRUE); WFX_CONDITION(nItem + 1 <= m_rgCacheInfo.size()); m_rgCacheInfo.insert(m_rgCacheInfo.begin() + nItem + 1, chinfo); } } return m_rgCacheInfo.size(); }