/******************************************************************************* * Copyright (c) 2013 Nathan Ridge * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nathan Ridge - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.core.dom.ast.cpp; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IBinding; /** * AST node for elements of the qualifier in a qualified name. * * A name-specifier can either be a name, or a decltype-specifier. * * Note that a decltype-specifier can only appear as the first * element of a qualifier, but this constraint is not encoded * in the AST. * * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. * @since 5.6 */ public interface ICPPASTNameSpecifier extends IASTNode { public static final ICPPASTNameSpecifier[] EMPTY_NAME_SPECIFIER_ARRAY = {}; @Override public ICPPASTNameSpecifier copy(); @Override public ICPPASTNameSpecifier copy(CopyStyle style); public char[] toCharArray(); /** * If the name-specifier is a name, returns the binding named. * If the name-specifier is a decltype-specifier, return the type * if it's a binding, otherwise return null. */ public IBinding resolveBinding(); /** * Similar to resolveBinding(), but only performs the first phase * of binding resolution for two-phase bindings. */ public IBinding resolvePreBinding(); }