diff options
author | Doug Schaefer | 2003-03-03 15:54:13 +0000 |
---|---|---|
committer | Doug Schaefer | 2003-03-03 15:54:13 +0000 |
commit | a0b7aa2877549afd1fc9810acedcc8052416ead8 (patch) | |
tree | 5dbd52b408382ca458deea500e509ec445d11948 | |
parent | 6ab46192aef41ee000cb9b211e84cd0fd79dd8be (diff) | |
download | org.eclipse.cdt-a0b7aa2877549afd1fc9810acedcc8052416ead8.tar.gz org.eclipse.cdt-a0b7aa2877549afd1fc9810acedcc8052416ead8.tar.xz org.eclipse.cdt-a0b7aa2877549afd1fc9810acedcc8052416ead8.zip |
Patch for John Camelon:
- some of the outline view going with new parser
7 files changed, 23 insertions, 248 deletions
diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java index a6147063eda..da6cd430ecc 100644 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java +++ b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java @@ -4,6 +4,7 @@ import java.util.LinkedList; import java.util.List; import org.eclipse.cdt.core.dom.IScope; +import org.eclipse.cdt.internal.core.newparser.util.Name; public class ClassSpecifier extends TypeSpecifier implements IScope { diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DOMBuilder.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DOMBuilder.java index 91ace1620df..6aa799fcc84 100644 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DOMBuilder.java +++ b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DOMBuilder.java @@ -4,6 +4,8 @@ package org.eclipse.cdt.internal.core.dom; import org.eclipse.cdt.core.dom.IScope; import org.eclipse.cdt.internal.core.newparser.IParserCallback; import org.eclipse.cdt.internal.core.newparser.Token; +import org.eclipse.cdt.internal.core.newparser.util.*; +import org.eclipse.cdt.internal.core.newparser.util.Name; /** * This is the parser callback that creates objects in the DOM. @@ -29,7 +31,7 @@ public class DOMBuilder implements IParserCallback /** * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#argumentsEnd() */ - public void argumentsEnd() { + public void argumentsEnd(Object parameterDeclarationClause) { } /** @@ -104,78 +106,8 @@ public class DOMBuilder implements IParserCallback declSpec = new DeclarationSpecifier(); decl.setDeclSpecifier( declSpec ); } - - switch (specifier.getType()) { - case Token.t_auto: - declSpec.setAuto(true); - break; - case Token.t_register: - declSpec.setRegister(true); - break; - case Token.t_static: - declSpec.setStatic(true); - break; - case Token.t_extern: - declSpec.setExtern(true); - break; - case Token.t_mutable: - declSpec.setMutable(true); - break; - case Token.t_inline: - declSpec.setInline(true); - break; - case Token.t_virtual: - declSpec.setVirtual(true); - break; - case Token.t_explicit: - declSpec.setExplicit(true); - break; - case Token.t_typedef: - declSpec.setTypedef(true); - break; - case Token.t_friend: - declSpec.setFriend(true); - break; - case Token.t_const: - declSpec.setConst(true); - break; - case Token.t_volatile: - declSpec.setVolatile(true); - break; - case Token.t_char: - declSpec.setType(DeclarationSpecifier.t_char); - break; - case Token.t_wchar_t: - declSpec.setType(DeclarationSpecifier.t_wchar_t); - break; - case Token.t_bool: - declSpec.setType(DeclarationSpecifier.t_bool); - break; - case Token.t_short: - declSpec.setShort(true); - break; - case Token.t_int: - declSpec.setType(DeclarationSpecifier.t_int); - break; - case Token.t_long: - declSpec.setLong(true); - break; - case Token.t_signed: - declSpec.setUnsigned(false); - break; - case Token.t_unsigned: - declSpec.setUnsigned(true); - break; - case Token.t_float: - declSpec.setType(DeclarationSpecifier.t_float); - break; - case Token.t_double: - declSpec.setType(DeclarationSpecifier.t_double); - break; - case Token.t_void: - declSpec.setType(DeclarationSpecifier.t_void); - break; - } + + declSpec.setType( specifier ); } /** @@ -223,7 +155,7 @@ public class DOMBuilder implements IParserCallback /** * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#simpleDeclarationBegin(org.eclipse.cdt.internal.core.newparser.Token) */ - public Object simpleDeclarationBegin(Object container, Token firstToken) { + public Object simpleDeclarationBegin(Object container) { SimpleDeclaration decl = new SimpleDeclaration(); ((IScope)container).addDeclaration(decl); return decl; @@ -307,10 +239,10 @@ public class DOMBuilder implements IParserCallback public void baseSpecifierName( Object baseSpecifier ) { - ((BaseSpecifier)baseSpecifier).setName(currName.getName()); + ((BaseSpecifier)baseSpecifier).setName(currName.toString()); } - public Object parameterDeclarationBegin( Object container, Token firstToken ) + public Object parameterDeclarationBegin( Object container ) { ParameterDeclarationClause clause = (ParameterDeclarationClause)container; ParameterDeclaration pd = new ParameterDeclaration(); diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DeclarationSpecifier.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DeclarationSpecifier.java deleted file mode 100644 index 0b872dc017f..00000000000 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/DeclarationSpecifier.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.eclipse.cdt.internal.core.dom; - -import java.util.List; - -/** - * @author jcamelon - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class DeclarationSpecifier { - /** - * @author jcamelon - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ - public interface Container { - - public DeclarationSpecifier getDeclSpecifier(); - - public void setDeclSpecifier( DeclarationSpecifier in ); - - public void addDeclarator(Declarator declarator); - public List getDeclarators(); - - - }; - - // SimpleDeclSpecifier layed out as bit array - // leftmost 5 bits are type - public static final int typeMask = 0x001f; - public static final int isAuto = 0x0020; - public static final int isRegister = 0x0040; - public static final int isStatic = 0x0080; - public static final int isExtern = 0x0100; - public static final int isMutable = 0x0200; - public static final int isInline = 0x0400; - public static final int isVirtual = 0x0800; - public static final int isExplicit = 0x1000; - public static final int isTypedef = 0x2000; - public static final int isFriend = 0x4000; - public static final int isConst = 0x8000; - public static final int isVolatile = 0x10000; - public static final int isUnsigned = 0x20000; - public static final int isShort = 0x40000; - public static final int isLong = 0x80000; - - private int declSpecifierSeq = 0; - public int getDeclSpecifierSeq() { return declSpecifierSeq; } - - // Convenience methods - private void setBit(boolean b, int mask) { - if (b) - declSpecifierSeq = declSpecifierSeq | mask; - else - declSpecifierSeq = declSpecifierSeq & ~mask; - } - - private boolean checkBit(int mask) { - return (declSpecifierSeq & mask) == 1; - } - - public void setAuto(boolean b) { setBit(b, isAuto); } - public boolean isAuto() { return checkBit(isAuto); } - - public void setRegister(boolean b) { setBit(b, isRegister); } - public boolean isRegister() { return checkBit(isRegister); } - - public void setStatic(boolean b) { setBit(b, isStatic); } - public boolean isStatic() { return checkBit(isStatic); } - - public void setExtern(boolean b) { setBit(b, isExtern); } - public boolean isExtern() { return checkBit(isExtern); } - - public void setMutable(boolean b) { setBit(b, isMutable); } - public boolean isMutable() { return checkBit(isMutable); } - - public void setInline(boolean b) { setBit(b, isInline); } - public boolean isInline() { return checkBit(isInline); } - - public void setVirtual(boolean b) { setBit(b, isVirtual); } - public boolean isVirtual() { return checkBit(isVirtual); } - - public void setExplicit(boolean b) { setBit(b, isExplicit); } - public boolean isExplicit() { return checkBit(isExplicit); } - - public void setTypedef(boolean b) { setBit(b, isTypedef); } - public boolean isTypedef() { return checkBit(isTypedef); } - - public void setFriend(boolean b) { setBit(b, isFriend); } - public boolean isFriend() { return checkBit(isFriend); } - - public void setConst(boolean b) { setBit(b, isConst); } - public boolean isConst() { return checkBit(isConst); } - - public void setVolatile(boolean b) { setBit(b, isVolatile); } - public boolean isVolatile() { return checkBit(isVolatile); } - - public void setUnsigned(boolean b) { setBit(b, isUnsigned); } - public boolean isUnsigned() { return checkBit(isUnsigned); } - - public void setShort(boolean b) { setBit(b, isShort); } - public boolean isShort() { return checkBit(isShort); } - - public void setLong(boolean b) { setBit(b, isLong); } - public boolean isLong() { return checkBit(isLong); } - - // Simple Types - public static final int t_type = 0; // Type Specifier - public static final int t_char = 1; - public static final int t_wchar_t = 2; - public static final int t_bool = 3; - public static final int t_int = 4; - public static final int t_float = 5; - public static final int t_double = 6; - public static final int t_void = 7; - - public void setType(int t) { - declSpecifierSeq = declSpecifierSeq & ~typeMask | t; - } - - public int getType() { - return declSpecifierSeq & typeMask; - } - - -} diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Declarator.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Declarator.java index 33d5ff46b50..f08d6ad5ca5 100644 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Declarator.java +++ b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Declarator.java @@ -1,5 +1,9 @@ package org.eclipse.cdt.internal.core.dom; +import org.eclipse.cdt.internal.core.newparser.util.*; +import org.eclipse.cdt.internal.core.newparser.util.Name; + + public class Declarator { public Declarator(DeclarationSpecifier.Container declaration) { diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Name.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Name.java deleted file mode 100644 index fd66b612bd4..00000000000 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/Name.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.eclipse.cdt.internal.core.dom; - -import org.eclipse.cdt.internal.core.newparser.Token; - -/** - * @author dschaefe - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class Name { - - private Token nameStart, nameEnd; - - public Name(Token nameStart) { - this.nameStart = nameStart; - } - - public void setEnd(Token nameEnd) { - this.nameEnd = nameEnd; - } - - public String getName() { - String name = nameStart.getImage(); - - for (Token t = nameStart; nameStart != nameEnd;) { - t = nameStart.getNext(); - name += t.getImage(); - } - - return name; - } -} diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ParameterDeclaration.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ParameterDeclaration.java index 8c9c8eac7ca..85e8e4241fe 100644 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ParameterDeclaration.java +++ b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/ParameterDeclaration.java @@ -3,6 +3,8 @@ package org.eclipse.cdt.internal.core.dom; import java.util.LinkedList; import java.util.List; +import org.eclipse.cdt.internal.core.newparser.util.*; + /** * @author jcamelon * @@ -16,7 +18,7 @@ public class ParameterDeclaration extends Declaration implements DeclarationSpec DeclarationSpecifier declSpec = null; /** - * @see org.eclipse.cdt.internal.core.dom.DeclarationSpecifier.Container#getDeclSpecifier() + * @see org.eclipse.cdt.internal.core.dom.DeclarationSpecifier.CElementWrapper#getDeclSpecifier() */ public DeclarationSpecifier getDeclSpecifier() { if( declSpec == null ) @@ -26,14 +28,14 @@ public class ParameterDeclaration extends Declaration implements DeclarationSpec } /** - * @see org.eclipse.cdt.internal.core.dom.DeclarationSpecifier.Container#setDeclSpecifier(org.eclipse.cdt.internal.core.dom.DeclarationSpecifier) + * @see org.eclipse.cdt.internal.core.dom.DeclarationSpecifier.CElementWrapper#setDeclSpecifier(org.eclipse.cdt.internal.core.dom.DeclarationSpecifier) */ public void setDeclSpecifier(DeclarationSpecifier in) { declSpec = in; } private List declarators = new LinkedList(); - public void addDeclarator(Declarator declarator) { + public void addDeclarator(Object declarator) { declarators.add(declarator); } diff --git a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/SimpleDeclaration.java b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/SimpleDeclaration.java index 0b3447de6f4..355bacd2492 100644 --- a/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/SimpleDeclaration.java +++ b/core/org.eclipse.cdt.core/newparser/org/eclipse/cdt/internal/core/dom/SimpleDeclaration.java @@ -3,9 +3,12 @@ package org.eclipse.cdt.internal.core.dom; import java.util.LinkedList; import java.util.List; +import org.eclipse.cdt.internal.core.newparser.util.*; + public class SimpleDeclaration extends Declaration implements DeclarationSpecifier.Container{ - private DeclarationSpecifier declSpec = null; + private DeclarationSpecifier declSpec = null; + public DeclarationSpecifier getDeclSpecifier() { if( declSpec == null ) @@ -43,7 +46,7 @@ public class SimpleDeclaration extends Declaration implements DeclarationSpecifi private List declarators = new LinkedList(); - public void addDeclarator(Declarator declarator) { + public void addDeclarator(Object declarator) { declarators.add(declarator); } |