diff options
Diffstat (limited to 'llvm/lib/Support/SuffixTreeNode.cpp')
-rw-r--r-- | llvm/lib/Support/SuffixTreeNode.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/lib/Support/SuffixTreeNode.cpp b/llvm/lib/Support/SuffixTreeNode.cpp new file mode 100644 index 000000000000..113b990fd352 --- /dev/null +++ b/llvm/lib/Support/SuffixTreeNode.cpp @@ -0,0 +1,40 @@ +//===- llvm/ADT/SuffixTreeNode.cpp - Nodes for SuffixTrees --------*- C++ +//-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines nodes for use within a SuffixTree. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/SuffixTreeNode.h" +#include "llvm/Support/Casting.h" + +using namespace llvm; + +unsigned SuffixTreeNode::getStartIdx() const { return StartIdx; } +void SuffixTreeNode::incrementStartIdx(unsigned Inc) { StartIdx += Inc; } +void SuffixTreeNode::setConcatLen(unsigned Len) { ConcatLen = Len; } +unsigned SuffixTreeNode::getConcatLen() const { return ConcatLen; } + +bool SuffixTreeInternalNode::isRoot() const { + return getStartIdx() == EmptyIdx; +} +unsigned SuffixTreeInternalNode::getEndIdx() const { return EndIdx; } +void SuffixTreeInternalNode::setLink(SuffixTreeInternalNode *L) { + assert(L && "Cannot set a null link?"); + Link = L; +} +SuffixTreeInternalNode *SuffixTreeInternalNode::getLink() const { return Link; } + +unsigned SuffixTreeLeafNode::getEndIdx() const { + assert(EndIdx && "EndIdx is empty?"); + return *EndIdx; +} + +unsigned SuffixTreeLeafNode::getSuffixIdx() const { return SuffixIdx; } +void SuffixTreeLeafNode::setSuffixIdx(unsigned Idx) { SuffixIdx = Idx; } |