当前位置: 首页>>代码示例>>Java>>正文


Java BidiIterator类代码示例

本文整理汇总了Java中org.eclipse.xtext.nodemodel.BidiIterator的典型用法代码示例。如果您正苦于以下问题:Java BidiIterator类的具体用法?Java BidiIterator怎么用?Java BidiIterator使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


BidiIterator类属于org.eclipse.xtext.nodemodel包,在下文中一共展示了BidiIterator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: reverse

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
@Override
public BidiIterable<AbstractNode> reverse() {
	return new BidiIterable<AbstractNode>() {

		@Override
		public BidiIterator<AbstractNode> iterator() {
			BidiIterator<AbstractNode> delegate = BasicNodeIterable.this.iterator(); 
			return new ReversedBidiIterator<AbstractNode>(delegate);
		}

		@Override
		public BidiIterable<AbstractNode> reverse() {
			return BasicNodeIterable.this;
		}
	};
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:17,代码来源:BasicNodeIterable.java

示例2: 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

示例3: 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

示例4: setStyles

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
private void setStyles( IHighlightedPositionAcceptor acceptor, BidiIterator<INode> it, String...styles )
{
	for( String s : styles )
	{
		if( !it.hasNext() ) return;
		INode n = skipWhiteSpace( acceptor, it );
		if( n != null && s != null ) acceptor.addPosition( n.getOffset(), n.getLength(), s );
	}
}
 
开发者ID:jason-lang,项目名称:jason-eclipse-plugin,代码行数:10,代码来源:AslHighlightingCalculator.java

示例5: skipWhiteSpace

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
private INode skipWhiteSpace( IHighlightedPositionAcceptor acceptor, BidiIterator<INode> it )
{
	INode n = null;
	
	while ( it.hasNext() && ( n = it.next() ).getClass() == HiddenLeafNode.class )
		processHiddenNode( acceptor, (HiddenLeafNode)n );
	return n;
}
 
开发者ID:jason-lang,项目名称:jason-eclipse-plugin,代码行数:9,代码来源:AslHighlightingCalculator.java

示例6: 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

示例7: 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

示例8: 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

示例9: findEntryRuleOrRuleCall

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
/**
 * @return either a RuleCall or a ParserRule
 */
public EObject findEntryRuleOrRuleCall(ICompositeNode replaceRootNode) {
	EObject grammarElement = replaceRootNode.getGrammarElement();
	if (grammarElement instanceof CrossReference) {
		grammarElement = ((CrossReference) grammarElement).getTerminal();
	}
	if (GrammarUtil.isParserRuleCall(grammarElement)) {
		return grammarElement;
	}
	else if (grammarElement instanceof ParserRule) {
		return grammarElement;
	}
	else if (grammarElement instanceof Action) {
		BidiIterator<INode> iterator = replaceRootNode.getChildren().iterator();
		while(iterator.hasNext()) {
			INode next = iterator.next();
			if (next instanceof ICompositeNode) {
				return findEntryRuleOrRuleCall((ICompositeNode) next);
			}
		}
		throw new IllegalArgumentException("Invalid parsetree: Action node does not have a Composite child");
	}
	else
		throw new IllegalArgumentException(
				"Entry rule can only be resolved for parser rules, rule calls, cross-references or actions, but tried to resolve for: "
				+ replaceRootNode.getGrammarElement().eClass().getName());
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:30,代码来源:PartialParsingPointers.java

示例10: findContextNode

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
protected INode findContextNode(EObject semanticObject) {
	INode node = NodeModelUtils.findActualNodeFor(semanticObject);
	if (node != null) {
		BidiIterator<INode> nodes = node.getAsTreeIterable().iterator();
		while (nodes.hasNext()) {
			INode next = nodes.next();
			if (next.getGrammarElement() instanceof RuleCall)
				return next;
			if (next.getGrammarElement() instanceof ParserRule
					&& ((ParserRule) next.getGrammarElement()).getType().getClassifier() instanceof EClass)
				return next;
		}
	}
	throw new RuntimeException("no context found");
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:16,代码来源:NodeModelSemanticSequencer.java

示例11: 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

示例12: iterator

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
@Override
public BidiIterator<INode> iterator() {
	return new NodeIterator(startWith);
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:5,代码来源:NodeIterable.java

示例13: iterator

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
@Override
public BidiIterator<T> iterator() {
	return SingletonBidiIterator.<T>create(value);
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:5,代码来源:SingletonBidiIterable.java

示例14: iterator

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
@Override
public BidiIterator<T> iterator() {
	BidiIterator<T> delegate = getDelegate().iterator(); 
	return new ReversedBidiIterator<T>(delegate);
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:6,代码来源:ReversedBidiIterable.java

示例15: instance

import org.eclipse.xtext.nodemodel.BidiIterator; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static <T> BidiIterator<T> instance() {
	return (BidiIterator<T>) INSTANCE;
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:5,代码来源:EmptyBidiIterator.java


注:本文中的org.eclipse.xtext.nodemodel.BidiIterator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。