diff options
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java')
-rw-r--r-- | lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java new file mode 100644 index 00000000000..967d027b60c --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * Copyright (c) 2006, 2008 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings; + +import org.eclipse.cdt.core.dom.ILinkage; +import org.eclipse.cdt.core.dom.ast.DOMException; +import org.eclipse.cdt.core.dom.ast.IScope; +import org.eclipse.cdt.core.dom.ast.IType; +import org.eclipse.cdt.core.dom.ast.ITypedef; +import org.eclipse.cdt.internal.core.dom.Linkage; +import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; +import org.eclipse.core.runtime.PlatformObject; + +public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef, ITypeContainer, ITypeable { + + private IType type; + private String name; + + private IScope scope; + + + public C99Typedef() { + } + + public C99Typedef(IType type) { + this.type = type; + } + + public C99Typedef(IType type, String name) { + this.type = type; + this.name = name; + } + + + public IType getType() { + return type; + } + + public void setType(IType type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public char[] getNameCharArray() { + return name.toCharArray(); + } + + + public boolean isSameType(IType t) { + if(t == this) + return true; + + try { + if(t instanceof ITypedef) + return type.isSameType(((ITypedef)t).getType()); + else + return type.isSameType(t); + } catch(DOMException _) { + return false; + } + } + + public C99Typedef clone() { + try { + C99Typedef clone = (C99Typedef) super.clone(); + clone.type = (IType) type.clone(); + return clone; + } catch (CloneNotSupportedException e) { + assert false; + return null; + } + } + + public ILinkage getLinkage() { + return Linkage.C_LINKAGE; + } + + public IScope getScope() { + return scope; + } + + public void setScope(IScope scope) { + this.scope = scope; + } +} |