[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Parser updates - Upgrades to IParserCallback interface and implem entations
|
- Added callback support for class member visibility.
- Added callback support for pointer and reference operators on declarators.
- Added callback support for throws clauses an const operations.
- Added callback support for array declarators.
- Updated parser tests to assist in this effort.
JC
Index: dom/org/eclipse/cdt/internal/core/dom/ArrayQualifier.java
===================================================================
RCS file: dom/org/eclipse/cdt/internal/core/dom/ArrayQualifier.java
diff -N dom/org/eclipse/cdt/internal/core/dom/ArrayQualifier.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dom/org/eclipse/cdt/internal/core/dom/ArrayQualifier.java 23 Mar 2003 23:04:56 -0000
@@ -0,0 +1,52 @@
+/**********************************************************************
+ * Created on Mar 23, 2003
+ *
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ *
+ * Contributors:
+ * Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.dom;
+
+/**
+ * @author jcamelon
+ *
+ * To change this generated comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class ArrayQualifier implements IExpressionOwner {
+
+ private Expression constantExpression;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.dom.IExpressionOwner#getExpression()
+ */
+ public Expression getExpression() {
+ return constantExpression;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.dom.IExpressionOwner#setExpression(org.eclipse.cdt.internal.core.dom.Expression)
+ */
+ public void setExpression(Expression exp) {
+ constantExpression = exp;
+ }
+
+ public ArrayQualifier( Declarator owner )
+ {
+ ownerDeclarator = owner;
+ }
+
+ private Declarator ownerDeclarator;
+ /**
+ * @return Declarator
+ */
+ public Declarator getOwnerDeclarator() {
+ return ownerDeclarator;
+ }
+
+}
Index: dom/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java,v
retrieving revision 1.3
diff -u -r1.3 ClassSpecifier.java
--- dom/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java 17 Mar 2003 15:22:05 -0000 1.3
+++ dom/org/eclipse/cdt/internal/core/dom/ClassSpecifier.java 23 Mar 2003 23:04:56 -0000
@@ -11,6 +11,12 @@
public static final int t_struct = 1;
public static final int t_union = 2;
+ public static final int v_public = 0;
+ public static final int v_protected = 1;
+ public static final int v_private = 3;
+
+ private int currentVisibility;
+
private final int classKey;
public int getClassKey() { return classKey; }
@@ -38,4 +44,19 @@
public List getDeclarations() {
return declarations;
}
+ /**
+ * @return int
+ */
+ public int getCurrentVisibility() {
+ return currentVisibility;
+ }
+
+ /**
+ * Sets the currentVisiblity.
+ * @param currentVisiblity The currentVisiblity to set
+ */
+ public void setCurrentVisibility(int currentVisiblity) {
+ this.currentVisibility = currentVisiblity;
+ }
+
}
Index: dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java,v
retrieving revision 1.6
diff -u -r1.6 DOMBuilder.java
--- dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java 20 Mar 2003 15:13:09 -0000 1.6
+++ dom/org/eclipse/cdt/internal/core/dom/DOMBuilder.java 23 Mar 2003 23:04:56 -0000
@@ -1,6 +1,9 @@
package org.eclipse.cdt.internal.core.dom;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.cdt.internal.core.parser.IParserCallback;
import org.eclipse.cdt.internal.core.parser.Token;
import org.eclipse.cdt.internal.core.parser.util.DeclSpecifier;
@@ -40,10 +43,12 @@
SimpleDeclaration decl = (SimpleDeclaration)container;
int kind = ClassSpecifier.t_struct;
+ int visibility = ClassSpecifier.v_public;
switch (classKey.getType()) {
case Token.t_class:
kind = ClassSpecifier.t_class;
+ visibility = ClassSpecifier.v_private;
break;
case Token.t_struct:
kind = ClassSpecifier.t_struct;
@@ -54,6 +59,7 @@
}
ClassSpecifier classSpecifier = new ClassSpecifier(kind, decl);
+ classSpecifier.setCurrentVisibility( visibility );
decl.setTypeSpecifier(classSpecifier);
return classSpecifier;
}
@@ -130,13 +136,14 @@
/**
* @see org.eclipse.cdt.internal.core.newparser.IParserCallback#functionBodyBegin()
*/
- public void functionBodyBegin(Object declaration) {
+ public Object functionBodyBegin(Object declaration) {
+ return null;
}
/**
* @see org.eclipse.cdt.internal.core.newparser.IParserCallback#functionBodyEnd()
*/
- public void functionBodyEnd() {
+ public void functionBodyEnd(Object functionBody) {
}
/**
@@ -342,4 +349,137 @@
public void expressionAbort(Object expression) {
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classMemberVisibility(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void classMemberVisibility(Object classSpecifier, Token visibility) {
+ ClassSpecifier spec = (ClassSpecifier)classSpecifier;
+ switch( visibility.getType() )
+ {
+ case Token.t_public:
+ spec.setCurrentVisibility( ClassSpecifier.v_public );
+ break;
+ case Token.t_protected:
+ spec.setCurrentVisibility( ClassSpecifier.v_protected );
+ break;
+ case Token.t_private:
+ spec.setCurrentVisibility( ClassSpecifier.v_private );
+ break;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorBegin(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public Object pointerOperatorBegin(Object container) {
+ Declarator declarator = (Declarator)container;
+ PointerOperator ptrOp = new PointerOperator(declarator);
+ return ptrOp;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorEnd(java.lang.Object)
+ */
+ public void pointerOperatorEnd(Object ptrOperator) {
+ PointerOperator ptrOp = (PointerOperator)ptrOperator;
+ Declarator owner = ptrOp.getOwnerDeclarator();
+ owner.addPointerOperator( ptrOp );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorName(java.lang.Object)
+ */
+ public void pointerOperatorName(Object ptrOperator) {
+ // TODO Auto-generated method stub
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorType(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorType(Object ptrOperator, Token type) {
+ PointerOperator ptrOp = (PointerOperator)ptrOperator;
+ switch( type.getType() )
+ {
+ case Token.tSTAR:
+ ptrOp.setType( PointerOperator.t_pointer );
+ break;
+ case Token.tAMPER:
+ ptrOp.setType( PointerOperator.t_reference );
+ break;
+ default:
+ break;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorCVModifier(Object ptrOperator, Token modifier) {
+ PointerOperator ptrOp = (PointerOperator)ptrOperator;
+ switch( modifier.getType() )
+ {
+ case Token.t_const:
+ ptrOp.setConst(true);
+ break;
+ case Token.t_volatile:
+ ptrOp.setVolatile( true );
+ break;
+ default:
+ break;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void declaratorCVModifier(Object declarator, Token modifier) {
+ Declarator decl = (Declarator)declarator;
+ switch( modifier.getType() )
+ {
+ case Token.t_const:
+ decl.setConst(true);
+ break;
+ case Token.t_volatile:
+ decl.setVolatile( true );
+ break;
+ default:
+ break;
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayBegin(java.lang.Object)
+ */
+ public Object arrayDeclaratorBegin(Object declarator) {
+ Declarator decl = (Declarator)declarator;
+ ArrayQualifier qual = new ArrayQualifier( decl );
+ return qual;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayEnd(java.lang.Object)
+ */
+ public void arrayDeclaratorEnd(Object arrayQualifier ) {
+ ArrayQualifier qual = (ArrayQualifier)arrayQualifier;
+ Declarator parent = qual.getOwnerDeclarator();
+ parent.addArrayQualifier(qual);
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#exceptionSpecificationTypename(java.lang.Object)
+ */
+ public void declaratorThrowExceptionName(Object declarator ) {
+ Declarator decl = (Declarator)declarator;
+ decl.addExceptionSpecifierTypeName( currName );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorThrowsException(java.lang.Object)
+ */
+ public void declaratorThrowsException(Object declarator) {
+ Declarator decl = (Declarator)declarator;
+ decl.throwsExceptions();
+ }
}
Index: dom/org/eclipse/cdt/internal/core/dom/Declarator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dom/org/eclipse/cdt/internal/core/dom/Declarator.java,v
retrieving revision 1.4
diff -u -r1.4 Declarator.java
--- dom/org/eclipse/cdt/internal/core/dom/Declarator.java 20 Mar 2003 15:13:09 -0000 1.4
+++ dom/org/eclipse/cdt/internal/core/dom/Declarator.java 23 Mar 2003 23:04:56 -0000
@@ -1,5 +1,8 @@
package org.eclipse.cdt.internal.core.dom;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.cdt.internal.core.parser.util.DeclSpecifier;
import org.eclipse.cdt.internal.core.parser.util.Name;
@@ -61,20 +64,107 @@
return parms;
}
- private Expression expression = null;
+ private Expression initialExpression = null;
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.IExpressionOwner#getExpression()
*/
public Expression getExpression() {
- return expression;
+ return initialExpression;
}
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.IExpressionOwner#setExpression(org.eclipse.cdt.internal.core.dom.Expression)
*/
public void setExpression(Expression exp) {
- expression = exp;
+ initialExpression = exp;
+ }
+
+ List pointerOperators = null;
+ List arrayQualifiers = null;
+
+
+
+ /**
+ * @return List
+ */
+ public List getPointerOperators() {
+ return pointerOperators;
+ }
+
+ public void addPointerOperator( PointerOperator po )
+ {
+ if( pointerOperators == null )
+ {
+ pointerOperators = new ArrayList();
+ }
+ pointerOperators.add(po);
+ }
+
+ List exceptionSpecifier = null;
+
+ public List getExceptionSpecifier()
+ {
+ return exceptionSpecifier;
+ }
+
+ public void throwsExceptions()
+ {
+ if( exceptionSpecifier == null )
+ exceptionSpecifier = new ArrayList();
+ }
+
+ public void addExceptionSpecifierTypeName( Name name )
+ {
+ exceptionSpecifier.add( name );
+ }
+
+ boolean isConst = false;
+ boolean isVolatile = false;
+ /**
+ * @return boolean
+ */
+ public boolean isConst() {
+ return isConst;
+ }
+
+ /**
+ * @return boolean
+ */
+ public boolean isVolatile() {
+ return isVolatile;
+ }
+
+ /**
+ * Sets the isConst.
+ * @param isConst The isConst to set
+ */
+ public void setConst(boolean isConst) {
+ this.isConst = isConst;
}
+ /**
+ * Sets the isVolatile.
+ * @param isVolatile The isVolatile to set
+ */
+ public void setVolatile(boolean isVolatile) {
+ this.isVolatile = isVolatile;
+ }
+
+ /**
+ * @return List
+ */
+ public List getArrayQualifiers() {
+ return arrayQualifiers;
+ }
+
+ public void addArrayQualifier( ArrayQualifier q )
+ {
+ if( arrayQualifiers == null )
+ {
+ arrayQualifiers = new ArrayList();
+ }
+ arrayQualifiers.add(q);
+ }
+
}
Index: dom/org/eclipse/cdt/internal/core/dom/PointerOperator.java
===================================================================
RCS file: dom/org/eclipse/cdt/internal/core/dom/PointerOperator.java
diff -N dom/org/eclipse/cdt/internal/core/dom/PointerOperator.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dom/org/eclipse/cdt/internal/core/dom/PointerOperator.java 23 Mar 2003 23:04:56 -0000
@@ -0,0 +1,90 @@
+/**********************************************************************
+ * Created on Mar 23, 2003
+ *
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ *
+ * Contributors:
+ * Rational Software - Initial API and implementation
+***********************************************************************/
+package org.eclipse.cdt.internal.core.dom;
+
+/**
+ * @author jcamelon
+ *
+ * To change this generated comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class PointerOperator {
+
+ public final static int t_undefined = 0;
+ public final static int t_pointer = 1;
+ public final static int t_reference = 2;
+
+ private int type = t_undefined;
+
+ /**
+ * @return int
+ */
+ public int getType() {
+ return type;
+ }
+
+ /**
+ * Sets the type.
+ * @param type The type to set
+ */
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ private boolean isConst = false;
+ private boolean isVolatile = false;
+
+ /**
+ * @return boolean
+ */
+ public boolean isConst() {
+ return isConst;
+ }
+
+ /**
+ * @return boolean
+ */
+ public boolean isVolatile() {
+ return isVolatile;
+ }
+
+ /**
+ * Sets the isConst.
+ * @param isConst The isConst to set
+ */
+ public void setConst(boolean isConst) {
+ this.isConst = isConst;
+ }
+
+ /**
+ * Sets the isVolatile.
+ * @param isVolatile The isVolatile to set
+ */
+ public void setVolatile(boolean isVolatile) {
+ this.isVolatile = isVolatile;
+ }
+
+ public PointerOperator( Declarator decl )
+ {
+ ownerDeclarator = decl;
+ }
+
+ private Declarator ownerDeclarator = null;
+ /**
+ * @return Declarator
+ */
+ public Declarator getOwnerDeclarator() {
+ return ownerDeclarator;
+ }
+
+}
Index: parser/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/ChangeLog,v
retrieving revision 1.7
diff -u -r1.7 ChangeLog
--- parser/ChangeLog 23 Mar 2003 13:59:57 -0000 1.7
+++ parser/ChangeLog 23 Mar 2003 23:04:56 -0000
@@ -1,3 +1,9 @@
+2003-03-23 John Camelon
+ Added callback support for class member visibility.
+ Added callback support for pointer and reference operators on declarators.
+ Added callback support for throws clauses an const operations.
+ Added callback support for array declarators.
+
2003-03-20 Andrew Niefer
Parser Symbol Table updates for:
* friends
Index: parser/org/eclipse/cdt/internal/core/model/NewModelBuilder.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/model/NewModelBuilder.java,v
retrieving revision 1.8
diff -u -r1.8 NewModelBuilder.java
--- parser/org/eclipse/cdt/internal/core/model/NewModelBuilder.java 20 Mar 2003 15:13:09 -0000 1.8
+++ parser/org/eclipse/cdt/internal/core/model/NewModelBuilder.java 23 Mar 2003 23:04:56 -0000
@@ -102,9 +102,10 @@
/**
* @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginFunctionBody()
*/
- public void functionBodyBegin(Object declaration) {
+ public Object functionBodyBegin(Object declaration) {
SimpleDeclarationWrapper wrapper = (SimpleDeclarationWrapper)declaration;
wrapper.setFunctionDefinition(true);
+ return null;
}
/**
@@ -254,7 +255,7 @@
/**
* @see org.eclipse.cdt.internal.core.newparser.IParserCallback#functionBodyEnd()
*/
- public void functionBodyEnd() {
+ public void functionBodyEnd(Object functionBody) {
}
/**
@@ -362,6 +363,105 @@
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionAbort(java.lang.Object)
*/
public void expressionAbort(Object expression) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classMemberVisibility(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void classMemberVisibility(Object classSpecifier, Token visibility) {
+ SimpleDeclarationWrapper spec = (SimpleDeclarationWrapper)classSpecifier;
+ switch( visibility.getType() )
+ {
+ case Token.t_public:
+ spec.setCurrentVisibility( SimpleDeclarationWrapper.v_public );
+ break;
+ case Token.t_protected:
+ spec.setCurrentVisibility( SimpleDeclarationWrapper.v_protected );
+ break;
+ case Token.t_private:
+ spec.setCurrentVisibility( SimpleDeclarationWrapper.v_private );
+ break;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorBegin(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public Object pointerOperatorBegin(Object container) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorEnd(java.lang.Object)
+ */
+ public void pointerOperatorEnd(Object ptrOperator) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorName(java.lang.Object)
+ */
+ public void pointerOperatorName(Object ptrOperator) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorType(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorType(Object ptrOperator, Token type) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorCVModifier(Object ptrOperator, Token modifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void declaratorCVModifier(Object declarator, Token modifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayBegin(java.lang.Object)
+ */
+ public Object arrayDeclaratorBegin(Object declarator) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayEnd(java.lang.Object)
+ */
+ public void arrayDeclaratorEnd(Object arrayQualifier ) {
+ // TODO Auto-generated method stub
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#exceptionSpecificationTypename(java.lang.Object)
+ */
+ public void declaratorThrowExceptionName(Object declarator) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorThrowsException(java.lang.Object)
+ */
+ public void declaratorThrowsException(Object declarator) {
// TODO Auto-generated method stub
}
Index: parser/org/eclipse/cdt/internal/core/model/SimpleDeclarationWrapper.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/model/SimpleDeclarationWrapper.java,v
retrieving revision 1.8
diff -u -r1.8 SimpleDeclarationWrapper.java
--- parser/org/eclipse/cdt/internal/core/model/SimpleDeclarationWrapper.java 19 Mar 2003 16:12:00 -0000 1.8
+++ parser/org/eclipse/cdt/internal/core/model/SimpleDeclarationWrapper.java 23 Mar 2003 23:04:56 -0000
@@ -214,4 +214,24 @@
this.functionDefinition = functionDefinition;
}
+ public static final int v_public = 0;
+ public static final int v_protected = 1;
+ public static final int v_private = 3;
+
+ private int currentVisibility;
+ /**
+ * @return int
+ */
+ public int getCurrentVisibility() {
+ return currentVisibility;
+ }
+
+ /**
+ * Sets the currentVisibility.
+ * @param currentVisibility The currentVisibility to set
+ */
+ public void setCurrentVisibility(int currentVisibility) {
+ this.currentVisibility = currentVisibility;
+ }
+
}
Index: parser/org/eclipse/cdt/internal/core/parser/ExpressionEvaluator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ExpressionEvaluator.java,v
retrieving revision 1.7
diff -u -r1.7 ExpressionEvaluator.java
--- parser/org/eclipse/cdt/internal/core/parser/ExpressionEvaluator.java 20 Mar 2003 15:13:09 -0000 1.7
+++ parser/org/eclipse/cdt/internal/core/parser/ExpressionEvaluator.java 23 Mar 2003 23:04:56 -0000
@@ -206,12 +206,13 @@
/**
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#functionBodyBegin()
*/
- public void functionBodyBegin(Object declaration) {
+ public Object functionBodyBegin(Object declaration) {
+ return null;
}
/**
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#functionBodyEnd()
*/
- public void functionBodyEnd() {
+ public void functionBodyEnd(Object functionBody) {
}
/**
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#classSpecifierBegin(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
@@ -310,6 +311,93 @@
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionAbort(java.lang.Object)
*/
public void expressionAbort(Object expression) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classMemberVisibility(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void classMemberVisibility(Object classSpecifier, Token visibility) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorBegin(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public Object pointerOperatorBegin(Object container) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorEnd(java.lang.Object)
+ */
+ public void pointerOperatorEnd(Object ptrOperator) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorName(java.lang.Object)
+ */
+ public void pointerOperatorName(Object ptrOperator) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorType(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorType(Object ptrOperator, Token type) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorCVModifier(Object ptrOperator, Token modifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void declaratorCVModifier(Object declarator, Token modifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayBegin(java.lang.Object)
+ */
+ public Object arrayDeclaratorBegin(Object declarator) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayEnd(java.lang.Object)
+ */
+ public void arrayDeclaratorEnd(Object arrayQualifier ) {
+ // TODO Auto-generated method stub;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#exceptionSpecificationTypename(java.lang.Object)
+ */
+ public void declaratorThrowExceptionName(Object declarator) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorThrowsException(java.lang.Object)
+ */
+ public void declaratorThrowsException(Object declarator) {
// TODO Auto-generated method stub
}
Index: parser/org/eclipse/cdt/internal/core/parser/IParserCallback.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/IParserCallback.java,v
retrieving revision 1.6
diff -u -r1.6 IParserCallback.java
--- parser/org/eclipse/cdt/internal/core/parser/IParserCallback.java 20 Mar 2003 15:13:09 -0000 1.6
+++ parser/org/eclipse/cdt/internal/core/parser/IParserCallback.java 23 Mar 2003 23:04:57 -0000
@@ -33,18 +33,31 @@
public Object declaratorBegin(Object container);
public void declaratorId(Object declarator);
public void declaratorAbort( Object container, Object declarator );
+ public void declaratorCVModifier( Object declarator, Token modifier );
+ public void declaratorThrowsException( Object declarator );
+ public void declaratorThrowExceptionName( Object declarator );
public void declaratorEnd(Object declarator);
+ public Object arrayDeclaratorBegin( Object declarator );
+ public void arrayDeclaratorEnd( Object arrayQualifier );
+
+ public Object pointerOperatorBegin( Object container );
+ public void pointerOperatorType( Object ptrOperator, Token type );
+ public void pointerOperatorName( Object ptrOperator );
+ public void pointerOperatorCVModifier( Object ptrOperator, Token modifier );
+ public void pointerOperatorEnd( Object ptrOperator );
+
public Object argumentsBegin( Object declarator );
public void argumentsEnd(Object parameterDeclarationClause);
- public void functionBodyBegin(Object declaration);
- public void functionBodyEnd();
+ public Object functionBodyBegin(Object declaration);
+ public void functionBodyEnd(Object functionBody);
public Object classSpecifierBegin(Object container, Token classKey);
public void classSpecifierName(Object classSpecifier);
public void classSpecifierAbort( Object classSpecifier );
public void classSpecifierSafe( Object classSpecifier );
+ public void classMemberVisibility( Object classSpecifier, Token visibility );
public void classSpecifierEnd(Object classSpecifier);
public Object baseSpecifierBegin( Object containingClassSpec );
Index: parser/org/eclipse/cdt/internal/core/parser/NullParserCallback.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/NullParserCallback.java,v
retrieving revision 1.6
diff -u -r1.6 NullParserCallback.java
--- parser/org/eclipse/cdt/internal/core/parser/NullParserCallback.java 20 Mar 2003 15:13:09 -0000 1.6
+++ parser/org/eclipse/cdt/internal/core/parser/NullParserCallback.java 23 Mar 2003 23:04:57 -0000
@@ -1,231 +1,402 @@
package org.eclipse.cdt.internal.core.parser;
public class NullParserCallback implements IParserCallback {
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginArguments()
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#translationUnitBegin()
*/
- public Object argumentsBegin( Object container ) {
- return null;
+ public Object translationUnitBegin() {
+ // TODO Auto-generated method stub
+ return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginClass(String, Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#translationUnitEnd(java.lang.Object)
*/
- public Object classSpecifierBegin(Object container, Token classKey) {
- return null;
+ public void translationUnitEnd(Object unit) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginDeclarator()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#inclusionBegin(java.lang.String, int)
*/
- public Object declaratorBegin(Object container) {
- return null;
+ public void inclusionBegin(String includeFile, int offset) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginFunctionBody()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#inclusionEnd()
*/
- public void functionBodyBegin(Object declaration) {
+ public void inclusionEnd() {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginInclusion(String)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#macro(java.lang.String, int)
*/
- public void inclusionBegin(String includeFile, int offset) {
+ public void macro(String macroName, int offset) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginSimpleDeclaration(Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#simpleDeclarationBegin(java.lang.Object)
*/
public Object simpleDeclarationBegin(Object Container) {
- return null;
+ // TODO Auto-generated method stub
+ return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#beginTranslationUnit()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#simpleDeclSpecifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
*/
- public Object translationUnitBegin() {
- return null;
+ public void simpleDeclSpecifier(Object Container, Token specifier) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#declaratorId(Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#simpleDeclSpecifierName(java.lang.Object)
*/
- public void declaratorId(Object declarator) {
+ public void simpleDeclSpecifierName(Object declaration) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#declSpecifier(Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#simpleDeclarationEnd(java.lang.Object)
*/
- public void simpleDeclSpecifier(Object Container, Token specifier) {
+ public void simpleDeclarationEnd(Object declaration) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endArguments()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#parameterDeclarationBegin(java.lang.Object)
*/
- public void argumentsEnd(Object parameterDeclarationClause) {
+ public Object parameterDeclarationBegin(Object Container) {
+ // TODO Auto-generated method stub
+ return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endClass()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#parameterDeclarationEnd(java.lang.Object)
*/
- public void classSpecifierEnd(Object classSpecifier) {
+ public void parameterDeclarationEnd(Object declaration) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endDeclarator()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#nameBegin(org.eclipse.cdt.internal.core.parser.Token)
*/
- public void declaratorEnd(Object declarator) {
+ public void nameBegin(Token firstToken) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endFunctionBody()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#nameEnd(org.eclipse.cdt.internal.core.parser.Token)
*/
- public void functionBodyEnd() {
+ public void nameEnd(Token lastToken) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endInclusion()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorBegin(java.lang.Object)
*/
- public void inclusionEnd() {
+ public Object declaratorBegin(Object container) {
+ // TODO Auto-generated method stub
+ return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endSimpleDeclaration(Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorId(java.lang.Object)
*/
- public void simpleDeclarationEnd(Object declaration) {
+ public void declaratorId(Object declarator) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#endTranslationUnit()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorAbort(java.lang.Object, java.lang.Object)
*/
- public void translationUnitEnd(Object unit) {
+ public void declaratorAbort(Object container, Object declarator) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#expressionOperator(Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
*/
- public void expressionOperator(Object expression, Token operator) throws Exception {
+ public void declaratorCVModifier(Object declarator, Token modifier) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#expressionTerminal(Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorThrowExceptionName(java.lang.Object)
*/
- public void expressionTerminal(Object expression, Token terminal) throws Exception {
+ public void declaratorThrowExceptionName(Object exceptionSpec) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#macro(String)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorEnd(java.lang.Object)
*/
- public void macro(String macroName, int offset) {
+ public void declaratorEnd(Object declarator) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#nameBegin(org.eclipse.cdt.internal.core.newparser.Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayDeclaratorBegin(java.lang.Object)
*/
- public void nameBegin(Token firstToken) {
+ public Object arrayDeclaratorBegin(Object declarator) {
+ // TODO Auto-generated method stub
+ return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#nameEnd(org.eclipse.cdt.internal.core.newparser.Token)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#arrayDeclaratorEnd(java.lang.Object)
*/
- public void nameEnd(Token lastToken) {
+ public void arrayDeclaratorEnd(Object arrayQualifier) {
+ // TODO Auto-generated method stub
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#classSpecifierName()
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorBegin(java.lang.Object)
*/
- public void classSpecifierName(Object classSpecifier) {
+ public Object pointerOperatorBegin(Object container) {
+ // TODO Auto-generated method stub
+ return null;
}
-
- public Object baseSpecifierBegin( Object classSpecifier )
- {
- return null;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorType(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorType(Object ptrOperator, Token type) {
+ // TODO Auto-generated method stub
+
}
- public void baseSpecifierEnd( Object x )
- {
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorName(java.lang.Object)
+ */
+ public void pointerOperatorName(Object ptrOperator) {
+ // TODO Auto-generated method stub
+
}
-
- public void baseSpecifierName( Object baseSpecifier )
- {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorCVModifier(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void pointerOperatorCVModifier(Object ptrOperator, Token modifier) {
+ // TODO Auto-generated method stub
+
}
-
- public void baseSpecifierVisibility( Object baseSpecifier, Token visibility )
- {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#pointerOperatorEnd(java.lang.Object)
+ */
+ public void pointerOperatorEnd(Object ptrOperator) {
+ // TODO Auto-generated method stub
+
}
- public void baseSpecifierVirtual( Object baseSpecifier, boolean virtual )
- {
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#argumentsBegin(java.lang.Object)
+ */
+ public Object argumentsBegin(Object declarator) {
+ // TODO Auto-generated method stub
+ return null;
}
- public Object parameterDeclarationBegin( Object container )
- {
- return null;
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#argumentsEnd(java.lang.Object)
+ */
+ public void argumentsEnd(Object parameterDeclarationClause) {
+ // TODO Auto-generated method stub
+
}
-
- public void parameterDeclarationEnd( Object declaration ){
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#functionBodyBegin(java.lang.Object)
+ */
+ public Object functionBodyBegin(Object declaration) {
+ // TODO Auto-generated method stub
+ return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.newparser.IParserCallback#declaratorAbort(java.lang.Object, java.lang.Object)
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#functionBodyEnd(java.lang.Object)
*/
- public void declaratorAbort(Object container, Object declarator) {
+ public void functionBodyEnd(Object functionBody) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionBegin(java.lang.Object)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classSpecifierBegin(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
*/
- public Object expressionBegin(Object container) {
+ public Object classSpecifierBegin(Object container, Token classKey) {
+ // TODO Auto-generated method stub
return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionEnd(java.lang.Object)
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classSpecifierName(java.lang.Object)
*/
- public void expressionEnd(Object expression) {
+ public void classSpecifierName(Object classSpecifier) {
+ // TODO Auto-generated method stub
+
}
- /**
+ /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#classSpecifierAbort(java.lang.Object)
*/
public void classSpecifierAbort(Object classSpecifier) {
+ // TODO Auto-generated method stub
+
}
- /**
+ /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#classSpecifierSafe(java.lang.Object)
*/
public void classSpecifierSafe(Object classSpecifier) {
+ // TODO Auto-generated method stub
+
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classMemberVisibility(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void classMemberVisibility(Object classSpecifier, Token visibility) {
+ // TODO Auto-generated method stub
+
+ }
- /**
- * @see org.eclipse.cdt.internal.core.parser.IParserCallback#elaboratedTypeSpecifierBegin(java.lang.Object)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#classSpecifierEnd(java.lang.Object)
*/
- public Object elaboratedTypeSpecifierBegin(Object container, Token classKey) {
+ public void classSpecifierEnd(Object classSpecifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#baseSpecifierBegin(java.lang.Object)
+ */
+ public Object baseSpecifierBegin(Object containingClassSpec) {
+ // TODO Auto-generated method stub
return null;
}
- /**
- * @see org.eclipse.cdt.internal.core.parser.IParserCallback#elaboratedTypeSpecifierEnd(java.lang.Object)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#baseSpecifierName(java.lang.Object)
*/
- public void elaboratedTypeSpecifierEnd(Object elab) {
+ public void baseSpecifierName(Object baseSpecifier) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.parser.IParserCallback#elaboratedTypeSpecifierName(java.lang.Object)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#baseSpecifierVisibility(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
*/
- public void elaboratedTypeSpecifierName(Object elab) {
+ public void baseSpecifierVisibility(Object baseSpecifier, Token visibility) {
+ // TODO Auto-generated method stub
+
}
- /**
- * @see org.eclipse.cdt.internal.core.parser.IParserCallback#simpleDeclSpecifierName(java.lang.Object)
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#baseSpecifierVirtual(java.lang.Object, boolean)
*/
- public void simpleDeclSpecifierName(Object declaration) {
+ public void baseSpecifierVirtual(Object baseSpecifier, boolean virtual) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#baseSpecifierEnd(java.lang.Object)
+ */
+ public void baseSpecifierEnd(Object baseSpecifier) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionBegin(java.lang.Object)
+ */
+ public Object expressionBegin(Object container) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionOperator(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void expressionOperator(Object expression, Token operator) throws Exception {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionTerminal(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public void expressionTerminal(Object expression, Token terminal) throws Exception {
+ // TODO Auto-generated method stub
+
}
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionAbort(java.lang.Object)
*/
public void expressionAbort(Object expression) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#expressionEnd(java.lang.Object)
+ */
+ public void expressionEnd(Object expression) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#elaboratedTypeSpecifierBegin(java.lang.Object, org.eclipse.cdt.internal.core.parser.Token)
+ */
+ public Object elaboratedTypeSpecifierBegin(Object container, Token classKey) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#elaboratedTypeSpecifierName(java.lang.Object)
+ */
+ public void elaboratedTypeSpecifierName(Object elab) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#elaboratedTypeSpecifierEnd(java.lang.Object)
+ */
+ public void elaboratedTypeSpecifierEnd(Object elab) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.parser.IParserCallback#declaratorThrowsException(java.lang.Object)
+ */
+ public void declaratorThrowsException(Object declarator) {
// TODO Auto-generated method stub
}
Index: parser/org/eclipse/cdt/internal/core/parser/Parser.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java,v
retrieving revision 1.12
diff -u -r1.12 Parser.java
--- parser/org/eclipse/cdt/internal/core/parser/Parser.java 20 Mar 2003 15:13:09 -0000 1.12
+++ parser/org/eclipse/cdt/internal/core/parser/Parser.java 23 Mar 2003 23:04:57 -0000
@@ -105,6 +105,7 @@
}
protected void consumeToNextSemicolon() throws EndOfFile {
+ parsePassed = false;
consume();
// TODO - we should really check for matching braces too
while (LT(1) != Token.tSEMI) {
@@ -210,7 +211,7 @@
}
// Falling through on purpose
case Token.tLBRACE:
- callback.functionBodyBegin(simpleDecl );
+ Object function = callback.functionBodyBegin(simpleDecl );
if (quickParse) {
// speed up the parser by skiping the body
// simply look for matching brace and return
@@ -229,7 +230,7 @@
} else {
functionBody();
}
- callback.functionBodyEnd();
+ callback.functionBodyEnd(function);
break;
default:
break;
@@ -408,12 +409,12 @@
* cvQualifier
* : "const" | "volatile"
*/
- protected Object cvQualifier() throws Exception {
+ protected void cvQualifier( Object ptrOp ) throws Exception {
switch (LT(1)) {
case Token.t_const:
case Token.t_volatile:
- consume();
- return null;
+ callback.pointerOperatorCVModifier( ptrOp, consume() );
+ return;
default:
throw backtrack;
}
@@ -510,7 +511,7 @@
for (;;) {
try {
- ptrOperator();
+ ptrOperator(declarator);
} catch (Backtrack b) {
break;
}
@@ -557,12 +558,59 @@
}
}
callback.argumentsEnd(clause);
+
+ // const-volatile marker on the method
+ if( LT(1) == Token.t_const || LT(1) == Token.t_volatile )
+ {
+ callback.declaratorCVModifier( declarator, consume() );
+ }
+
+ //check for throws clause here
+ if( LT(1) == Token.t_throw )
+ {
+ callback.declaratorThrowsException( declarator );
+ consume(); // throw
+ consume( Token.tLPAREN );// (
+ boolean done = false;
+ while( ! done )
+ {
+ switch( LT(1) )
+ {
+ case Token.tRPAREN:
+ consume();
+ done = true;
+ break;
+ case Token.tIDENTIFIER:
+ //TODO this is not exactly right - should be type-id rather than just a name
+ name();
+ callback.declaratorThrowExceptionName( declarator );
+ break;
+ case Token.tCOMMA:
+ consume();
+ break;
+ default:
+ System.out.println( "Unexpected Token =" + LA(1).getImage() );
+ consumeToNextSemicolon();
+ continue;
+ }
+ }
+ }
}
break;
case Token.tLBRACKET:
- consume();
- // constantExpression();
- consume(Token.tRBRACKET);
+ while( LT(1) == Token.tLBRACKET )
+ {
+ consume(); // eat the '['
+ Object array = callback.arrayDeclaratorBegin( declarator );
+ if( LT(1) != Token.tRBRACKET )
+ {
+ Object expression = callback.expressionBegin( array );
+ constantExpression(expression);
+ callback.expressionEnd( expression );
+ }
+ consume(Token.tRBRACKET);
+ callback.arrayDeclaratorEnd( array );
+ }
continue;
}
break;
@@ -584,30 +632,37 @@
* | "&"
* | name "*" (cvQualifier)*
*/
- protected Object ptrOperator() throws Exception {
+ protected void ptrOperator(Object owner) throws Exception {
int t = LT(1);
+ Object ptrOp = callback.pointerOperatorBegin( owner );
- if (t == Token.tAMPER) {
- consume();
- return null;
+ if (t == Token.tAMPER) {
+ callback.pointerOperatorType( ptrOp, consume() );
+ callback.pointerOperatorEnd( ptrOp );
+ return;
}
Token mark = mark();
if (t == Token.tIDENTIFIER || t == Token.tCOLONCOLON)
+ {
name();
+ callback.pointerOperatorName( ptrOp );
+ }
if (t == Token.tSTAR) {
- consume();
+ callback.pointerOperatorType( ptrOp, consume());
for (;;) {
try {
- cvQualifier();
+ cvQualifier( ptrOp );
} catch (Backtrack b) {
+ // expected at some point
break;
}
}
- return null;
+ callback.pointerOperatorEnd( ptrOp );
+ return;
}
backup(mark);
@@ -705,15 +760,9 @@
switch (LT(1)) {
case Token.t_public:
- consume();
- consume(Token.tCOLON);
- break;
case Token.t_protected:
- consume();
- consume(Token.tCOLON);
- break;
case Token.t_private:
- consume();
+ callback.classMemberVisibility( classSpec, consume() );
consume(Token.tCOLON);
break;
case Token.tRBRACE:
Index: parser/org/eclipse/cdt/internal/core/parser/Scanner.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java,v
retrieving revision 1.7
diff -u -r1.7 Scanner.java
--- parser/org/eclipse/cdt/internal/core/parser/Scanner.java 20 Mar 2003 15:13:09 -0000 1.7
+++ parser/org/eclipse/cdt/internal/core/parser/Scanner.java 23 Mar 2003 23:04:57 -0000
@@ -1264,7 +1264,7 @@
EXPRESSION,
definitions);
Parser parser = new Parser(trial, evaluator);
- parser.expression(null); //TODO should this be null?
+ parser.expression(null);
expressionEvalResult = evaluator.getResult();
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/ChangeLog,v
retrieving revision 1.8
diff -u -r1.8 ChangeLog
--- ChangeLog 20 Mar 2003 16:49:55 -0000 1.8
+++ ChangeLog 23 Mar 2003 23:00:35 -0000
@@ -1,3 +1,8 @@
+2003-03-23 John Camelon
+ Added ptrOperator() test to DOMTests.
+ Added testFunctionModifiers() test to DOMTests.
+ Added testArrays() test to DOMTests.
+
2003-03-20 Alain Magloire
Patch from Amer Hoda, tests for the CElement deltas for Translation Units.
Index: parser/org/eclipse/cdt/core/parser/tests/DOMTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/DOMTests.java,v
retrieving revision 1.6
diff -u -r1.6 DOMTests.java
--- parser/org/eclipse/cdt/core/parser/tests/DOMTests.java 20 Mar 2003 15:13:02 -0000 1.6
+++ parser/org/eclipse/cdt/core/parser/tests/DOMTests.java 23 Mar 2003 23:00:35 -0000
@@ -7,6 +7,7 @@
import junit.framework.TestCase;
+import org.eclipse.cdt.internal.core.dom.ArrayQualifier;
import org.eclipse.cdt.internal.core.dom.BaseSpecifier;
import org.eclipse.cdt.internal.core.dom.ClassSpecifier;
import org.eclipse.cdt.internal.core.dom.DOMBuilder;
@@ -14,6 +15,7 @@
import org.eclipse.cdt.internal.core.dom.Expression;
import org.eclipse.cdt.internal.core.dom.ParameterDeclaration;
import org.eclipse.cdt.internal.core.dom.ParameterDeclarationClause;
+import org.eclipse.cdt.internal.core.dom.PointerOperator;
import org.eclipse.cdt.internal.core.dom.SimpleDeclaration;
import org.eclipse.cdt.internal.core.dom.TranslationUnit;
import org.eclipse.cdt.internal.core.parser.Parser;
@@ -341,6 +343,123 @@
assertNull( integerDeclarator.getParms() );
}
+ public void testFunctionModifiers() throws Exception
+ {
+ Writer code = new StringWriter();
+ code.write( "void foo( void ) const throw ( yay, nay, we::dont::care );");
+ TranslationUnit translationUnit = parse( code.toString() );
+ List tudeclarations = translationUnit.getDeclarations();
+ assertEquals( 1, tudeclarations.size() );
+ SimpleDeclaration decl1 = (SimpleDeclaration)tudeclarations.get(0);
+ assertEquals( decl1.getDeclSpecifier().getType(), DeclSpecifier.t_void);
+ assertEquals( decl1.getDeclarators().size(), 1 );
+ Declarator declarator = (Declarator)decl1.getDeclarators().get(0);
+ assertEquals( declarator.getName().toString(), "foo");
+ assertTrue( declarator.isConst() );
+ assertFalse( declarator.isVolatile() );
+ List exceptions = declarator.getExceptionSpecifier();
+ assertEquals( exceptions.size(), 3 );
+ Name n = (Name)exceptions.get(0);
+ assertEquals( n.toString(), "yay");
+ n = (Name)exceptions.get(1);
+ assertEquals( n.toString(), "nay");
+ n = (Name)exceptions.get(2);
+ assertEquals( n.toString(), "we::dont::care");
+ }
+
+
+ public void testArrays() throws Exception
+ {
+ // Parse and get the translaton unit
+ Writer code = new StringWriter();
+ code.write("int x [5][];");
+ TranslationUnit translationUnit = parse( code.toString() );
+ List tudeclarations = translationUnit.getDeclarations();
+ assertEquals( 1, tudeclarations.size() );
+ SimpleDeclaration decl1 = (SimpleDeclaration)tudeclarations.get(0);
+ assertEquals( decl1.getDeclSpecifier().getType(), DeclSpecifier.t_int);
+ assertEquals( decl1.getDeclarators().size(), 1 );
+ Declarator declarator = (Declarator)decl1.getDeclarators().get(0);
+ assertEquals( declarator.getName().toString(), "x");
+ List arrayQualifiers = declarator.getArrayQualifiers();
+ assertEquals( 2, arrayQualifiers.size() );
+ ArrayQualifier q1 =(ArrayQualifier)arrayQualifiers.get(0);
+ assertNotNull( q1.getExpression() );
+ List tokens = q1.getExpression().tokens();
+ assertEquals( tokens.size(), 1 );
+ ArrayQualifier q2 =(ArrayQualifier)arrayQualifiers.get(1);
+ assertNull( q2.getExpression() );
+ }
+
+ public void testPointerOperators() throws Exception
+ {
+ // Parse and get the translaton unit
+ Writer code = new StringWriter();
+ code.write("int * x = 0, & y, * const * const volatile * z;");
+ TranslationUnit translationUnit = parse(code.toString());
+
+ List tudeclarations = translationUnit.getDeclarations();
+ assertEquals( 1, tudeclarations.size() );
+ SimpleDeclaration decl1 = (SimpleDeclaration)tudeclarations.get(0);
+ assertEquals( decl1.getDeclSpecifier().getType(), DeclSpecifier.t_int);
+
+ assertEquals( 3, decl1.getDeclarators().size() );
+
+ Declarator declarator1 = (Declarator)decl1.getDeclarators().get( 0 );
+ assertEquals( declarator1.getName().toString(), "x" );
+ Expression initValue1 = declarator1.getExpression();
+ assertEquals( initValue1.tokens().size(), 1 );
+ List ptrOps1 = declarator1.getPointerOperators();
+ assertNotNull( ptrOps1 );
+ assertEquals( 1, ptrOps1.size() );
+ PointerOperator po1 = (PointerOperator)ptrOps1.get(0);
+ assertNotNull( po1 );
+ assertFalse( po1.isConst() );
+ assertFalse( po1.isVolatile() );
+ assertEquals( po1.getType(), PointerOperator.t_pointer );
+ Token t1 = (Token)initValue1.tokens().get(0);
+ assertEquals( t1.getType(), Token.tINTEGER );
+ assertEquals( t1.getImage(), "0");
+
+ Declarator declarator2 = (Declarator)decl1.getDeclarators().get( 1 );
+ assertEquals( declarator2.getName().toString(), "y" );
+ assertNull( declarator2.getExpression() );
+ List ptrOps2 = declarator2.getPointerOperators();
+ assertNotNull( ptrOps2 );
+ assertEquals( 1, ptrOps2.size() );
+ PointerOperator po2 = (PointerOperator)ptrOps2.get(0);
+ assertNotNull( po2 );
+ assertFalse( po2.isConst() );
+ assertFalse( po2.isVolatile() );
+ assertEquals( po2.getType(), PointerOperator.t_reference );
+
+ Declarator declarator3 = (Declarator)decl1.getDeclarators().get( 2 );
+ assertEquals( "z", declarator3.getName().toString() );
+ List ptrOps3 = declarator3.getPointerOperators();
+ assertNotNull( ptrOps3 );
+ assertEquals( 3, ptrOps3.size() );
+
+ //* const
+ PointerOperator po3 = (PointerOperator)ptrOps3.get(0);
+ assertNotNull( po3 );
+ assertTrue( po3.isConst() );
+ assertFalse( po3.isVolatile() );
+ assertEquals( po3.getType(), PointerOperator.t_pointer );
+ // * const volatile
+ PointerOperator po4 = (PointerOperator)ptrOps3.get(1);
+ assertNotNull( po4 );
+ assertEquals( po4.getType(), PointerOperator.t_pointer );
+ assertTrue( po4.isConst() );
+ assertTrue( po4.isVolatile() );
+ // *
+ PointerOperator po5 = (PointerOperator)ptrOps3.get(2);
+ assertNotNull( po5 );
+ assertFalse( po5.isConst() );
+ assertFalse( po5.isVolatile() );
+ assertEquals( po5.getType(), PointerOperator.t_pointer );
+ }
+
+
// public void testErrors()
// {
// validateWeEncounterAnError( "void myFunc( int hey, flo );");
@@ -367,8 +486,7 @@
}catch( IOException io )
{
fail( "IOException thrown");
- }
-
+ }
}
}