diff options
author | antonovvk <antonovvk@yandex-team.ru> | 2022-02-10 16:47:52 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:52 +0300 |
commit | 37de222addabbef336dcaaea5f7c7645a629fc6d (patch) | |
tree | c0748b5dcbade83af788c0abfa89c0383d6b779c /contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl | |
parent | 37a63debdc21e372d99e1808cdd31aecf75018c3 (diff) | |
download | ydb-37de222addabbef336dcaaea5f7c7645a629fc6d.tar.gz |
Restoring authorship annotation for <antonovvk@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl')
-rw-r--r-- | contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl | 316 |
1 files changed, 158 insertions, 158 deletions
diff --git a/contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl b/contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl index 7a98fc106d..096e15db11 100644 --- a/contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl +++ b/contrib/libs/antlr3_cpp_runtime/include/antlr3commontreenodestream.inl @@ -1,14 +1,14 @@ namespace antlr3 { - -template<class ImplTraits> -CommonTreeNodeStream<ImplTraits>::CommonTreeNodeStream(ANTLR_UINT32 hint) -{ + +template<class ImplTraits> +CommonTreeNodeStream<ImplTraits>::CommonTreeNodeStream(ANTLR_UINT32 hint) +{ this->init(hint); -} - -template<class ImplTraits> -void CommonTreeNodeStream<ImplTraits>::init( ANTLR_UINT32 hint ) -{ +} + +template<class ImplTraits> +void CommonTreeNodeStream<ImplTraits>::init( ANTLR_UINT32 hint ) +{ m_root = NULL; m_adaptor = new TreeAdaptorType; // Create the node list map @@ -16,7 +16,7 @@ void CommonTreeNodeStream<ImplTraits>::init( ANTLR_UINT32 hint ) if (hint == 0) hint = DEFAULT_INITIAL_BUFFER_SIZE; m_nodes.reserve( DEFAULT_INITIAL_BUFFER_SIZE ); - + m_p = -1; m_currentNode = NULL; m_previousNode = NULL; @@ -28,27 +28,27 @@ void CommonTreeNodeStream<ImplTraits>::init( ANTLR_UINT32 hint ) m_tail = 0; m_uniqueNavigationNodes = false; m_isRewriter = false; - + CommonTokenType* token = new CommonTokenType(CommonTokenType::TOKEN_UP); token->set_tokText( "UP" ); m_UP.set_token( token ); - + token = new CommonTokenType(CommonTokenType::TOKEN_DOWN); token->set_tokText( "DOWN" ); m_DOWN.set_token( token ); - + token = new CommonTokenType(CommonTokenType::TOKEN_EOF); token->set_tokText( "EOF" ); m_EOF_NODE.set_token( token ); - + token = new CommonTokenType(CommonTokenType::TOKEN_INVALID); token->set_tokText( "INVALID" ); m_EOF_NODE.set_token( token ); -} - -template<class ImplTraits> -CommonTreeNodeStream<ImplTraits>::CommonTreeNodeStream( const CommonTreeNodeStream& ctn ) -{ +} + +template<class ImplTraits> +CommonTreeNodeStream<ImplTraits>::CommonTreeNodeStream( const CommonTreeNodeStream& ctn ) +{ m_root = ctn.m_root; m_adaptor = ctn.m_adaptor; m_nodes.reserve( DEFAULT_INITIAL_BUFFER_SIZE ); @@ -64,23 +64,23 @@ CommonTreeNodeStream<ImplTraits>::CommonTreeNodeStream( const CommonTreeNodeStre m_tail = 0; m_uniqueNavigationNodes = false; m_isRewriter = true; - + m_UP.set_token( ctn.m_UP.get_token() ); m_DOWN.set_token( ctn.m_DOWN.get_token() ); m_EOF_NODE.set_token( ctn.m_EOF_NODE.get_token() ); m_INVALID_NODE.set_token( ctn.m_INVALID_NODE.get_token() ); -} - -template<class ImplTraits> +} + +template<class ImplTraits> CommonTreeNodeStream<ImplTraits>::CommonTreeNodeStream( TreeTypePtr tree, ANTLR_UINT32 hint ) -{ +{ this->init(hint); m_root = tree; -} - -template<class ImplTraits> -CommonTreeNodeStream<ImplTraits>::~CommonTreeNodeStream() -{ +} + +template<class ImplTraits> +CommonTreeNodeStream<ImplTraits>::~CommonTreeNodeStream() +{ // If this is a rewrting stream, then certain resources // belong to the originating node stream and we do not // free them here. @@ -88,9 +88,9 @@ CommonTreeNodeStream<ImplTraits>::~CommonTreeNodeStream() if ( m_isRewriter != true) { delete m_adaptor; - + m_nodeStack.clear(); - + delete m_INVALID_NODE.get_token(); delete m_EOF_NODE.get_token(); delete m_DOWN.get_token(); @@ -98,16 +98,16 @@ CommonTreeNodeStream<ImplTraits>::~CommonTreeNodeStream() } m_nodes.clear(); -} - -template<class ImplTraits> +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<ImplTraits>::_LT(ANTLR_INT32 k) -{ +{ if ( m_p == -1) { this->fillBufferRoot(); } - + if (k < 0) { return this->LB(-k); @@ -116,62 +116,62 @@ typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<Impl { return &(m_INVALID_NODE); } - + // k was a legitimate request, // if (( m_p + k - 1) >= (ANTLR_INT32)(m_nodes.size())) { return &(m_EOF_NODE); } - + return m_nodes[ m_p + k - 1 ]; -} - -template<class ImplTraits> +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<ImplTraits>::getTreeSource() -{ +{ return m_root; -} - -template<class ImplTraits> +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeAdaptorType* CommonTreeNodeStream<ImplTraits>::getTreeAdaptor() -{ +{ return m_adaptor; -} - -template<class ImplTraits> -void CommonTreeNodeStream<ImplTraits>::set_uniqueNavigationNodes(bool uniqueNavigationNodes) -{ +} + +template<class ImplTraits> +void CommonTreeNodeStream<ImplTraits>::set_uniqueNavigationNodes(bool uniqueNavigationNodes) +{ m_uniqueNavigationNodes = uniqueNavigationNodes; -} - -template<class ImplTraits> -typename CommonTreeNodeStream<ImplTraits>::StringType CommonTreeNodeStream<ImplTraits>::toString() -{ - return this->toStringSS(m_root, NULL); -} - -template<class ImplTraits> +} + +template<class ImplTraits> +typename CommonTreeNodeStream<ImplTraits>::StringType CommonTreeNodeStream<ImplTraits>::toString() +{ + return this->toStringSS(m_root, NULL); +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::StringType CommonTreeNodeStream<ImplTraits>::toStringSS(TreeTypePtr start, TreeTypePtr stop) -{ +{ StringType buf; - this->toStringWork(start, stop, buf); - return buf; -} - -template<class ImplTraits> + this->toStringWork(start, stop, buf); + return buf; +} + +template<class ImplTraits> void CommonTreeNodeStream<ImplTraits>::toStringWork(TreeTypePtr start, TreeTypePtr stop, StringType& str) -{ +{ ANTLR_UINT32 n; ANTLR_UINT32 c; StringStreamType buf; - + if (!start->isNilNode() ) { StringType text; - + text = start->toString(); - + if (text.empty()) { buf << ' '; @@ -180,84 +180,84 @@ void CommonTreeNodeStream<ImplTraits>::toStringWork(TreeTypePtr start, TreeTypeP else buf << text; } - + if (start == stop) { return; /* Finished */ } - + n = start->getChildCount(); - + if (n > 0 && ! start->isNilNode() ) { buf << ' '; buf << CommonTokenType::TOKEN_DOWN; } - + for (c = 0; c<n ; c++) { TreeTypePtr child; - + child = start->getChild(c); this->toStringWork(child, stop, buf); } - + if (n > 0 && ! start->isNilNode() ) { buf << ' '; buf << CommonTokenType::TOKEN_UP; } str = buf.str(); -} - -template<class ImplTraits> +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<ImplTraits>::get(ANTLR_INT32 k) -{ +{ if( m_p == -1 ) { this->fillBufferRoot(); } - + return m_nodes[k]; -} - -template<class ImplTraits> +} + +template<class ImplTraits> void CommonTreeNodeStream<ImplTraits>::replaceChildren(TreeTypePtr parent, ANTLR_INT32 startChildIndex, ANTLR_INT32 stopChildIndex, TreeTypePtr t) -{ +{ if (parent != NULL) { TreeAdaptorType* adaptor; adaptor = this->getTreeAdaptor(); adaptor->replaceChildren(parent, startChildIndex, stopChildIndex, t); } -} - -template<class ImplTraits> +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<ImplTraits>::LB(ANTLR_INT32 k) -{ +{ if ( k==0) { return &(m_INVALID_NODE); } - + if ( (m_p - k) < 0) { return &(m_INVALID_NODE); } - + return m_nodes[ m_p - k ]; -} - -template<class ImplTraits> -void CommonTreeNodeStream<ImplTraits>::addNavigationNode(ANTLR_UINT32 ttype) -{ +} + +template<class ImplTraits> +void CommonTreeNodeStream<ImplTraits>::addNavigationNode(ANTLR_UINT32 ttype) +{ TreeTypePtr node; - + node = NULL; - + if (ttype == CommonTokenType::TOKEN_DOWN) { if (this->hasUniqueNavigationNodes() == true) @@ -280,106 +280,106 @@ void CommonTreeNodeStream<ImplTraits>::addNavigationNode(ANTLR_UINT32 ttype) node = &m_UP; } } - + // Now add the node we decided upon. // m_nodes.push_back(node); -} - -template<class ImplTraits> +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<ImplTraits>::newDownNode() -{ +{ TreeTypePtr dNode; - CommonTokenType* token; - + CommonTokenType* token; + token = new CommonTokenType(CommonTokenType::TOKEN_DOWN); token->set_tokText("DOWN"); dNode = new TreeType(token); - return &dNode; -} - -template<class ImplTraits> + return &dNode; +} + +template<class ImplTraits> typename CommonTreeNodeStream<ImplTraits>::TreeTypePtr CommonTreeNodeStream<ImplTraits>::newUpNode() -{ +{ TreeTypePtr uNode; - CommonTokenType* token; - + CommonTokenType* token; + token = new CommonTokenType(CommonTokenType::TOKEN_UP); token->set_tokText("UP"); uNode = new TreeType(token); - return &uNode; - -} - -template<class ImplTraits> -bool CommonTreeNodeStream<ImplTraits>::hasUniqueNavigationNodes() const -{ + return &uNode; + +} + +template<class ImplTraits> +bool CommonTreeNodeStream<ImplTraits>::hasUniqueNavigationNodes() const +{ return m_uniqueNavigationNodes; -} - -template<class ImplTraits> +} + +template<class ImplTraits> ANTLR_UINT32 CommonTreeNodeStream<ImplTraits>::getLookaheadSize() -{ +{ return m_tail < m_head ? (m_lookAheadLength - m_head + m_tail) : (m_tail - m_head); -} - -template<class ImplTraits> +} + +template<class ImplTraits> void CommonTreeNodeStream<ImplTraits>::push(ANTLR_INT32 index) -{ +{ m_nodeStack.push(m_p); // Save current index this->seek(index); -} - -template<class ImplTraits> +} + +template<class ImplTraits> ANTLR_INT32 CommonTreeNodeStream<ImplTraits>::pop() -{ +{ ANTLR_INT32 retVal; - + retVal = m_nodeStack.top(); m_nodeStack.pop(); this->seek(retVal); return retVal; -} - -template<class ImplTraits> +} + +template<class ImplTraits> void CommonTreeNodeStream<ImplTraits>::reset() -{ +{ if ( m_p != -1) { m_p = 0; } BaseType::m_lastMarker = 0; - - + + // Free and reset the node stack only if this is not // a rewriter, which is going to reuse the originating // node streams node stack // if (m_isRewriter != true) m_nodeStack.clear(); -} - -template<class ImplTraits> -void CommonTreeNodeStream<ImplTraits>::fillBufferRoot() -{ +} + +template<class ImplTraits> +void CommonTreeNodeStream<ImplTraits>::fillBufferRoot() +{ // Call the generic buffer routine with the root as the // argument // this->fillBuffer(m_root); m_p = 0; // Indicate we are at buffer start -} - -template<class ImplTraits> +} + +template<class ImplTraits> void CommonTreeNodeStream<ImplTraits>::fillBuffer(TreeTypePtr t) -{ +{ bool nilNode; ANTLR_UINT32 nCount; ANTLR_UINT32 c; - + nilNode = m_adaptor->isNilNode(t); - + // If the supplied node is not a nil (list) node then we // add in the node itself to the vector // @@ -387,17 +387,17 @@ void CommonTreeNodeStream<ImplTraits>::fillBuffer(TreeTypePtr t) { m_nodes.push_back(t); } - + // Only add a DOWN node if the tree is not a nil tree and // the tree does have children. // nCount = t->getChildCount(); - + if (nilNode == false && nCount>0) { this->addNavigationNode( CommonTokenType::TOKEN_DOWN); } - + // We always add any children the tree contains, which is // a recursive call to this function, which will cause similar // recursion and implement a depth first addition @@ -406,7 +406,7 @@ void CommonTreeNodeStream<ImplTraits>::fillBuffer(TreeTypePtr t) { this->fillBuffer( m_adaptor->getChild(t, c)); } - + // If the tree had children and was not a nil (list) node, then we // we need to add an UP node here to match the DOWN node // @@ -414,9 +414,9 @@ void CommonTreeNodeStream<ImplTraits>::fillBuffer(TreeTypePtr t) { this->addNavigationNode(CommonTokenType::TOKEN_UP); } -} - - - } - + + + +} + |