• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java IASTDeclarator类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
@Override
protected int visit(IASTSimpleDeclaration node) {
	if (declarationIsTypedef(node)) {
		return PROCESS_SKIP;
	}

	returnedEntity = null;
	node.getDeclSpecifier().accept(this);
	referredType = (Type)returnedEntity;

	for (IASTDeclarator declarator : node.getDeclarators()) {
		// gets the entity and sets its simpleDeclaratorReferredType
		declarator.accept(this);
	}
	referredType = null;

	return PROCESS_SKIP;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:19,代码来源:DeclaredTypeRefVisitor.java


示例2: visitInternal

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
@Override
public int visitInternal(IASTDeclarator node) {
	nodeName = node.getName();
	nodeBnd = resolver.getBinding(nodeName);
	StructuralEntity fmx;

	fmx = ensureVariableKind(nodeBnd, nodeName);
	dico.setVisibility(fmx, currentVisibility);

	/* For attributes (ICPPASTDeclarator) the location is that of the parent AST node, i.e. the declaration
	 * For example, in "int a,b;" the declaration starts at "int" whereas there are 2 declarators: a and b
	 */
	dico.addSourceAnchor(fmx, filename, node.getParent().getFileLocation());

	return PROCESS_SKIP;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:17,代码来源:AttributeGlobalVarDefVisitor.java


示例3: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
@Override
protected int visit(IASTSimpleDeclaration node) {
	if (declarationIsTypedef(node)) {
		// prune typedefs
		return PROCESS_SKIP;
	}

	// K&R style parameter definition
	if (inKnRParams) {
		for (IASTDeclarator decl : node.getDeclarators()) {
			decl.accept(this);
		}
	}

	return PROCESS_CONTINUE;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:17,代码来源:BehaviouralDefVisitor.java


示例4: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
@Override
	public int visit(IASTDeclarator node) {
		/* ********************************************************************************************
		 * BE CAREFULL: The order of the tests is important because choices are not mutually exclusive
		 * ex: ICPPASTFunctionDeclarator is a sub-interface of IASTFunctionDeclarator
		 * ******************************************************************************************** */
		if (node instanceof ICPPASTFunctionDeclarator) {
			return this.visit((ICPPASTFunctionDeclarator)node);
		}
		else if (node instanceof IASTStandardFunctionDeclarator) {
			return this.visit((IASTStandardFunctionDeclarator)node);
		}
		else if (node instanceof ICASTKnRFunctionDeclarator) {
			return this.visit((ICASTKnRFunctionDeclarator)node);
		}
		else if (node instanceof IASTFunctionDeclarator) {
			return this.visit((IASTFunctionDeclarator)node);
		}
		else if (node instanceof IASTFieldDeclarator) {  // actually seems to never occur ???
			return this.visit((IASTFieldDeclarator)node);
		}
/* removed to deal with C attributes: IASTDeclarators
  		else if (node instanceof ICPPASTDeclarator) {
			return this.visit((ICPPASTDeclarator)node);
		}
	replaced by the following:
*/	
  		else {
			return this.visitInternal(node);
		}
	}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:32,代码来源:AbstractDispatcherVisitor.java


示例5: visitInternal

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
/**
 * can be an attribute or K&R style parameter declaration.
 * The inKnRParams is used to tell them apart
 */
@Override
public int visitInternal(IASTDeclarator node) {
	StructuralEntity fmx = null;

	nodeName = node.getName();
	nodeBnd = resolver.getBinding(nodeName);
	if (nodeBnd == null) {
		if (inKnRParams) {
			nodeBnd = resolver.mkStubKey(nodeName, Parameter.class);
		}
		else {
			nodeBnd = resolver.mkStubKey(nodeName, Attribute.class);
		}
	}

	fmx = (StructuralEntity) dico.getEntityByKey(nodeBnd);
	if (fmx != null) {
		fmx.setDeclaredType(referredType);
	}
	else {
	// else forget about it all
	// may happen for example in that case of an argument of a Macro "call", could test that ... ?
	}
	
	return PROCESS_SKIP;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:31,代码来源:DeclaredTypeRefVisitor.java


示例6: visitInternal

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
/**
 * dealing with K&R style parameter declaration
 */
@Override
protected int visitInternal(IASTDeclarator node) {
	if (inKnRParams) {
		nodeName = node.getName();
		nodeBnd = resolver.getBinding(nodeName);
		if (nodeBnd == null) {
			nodeBnd = resolver.mkStubKey(nodeName, Parameter.class);
		}

		privateCreateParameter();
	}

	return PROCESS_SKIP;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:18,代码来源:BehaviouralDefVisitor.java


示例7: resolveDeclarator

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
private ISourceLocation resolveDeclarator(IASTDeclarator node) throws URISyntaxException {
	if (node.getName() == null) {
		out("resolveDeclarator has null name. " + node.getClass().getSimpleName() + ": " + node.getRawSignature());
		return FIXME;
	}

	return resolveBinding(node.getName().resolveBinding());
}
 
开发者ID:cwi-swat,项目名称:clair,代码行数:9,代码来源:BindingsResolver.java


示例8: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
@Override
public int visit(IASTDeclarator declarator) {
	if (declarator instanceof IASTArrayDeclarator)
		visit((IASTArrayDeclarator) declarator);
	// else if (declarator instanceof IASTFieldDeclarator)
	// visit((IASTFieldDeclarator) declarator);
	else if (declarator instanceof IASTFunctionDeclarator)
		visit((IASTFunctionDeclarator) declarator);
	else if (declarator instanceof ICPPASTDeclarator)
		visit((ICPPASTDeclarator) declarator);
	else {
		// TODO: add attributes
		List<IConstructor> pointerOperators = new ArrayList<IConstructor>();
		Stream.of(declarator.getPointerOperators()).forEach(it -> {
			it.accept(this);
			pointerOperators.add(stack.pop());
		});
		IConstructor nestedDeclarator = null;
		if (declarator.getNestedDeclarator() != null) {
			declarator.getNestedDeclarator().accept(this);
			nestedDeclarator = stack.pop();
		}
		declarator.getName().accept(this);
		IConstructor name = stack.pop();
		IConstructor initializer = null;
		if (declarator.getInitializer() == null) {

		} else {
			declarator.getInitializer().accept(this);
			initializer = stack.pop();
		}

		throw new RuntimeException("NYI");
	}
	return PROCESS_ABORT;
}
 
开发者ID:cwi-swat,项目名称:clair,代码行数:37,代码来源:Parser.java


示例9: testExample

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
public void testExample() {
    IASTTranslationUnit translationUnit = parseCPP(getCommentAbove());
    ASTDeclarationsVisitor declarationsVisitor = new ASTDeclarationsVisitor();
    translationUnit.accept(declarationsVisitor);
    IASTSimpleDeclaration simpleDeclaration = (IASTSimpleDeclaration) declarationsVisitor.getDeclarations().get(0);
    assertTrue(simpleDeclaration.getDeclarators()[0] instanceof IASTDeclarator);
    assertEquals("x", simpleDeclaration.getDeclarators()[0].getName().toString());
}
 
开发者ID:magicsky,项目名称:sya,代码行数:9,代码来源:IASTDeclaratorExample.java


示例10: testExample

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
public void testExample() {
    IASTTranslationUnit translationUnit = parseCPP(getCommentAbove());
    IASTSimpleDeclaration simpleDeclaration = (IASTSimpleDeclaration) translationUnit.getDeclarations()[0];
    IASTDeclarator declarator = simpleDeclaration.getDeclarators()[0];
    IASTName name = declarator.getName();
    assertEquals("x", name.toString());
}
 
开发者ID:magicsky,项目名称:sya,代码行数:8,代码来源:IASTNameExample.java


示例11: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
public int visit(IASTDeclarator dtor) {	
//	System.out.println("Visiting dtor: " + dtor.getRawSignature());
//	System.out.println(dtor.getPropertyInParent().getName()+" "+dtor.getName());
          if ("IASTFunctionDefinition.DECLARATOR - IASTFunctionDeclarator for IASTFunctionDefinition".equals(dtor.getPropertyInParent().getName()))
          {
          	curFunc = dtor.getName().toString();
          //	System.out.println(curFunc);
          //	System.out.println(dtor.getName());
          }
          setThings(dtor.getPropertyInParent().getName(),"Visiting dtor: " + dtor.getRawSignature());
	return PROCESS_CONTINUE;
}
 
开发者ID:elenno,项目名称:simtest,代码行数:13,代码来源:ASTVISITOR.java


示例12: visitInternal

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
protected int visitInternal(IASTDeclarator node) {
	return PROCESS_CONTINUE;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:4,代码来源:AbstractDispatcherVisitor.java


示例13: visitInternal

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
protected int visitInternal(IASTDeclarator node) {
	for (@SuppressWarnings("unused") IASTPointerOperator ptr : node.getPointerOperators()) {
		signature += "*";
	}
	return PROCESS_CONTINUE;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:7,代码来源:SignatureBuilderVisitor.java


示例14: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
@Override
protected int visit(IASTSimpleDeclaration node) {
	TypeAlias aliasType = null;
	Type concreteType = null;

	if (declarationIsTypedef(node)) {
		boolean functionPointerTypedef = false;

		if (isFunctionPointerTypedef(node)) {
			concreteType = null;  // TODO create a FunctionPointer special type?
			functionPointerTypedef = true;
		}
		else {
			returnedEntity = null;
			node.getDeclSpecifier().accept(this);
			concreteType = (Type) returnedEntity;
		}

		for (IASTDeclarator declarator : node.getDeclarators()) {
		// this is a typedef, so the declarator(s) should be FAMIXType(s)

			if (functionPointerTypedef) {
				nodeName = declarator.getNestedDeclarator().getName();
			}
			else {
				nodeName = declarator.getName();
			}

			nodeBnd = resolver.getBinding(nodeName);

			if (nodeBnd == null) {
				// create one anyway, assume this is a Type
				nodeBnd = resolver.mkStubKey(nodeName, Type.class);
			}

			aliasType = dico.ensureFamixTypeAlias(nodeBnd, nodeName.toString(), (ContainerEntity)getContext().top());
			aliasType.setIsStub(false);
			aliasType.setParentPackage(currentPackage);
			aliasType.setAliasedType(concreteType);

			declarator.accept(this);
		}
		
		return PROCESS_SKIP;  // typedef already handled
	} 
	// else includes such statement as: "class CAbstractFile;". This needs to be treated (by a reference?)
	return PROCESS_CONTINUE;
}
 
开发者ID:Synectique,项目名称:VerveineC-Cpp,代码行数:49,代码来源:TypeDefVisitor.java


示例15: resolveBinding2

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
public ISourceLocation resolveBinding2(IASTNameOwner node) {
	try {
		if (node instanceof IASTCompositeTypeSpecifier)
			return resolveCompositeTypeSpecifier((IASTCompositeTypeSpecifier) node);
		if (node instanceof IASTDeclarator)
			return resolveDeclarator((IASTDeclarator) node);
		if (node instanceof IASTElaboratedTypeSpecifier)
			return resolveElaboratedTypeSpecifier((IASTElaboratedTypeSpecifier) node);
		if (node instanceof IASTEnumerationSpecifier)
			return resolveEnumerationSpecifier((IASTEnumerationSpecifier) node);
		if (node instanceof IASTEnumerator)
			return resolveEnumerator((IASTEnumerator) node);
		if (node instanceof IASTFieldReference)
			return resolveFieldReference((IASTFieldReference) node);
		if (node instanceof IASTGotoStatement)
			return resolveGotoStatement((IASTGotoStatement) node);
		if (node instanceof IASTIdExpression)
			return resolveIdExpression((IASTIdExpression) node);
		// Discouraged access
		// if (node instanceof IASTInternalNameOwner)
		// return resolveInternalNameOwner((IASTInternalNameOwner) node);
		if (node instanceof IASTLabelStatement)
			return resolveLabelStatement((IASTLabelStatement) node);
		if (node instanceof IASTNamedTypeSpecifier)
			return resolveNamedTypeSpecifier((IASTNamedTypeSpecifier) node);
		if (node instanceof IASTPreprocessorMacroDefinition)// TODO
			return resolvePreprocessorMacroDefinition((IASTPreprocessorMacroDefinition) node);
		if (node instanceof ICPPASTAliasDeclaration)
			return resolveAliasDeclaration((ICPPASTAliasDeclaration) node);
		if (node instanceof ICPPASTBaseSpecifier)
			return resolveBaseSpecifier((ICPPASTBaseSpecifier) node);
		if (node instanceof ICPPASTCapture)
			return resolveCapture((ICPPASTCapture) node);
		if (node instanceof ICPPASTConstructorChainInitializer)
			return resolveConstructorChainInitializer((ICPPASTConstructorChainInitializer) node);
		if (node instanceof ICPPASTNamespaceAlias)
			return resolveNamespaceAlias((ICPPASTNamespaceAlias) node);
		if (node instanceof ICPPASTNamespaceDefinition)
			return resolveNamespaceDefinition((ICPPASTNamespaceDefinition) node);
		if (node instanceof ICPPASTPointerToMember)// TODO
			return resolvePointerToMember((ICPPASTPointerToMember) node);
		if (node instanceof ICPPASTQualifiedName)
			return resolveQualifiedName((ICPPASTQualifiedName) node);
		if (node instanceof ICPPASTSimpleTypeTemplateParameter)
			return resolveSimpleTypeTemplateParameter((ICPPASTSimpleTypeTemplateParameter) node);
		if (node instanceof ICPPASTTemplatedTypeTemplateParameter)// TODO,
																	// NYI
			return resolveTemplatedTypeTemplateParameter((ICPPASTTemplatedTypeTemplateParameter) node);
		if (node instanceof ICPPASTTemplateId)
			return resolveTemplateId((ICPPASTTemplateId) node);
		// Deprecated // TODO?
		// if (node instanceof ICPPASTTypenameExpression)
		// return resolveTypenameExpression((ICPPASTTypenameExpression)
		// node);
		if (node instanceof ICPPASTUsingDeclaration)
			return resolveUsingDeclaration((ICPPASTUsingDeclaration) node);
		if (node instanceof ICPPASTUsingDirective)
			return resolveUsingDirective((ICPPASTUsingDirective) node);
		// if (node instanceof IGNUASTGotoStatement)
		// return resolveGnuGotoStatement((IGNUASTGotoStatement) node);
	} catch (URISyntaxException e) {
		err("Caught URISyntaxException, return UNKNOWN");
		err(e.getMessage());
	}
	return makeBinding("UNKNOWN4", null, null);
}
 
开发者ID:cwi-swat,项目名称:clair,代码行数:67,代码来源:BindingsResolver.java


示例16: visit

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
public int visit(IASTDeclarator declarator) {
       declarators.add(declarator);
	return PROCESS_CONTINUE;
}
 
开发者ID:magicsky,项目名称:sya,代码行数:5,代码来源:ASTDeclaratorsVisitor.java


示例17: leave

import org.eclipse.cdt.core.dom.ast.IASTDeclarator; //导入依赖的package包/类
public int leave(IASTDeclarator dtor) {
	unsetThings();
//	System.out.println("Leaving dtor: " + dtor.getRawSignature());

	return PROCESS_CONTINUE;
}
 
开发者ID:elenno,项目名称:simtest,代码行数:7,代码来源:ASTVISITOR.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java MultiBranchProject类代码示例发布时间:2022-05-22
下一篇:
Java BuildConfig类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap