Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Changes to the AST in CDT 7.0

Hi,
I have summarized changes in the AST representation of this release and
put them on wiki: http://wiki.eclipse.org/CDT/planning/7.0 

The LR Parsers use some AST-constructs that are now deprecated. It'd be
good to 
update the parsers before the 7.0 release.

Below you find what I camp up with.
Markus.


Chages to the AST:
==================

Function calls:
   * The arguments of a function call are represented as
IASTInitializerClause[].
   * For function calls with more than one argument the ast no longer
contains
     an IASTExpressionList.

Initializers:
   * An equals initializer is represented with an IASTEqualsInitializer
node.
   * The member of an IASTInitializerList is no longer wrapped in an
     IASTInitializerExpression.

Enumerations:
   * A new scope kind for enumeration scope (EScopeKind.eEnumeration)
has been added.
   * IBinding getOwner() for enumerators returns an enum-scope.

Functional casts and compound literals:
   * Uniformly represented as ICPPASTSimpleTypeConstructorExpression.
   * The interface ICPPASTTypenameExpression is no longer used.

C++ and Gnu specific constants:
   * Constants have been pulled up into the following base interfaces:
     IASTDeclSpecifier, IASTSimpleDeclSpecifier, IBasicType.
   * IGPPASTDeclSpecifier, IGCCASTSimpleDeclSpecifier,
IGPPASTSimpleDeclSpecifier
     and IGPPBasicType are no longer used.



New interfaces:
IASTEqualsInitializer, IASTInitializerClause, ICPPASTArrayDeclarator,
ICPPASTDeclarator, ICPPASTEnumerationSpecifier, ICPPASTFieldDeclarator,
ICPPASTInitializerList, ICPPASTPackExpandable,
ICPPASTPackExpansionExpression,
ICPPASTStaticAssertDeclaration, ICPPASTTypeId, ICPPEnumeration,
ICPPParameterPackType.


Enhanced interfaces:
IArrayType, IASTArraySubscriptExpression, IASTBinaryExpression,
IASTDeclSpecifier,
IASTEqualsInitializer, IASTExpression, IASTFunctionCallExpression,
IASTInitializerList,
IASTPreprocessorPragmaStatement, IASTReturnStatement,
IASTSimpleDeclSpecifier,
IASTTranslationUnit, IASTUnaryExpression, IBasicType,
ICASTDesignatedInitializer,
ICNodeFactory, ICPPASTConstructorChainInitializer,
ICPPASTConstructorInitializer,
ICPPASTExplicitTemplateInstantiation, ICPPASTFunctionDeclarator,
ICPPASTNewExpression,
ICPPASTParameterDeclaration, ICPPASTReferenceOperator,
ICPPASTSimpleTypeConstructorExpression,
ICPPASTSimpleTypeTemplateParameter, ICPPASTTemplateDeclaration,
ICPPASTTemplatedTypeTemplateParameter,
ICPPASTTemplateParameter, ICPPFunction, ICPPFunctionType,
ICPPNodeFactory, ICPPParameter, 
ICPPReferenceType, ICPPTemplateArgument, ICPPTemplateInstance,
ICPPTemplateParameter,
ICPPTemplateParameterMap, IEnumeration, IIndex, IIndexChangeEvent,
IIndexFile,
IIndexManager, IName, IncludeFileContentProvider, INodeFactory, IToken.



Back to the top