diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-07-26 19:03:47 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2023-07-26 19:04:23 +0000 |
commit | 7fa27ce4a07f19b07799a767fc29416f3b625afb (patch) | |
tree | 27825c83636c4de341eb09a74f49f5d38a15d165 /llvm/lib/Support/SuffixTreeNode.cpp | |
parent | e3b557809604d036af6e00c60f012c2025b59a5e (diff) |
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; } |