45 lines · cpp
1//===- llvm/ADT/SuffixTreeNode.cpp - Nodes for SuffixTrees --------*- C++2//-*-===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9//10// This file defines nodes for use within a SuffixTree.11//12//===----------------------------------------------------------------------===//13 14#include "llvm/Support/SuffixTreeNode.h"15 16using namespace llvm;17 18unsigned SuffixTreeNode::getStartIdx() const { return StartIdx; }19void SuffixTreeNode::incrementStartIdx(unsigned Inc) { StartIdx += Inc; }20void SuffixTreeNode::setConcatLen(unsigned Len) { ConcatLen = Len; }21unsigned SuffixTreeNode::getConcatLen() const { return ConcatLen; }22 23bool SuffixTreeInternalNode::isRoot() const {24 return getStartIdx() == EmptyIdx;25}26unsigned SuffixTreeInternalNode::getEndIdx() const { return EndIdx; }27void SuffixTreeInternalNode::setLink(SuffixTreeInternalNode *L) {28 assert(L && "Cannot set a null link?");29 Link = L;30}31SuffixTreeInternalNode *SuffixTreeInternalNode::getLink() const { return Link; }32 33unsigned SuffixTreeLeafNode::getEndIdx() const {34 assert(EndIdx && "EndIdx is empty?");35 return *EndIdx;36}37 38unsigned SuffixTreeLeafNode::getSuffixIdx() const { return SuffixIdx; }39void SuffixTreeLeafNode::setSuffixIdx(unsigned Idx) { SuffixIdx = Idx; }40 41unsigned SuffixTreeNode::getLeftLeafIdx() const { return LeftLeafIdx; }42unsigned SuffixTreeNode::getRightLeafIdx() const { return RightLeafIdx; }43void SuffixTreeNode::setLeftLeafIdx(unsigned Idx) { LeftLeafIdx = Idx; }44void SuffixTreeNode::setRightLeafIdx(unsigned Idx) { RightLeafIdx = Idx; }45