本文整理汇总了C++中Syntax::getChild方法的典型用法代码示例。如果您正苦于以下问题:C++ Syntax::getChild方法的具体用法?C++ Syntax::getChild怎么用?C++ Syntax::getChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Syntax
的用法示例。
在下文中一共展示了Syntax::getChild方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lookUpFrom
llvm::Optional<Syntax> SyntaxParsingCache::lookUpFrom(const Syntax &Node,
size_t NodeStart,
size_t Position,
SyntaxKind Kind) {
if (nodeCanBeReused(Node, NodeStart, Position, Kind)) {
return Node;
}
// Compute the child's position on the fly
size_t ChildStart = NodeStart;
for (size_t I = 0, E = Node.getNumChildren(); I < E; ++I) {
llvm::Optional<Syntax> Child = Node.getChild(I);
if (!Child.hasValue() || Child->isMissing()) {
continue;
}
auto ChildEnd = ChildStart + Child->getTextLength();
if (ChildStart <= Position && Position < ChildEnd) {
return lookUpFrom(Child.getValue(), ChildStart, Position, Kind);
}
// The next child starts where the previous child ended
ChildStart = ChildEnd;
}
return llvm::None;
}