public Node splitEdge(Suffix suffix) { remove(); Edge newEdge = new Edge(beginIndex, beginIndex + suffix.getSpan(), suffix.getOriginNode()); newEdge.insert(); newEdge.endNode.setSuffixNode(suffix.getOriginNode()); beginIndex += suffix.getSpan() + 1; startNode = newEdge.getEndNode(); insert(); return newEdge.getEndNode(); }
public void canonize() { if (isImplicit()) { Edge edge = originNode.findEdge(originNode.symbolAt(beginIndex)); int edgeSpan = edge.getSpan(); while (edgeSpan <= getSpan()) { beginIndex += edgeSpan + 1; originNode = edge.getEndNode(); if (beginIndex <= endIndex) { edge = edge.getEndNode().findEdge(originNode.symbolAt(beginIndex)); edgeSpan = edge.getSpan(); } } } }
int span = active.getSpan(); if (Objects.equals(symbolAt(edge.getBeginIndex() + span + 1), symbolAt(endIndex))) { break;
public Node splitEdge(Suffix suffix) { remove(); Edge newEdge = new Edge(beginIndex, beginIndex + suffix.getSpan(), suffix.getOriginNode()); newEdge.insert(); newEdge.endNode.setSuffixNode(suffix.getOriginNode()); beginIndex += suffix.getSpan() + 1; startNode = newEdge.getEndNode(); insert(); return newEdge.getEndNode(); }
public void canonize() { if (isImplicit()) { Edge edge = originNode.findEdge(originNode.symbolAt(beginIndex)); int edgeSpan = edge.getSpan(); while (edgeSpan <= getSpan()) { beginIndex += edgeSpan + 1; originNode = edge.getEndNode(); if (beginIndex <= endIndex) { edge = edge.getEndNode().findEdge(originNode.symbolAt(beginIndex)); edgeSpan = edge.getSpan(); } } } }
int span = active.getSpan(); if (Objects.equal(symbolAt(edge.getBeginIndex() + span + 1), symbolAt(endIndex))) { break;