當前位置: 首頁>>代碼示例>>Java>>正文


Java BidiIterator.previous方法代碼示例

本文整理匯總了Java中org.eclipse.xtext.nodemodel.BidiIterator.previous方法的典型用法代碼示例。如果您正苦於以下問題:Java BidiIterator.previous方法的具體用法?Java BidiIterator.previous怎麽用?Java BidiIterator.previous使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.eclipse.xtext.nodemodel.BidiIterator的用法示例。


在下文中一共展示了BidiIterator.previous方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getLinkedMetaModel

import org.eclipse.xtext.nodemodel.BidiIterator; //導入方法依賴的package包/類
private List<EObject> getLinkedMetaModel(TypeRef context, EReference ref, ILeafNode text) throws IllegalNodeException {
	final ICompositeNode parentNode = text.getParent();
	BidiIterator<INode> iterator = parentNode.getChildren().iterator();
	while(iterator.hasPrevious()) {
		INode child = iterator.previous();
		if (child instanceof ILeafNode) {
			ILeafNode leaf = (ILeafNode) child;
			if (text == leaf)
				return super.getLinkedObjects(context, ref, text);
			if (!(leaf.getGrammarElement() instanceof Keyword) && !leaf.isHidden()) {
				IScope scope = getScope(context, ref);
				return XtextMetamodelReferenceHelper.findBestMetamodelForType(
						context, text.getText(), leaf.getText(), scope);
			}
		}
	}
	return Collections.emptyList();
}
 
開發者ID:eclipse,項目名稱:xtext-core,代碼行數:19,代碼來源:XtextLinkingService.java

示例2: getTypeRefName

import org.eclipse.xtext.nodemodel.BidiIterator; //導入方法依賴的package包/類
public static String getTypeRefName(TypeRef typeRef) {
	if (typeRef.getClassifier() != null)
		return typeRef.getClassifier().getName();
	final ICompositeNode node = NodeModelUtils.getNode(typeRef);
	if (node != null) {
		final BidiIterator<INode> leafNodes = node.getAsTreeIterable().iterator();
		while (leafNodes.hasPrevious()) {
			INode previous = leafNodes.previous();
			if (previous instanceof ILeafNode && !((ILeafNode) previous).isHidden()) {
				String result = previous.getText();
				if (result != null && result.startsWith("^")) {
					result = result.substring(1);
				}
				return result;
			}
		}
	}
	return null;
}
 
開發者ID:eclipse,項目名稱:xtext-core,代碼行數:20,代碼來源:GrammarUtil.java

示例3: getLength

import org.eclipse.xtext.nodemodel.BidiIterator; //導入方法依賴的package包/類
@Override
public int getLength() {
	BidiIterator<AbstractNode> iter = basicIterator();
	while(iter.hasPrevious()) {
		INode prev = iter.previous();
		if (prev instanceof ILeafNode && !((ILeafNode) prev).isHidden()) {
			int offset = getOffset();
			return prev.getTotalEndOffset() - offset;
		}
	}
	return getTotalLength();
}
 
開發者ID:eclipse,項目名稱:xtext-core,代碼行數:13,代碼來源:AbstractNode.java

示例4: getEndOffset

import org.eclipse.xtext.nodemodel.BidiIterator; //導入方法依賴的package包/類
/**
 * @since 2.5
 */
@Override
public int getEndOffset() {
	BidiIterator<AbstractNode> iter = basicIterator();
	while(iter.hasPrevious()) {
		INode prev = iter.previous();
		if (prev instanceof ILeafNode && !((ILeafNode) prev).isHidden()) {
			return prev.getTotalEndOffset();
		}
	}
	return getTotalEndOffset();
}
 
開發者ID:eclipse,項目名稱:xtext-core,代碼行數:15,代碼來源:AbstractNode.java

示例5: collectNodesEnclosingChangeRegion

import org.eclipse.xtext.nodemodel.BidiIterator; //導入方法依賴的package包/類
private void collectNodesEnclosingChangeRegion(ICompositeNode parent, Range range,
		List<ICompositeNode> nodesEnclosingRegion) {
	nodesEnclosingRegion.add(parent);
	BidiIterator<INode> iterator = parent.getChildren().iterator();
	while(iterator.hasPrevious()) {
		INode prev = iterator.previous();
		if (prev instanceof ICompositeNode) {
			if (nodeEnclosesRegion((ICompositeNode) prev, range)) {
				collectNodesEnclosingChangeRegion((ICompositeNode) prev, range, nodesEnclosingRegion);
				break;
			}
		}
	}
}
 
開發者ID:eclipse,項目名稱:xtext-core,代碼行數:15,代碼來源:PartialParsingHelper.java

示例6: collectNodesEnclosingChangeRegion

import org.eclipse.xtext.nodemodel.BidiIterator; //導入方法依賴的package包/類
private void collectNodesEnclosingChangeRegion(final ICompositeNode parent, final Range range, final List<ICompositeNode> nodesEnclosingRegion) {
  nodesEnclosingRegion.add(parent);
  BidiIterator<INode> iterator = parent.getChildren().iterator();
  while (iterator.hasPrevious()) {
    INode prev = iterator.previous();
    if (prev instanceof ICompositeNode) {
      if (nodeEnclosesRegion((ICompositeNode) prev, range)) {
        collectNodesEnclosingChangeRegion((ICompositeNode) prev, range, nodesEnclosingRegion);
        break;
      }
    }
  }
}
 
開發者ID:dsldevkit,項目名稱:dsl-devkit,代碼行數:14,代碼來源:FixedPartialParsingHelper.java


注:本文中的org.eclipse.xtext.nodemodel.BidiIterator.previous方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。