Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommentTests.java15
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java24
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenter.java61
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenterVisitor.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/NodeCommenter.java24
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java1
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IncludeGuardDetection.java8
8 files changed, 62 insertions, 88 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommentTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommentTests.java
index ca8d20b7f90..ded306768b4 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommentTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommentTests.java
@@ -29,14 +29,14 @@ public class CommentTests extends AST2TestBase {
return suite(CommentTests.class);
}
- public void testCountCommentsInHeaderFile() throws ParserException{
+ public void testCountCommentsInHeaderFile() throws ParserException {
IASTTranslationUnit tu = parse(getHSource(), ParserLanguage.CPP, false, true);
IASTComment[] comments = tu.getComments();
assertEquals(9, comments.length);
}
- public void testCommentsInHeaderFile() throws ParserException{
+ public void testCommentsInHeaderFile() throws ParserException {
IASTTranslationUnit tu = parse(getHSource(), ParserLanguage.CPP, false, true);
IASTComment[] comments = tu.getComments();
@@ -51,14 +51,14 @@ public class CommentTests extends AST2TestBase {
assertEquals("//Endcomment h", new String(comments[8].getComment()));
}
- public void testCountCommentsInCPPFile() throws ParserException{
+ public void testCountCommentsInCPPFile() throws ParserException {
IASTTranslationUnit tu = parse(getCppSource(), ParserLanguage.CPP, false, true);
IASTComment[] comments = tu.getComments();
assertEquals(10, comments.length);
}
- public void testCommentsInCPPFile() throws ParserException{
+ public void testCommentsInCPPFile() throws ParserException {
IASTTranslationUnit tu = parse(getCppSource(), ParserLanguage.CPP, false, true);
IASTComment[] comments = tu.getComments();
@@ -74,14 +74,14 @@ public class CommentTests extends AST2TestBase {
assertEquals("//An integer", new String(comments[9].getComment()));
}
- public void testCountCommentsInCFile() throws ParserException{
+ public void testCountCommentsInCFile() throws ParserException {
IASTTranslationUnit tu = parse(getCSource(), ParserLanguage.C, false, true);
IASTComment[] comments = tu.getComments();
assertEquals(4, comments.length);
}
- public void testCommentsInCFile() throws ParserException{
+ public void testCommentsInCFile() throws ParserException {
IASTTranslationUnit tu = parse(getCSource(), ParserLanguage.C, false, true);
IASTComment[] comments = tu.getComments();
@@ -211,7 +211,7 @@ public class CommentTests extends AST2TestBase {
}
// //comment
- public void testCommentLocation_bug186337() throws Exception{
+ public void testCommentLocation_bug186337() throws Exception {
CharSequence code= getContents(1)[0];
IASTTranslationUnit tu = parse(code.toString(), ParserLanguage.CPP, false, true);
IASTComment[] comments = tu.getComments();
@@ -234,7 +234,6 @@ public class CommentTests extends AST2TestBase {
// #ifdef WHATEVA // TODO: ignored
// #endif // TODO: ignored
// // TODO: shows up in task list
-
public void testCommentInDirectives_bug192546() throws Exception {
CharSequence code= getContents(1)[0];
IASTTranslationUnit tu = parse(code.toString(), ParserLanguage.CPP, false, false);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java
index 7a5b2a3c690..370ef687b8d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java
@@ -6,7 +6,7 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * John Camelon (IBM) - Initial API and implementation
+ * John Camelon (IBM) - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.cpp;
@@ -22,13 +22,12 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
/**
* Extern "C" construct.
*/
-public class CPPASTLinkageSpecification extends ASTNode implements
- ICPPASTLinkageSpecification, IASTAmbiguityParent {
-
+public class CPPASTLinkageSpecification extends ASTNode
+ implements ICPPASTLinkageSpecification, IASTAmbiguityParent {
private String fLiteral;
private IASTDeclaration[] fAllDeclarations;
private IASTDeclaration[] fActiveDeclarations;
- private int fLastDeclaration=-1;
+ private int fLastDeclaration = -1;
public CPPASTLinkageSpecification() {
}
@@ -45,13 +44,10 @@ public class CPPASTLinkageSpecification extends ASTNode implements
@Override
public CPPASTLinkageSpecification copy(CopyStyle style) {
CPPASTLinkageSpecification copy = new CPPASTLinkageSpecification(fLiteral);
- for (IASTDeclaration declaration : getDeclarations())
+ for (IASTDeclaration declaration : getDeclarations()) {
copy.addDeclaration(declaration == null ? null : declaration.copy(style));
- copy.setOffsetAndLength(this);
- if (style == CopyStyle.withLocations) {
- copy.setCopyLocation(this);
}
- return copy;
+ return copy(copy, style);
}
@Override
@@ -70,7 +66,7 @@ public class CPPASTLinkageSpecification extends ASTNode implements
if (decl != null) {
decl.setParent(this);
decl.setPropertyInParent(OWNED_DECLARATION);
- fAllDeclarations = ArrayUtil.appendAt( IASTDeclaration.class, fAllDeclarations, ++fLastDeclaration, decl);
+ fAllDeclarations = ArrayUtil.appendAt(IASTDeclaration.class, fAllDeclarations, ++fLastDeclaration, decl);
fActiveDeclarations= null;
}
}
@@ -99,9 +95,9 @@ public class CPPASTLinkageSpecification extends ASTNode implements
public boolean accept(ASTVisitor action) {
if (action.shouldVisitDeclarations) {
switch (action.visit(this)) {
- case ASTVisitor.PROCESS_ABORT : return false;
- case ASTVisitor.PROCESS_SKIP : return true;
- default : break;
+ case ASTVisitor.PROCESS_ABORT: return false;
+ case ASTVisitor.PROCESS_SKIP: return true;
+ default: break;
}
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenter.java
index 00a703461af..f78c870b83f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenter.java
@@ -65,7 +65,7 @@ public class ASTCommenter {
}
private int checkOffsets(IASTNode node) {
- int offset = ((ASTNode)node).getOffset();
+ int offset = ((ASTNode) node).getOffset();
int status = PROCESS_CONTINUE;
if (isCommentOnSameLine(node)
@@ -169,33 +169,29 @@ public class ASTCommenter {
}
/**
- * Creates a NodeCommentMap for the given TranslationUnit. This is the only way
- * to get a NodeCommentMap which contains all the comments mapped against nodes.
+ * Creates a NodeCommentMap for the given AST. This is the only way to get a NodeCommentMap
+ * which contains all the comments mapped against nodes.
*
- * @param tu TranslationUnit
+ * @param ast the AST
* @return NodeCommentMap
*/
- public static NodeCommentMap getCommentedNodeMap(IASTTranslationUnit tu){
+ public static NodeCommentMap getCommentedNodeMap(IASTTranslationUnit ast) {
NodeCommentMap commentMap = new NodeCommentMap();
- if (tu == null) {
+ if (ast == null) {
return commentMap;
}
- IASTComment[] commentsArray = tu.getComments();
- if (commentsArray == null) {
- return commentMap;
- }
- List<IASTComment> comments = filterNonTuComments(commentsArray);
- return addCommentsToCommentMap(tu, comments);
- }
-
- private static List<IASTComment> filterNonTuComments(IASTComment[] comments) {
- List<IASTComment> filtered = new ArrayList<IASTComment>(comments.length);
- for (IASTComment comment : comments) {
+ IASTComment[] commentsArray = ast.getComments();
+ List<IASTComment> comments = new ArrayList<IASTComment>(commentsArray.length);
+ for (IASTComment comment : commentsArray) {
if (comment.isPartOfTranslationUnitFile()) {
- filtered.add(comment);
+ comments.add(comment);
}
}
- return filtered;
+ assignPreprocessorComments(commentMap, comments, ast);
+ CommentHandler commentHandler = new CommentHandler(comments);
+ ASTCommenterVisitor commenter = new ASTCommenterVisitor(commentHandler, commentMap);
+ ast.accept(commenter);
+ return commentMap;
}
private static boolean isCommentDirectlyBeforePreprocessorStatement(IASTComment comment,
@@ -204,11 +200,11 @@ public class ASTCommenter {
return true;
}
IASTFileLocation commentLocation = comment.getFileLocation();
- int preprcessorOffset = statement.getFileLocation().getNodeOffset();
- if (preprcessorOffset > commentLocation.getNodeOffset()) {
- PreprocessorRangeChecker vister = new PreprocessorRangeChecker(preprcessorOffset, commentLocation);
- tu.accept(vister);
- return vister.isPreStatementComment;
+ int preprocessorOffset = statement.getFileLocation().getNodeOffset();
+ if (preprocessorOffset > commentLocation.getNodeOffset()) {
+ PreprocessorRangeChecker visitor = new PreprocessorRangeChecker(preprocessorOffset, commentLocation);
+ tu.accept(visitor);
+ return visitor.isPreStatementComment;
}
return false;
}
@@ -218,22 +214,7 @@ public class ASTCommenter {
}
/**
- * Puts leading and training comments to the returned map and removes them from
- * the {@code comments} list.
- */
- private static NodeCommentMap addCommentsToCommentMap(IASTTranslationUnit tu,
- List<IASTComment> comments) {
- NodeCommentMap commentMap = new NodeCommentMap();
- CommentHandler commHandler = new CommentHandler(comments);
-
- assignPreprocessorComments(commentMap, comments, tu);
- ASTCommenterVisitor commenter = new ASTCommenterVisitor(commHandler, commentMap);
- tu.accept(commenter);
- return commentMap;
- }
-
- /**
- * Puts leading and training comments to {@code commentMap} and removes them from
+ * Puts leading and trailing comments to {@code commentMap} and removes them from
* the {@code comments} list.
*/
private static void assignPreprocessorComments(NodeCommentMap commentMap,
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenterVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenterVisitor.java
index a8a97e9dbb8..030b99f16d5 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenterVisitor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/ASTCommenterVisitor.java
@@ -39,7 +39,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTCompositeTypeSpecifier
* @author Guido Zgraggen IFS
*/
public class ASTCommenterVisitor extends ASTVisitor {
- protected CommentHandler commHandler;
+ protected CommentHandler commentHandler;
protected NodeCommentMap commentMap;
private NodeCommenter nodeCommenter;
@@ -61,14 +61,14 @@ public class ASTCommenterVisitor extends ASTVisitor {
shouldVisitTranslationUnit = true;
}
- public ASTCommenterVisitor(CommentHandler commHandler, NodeCommentMap commentMap) {
- this.commHandler = commHandler;
+ public ASTCommenterVisitor(CommentHandler commentHandler, NodeCommentMap commentMap) {
+ this.commentHandler = commentHandler;
this.commentMap = commentMap;
init();
}
private void init() {
- nodeCommenter = new NodeCommenter(this, commHandler, commentMap);
+ nodeCommenter = new NodeCommenter(this, commentHandler, commentMap);
}
@Override
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/NodeCommenter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/NodeCommenter.java
index ec0d9f9afc8..589a67b2510 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/NodeCommenter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/commenthandler/NodeCommenter.java
@@ -62,13 +62,13 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTWhileStatement;
*/
public class NodeCommenter {
protected ASTVisitor visitor;
- protected CommentHandler commHandler;
+ protected CommentHandler commentHandler;
protected NodeCommentMap commentMap;
protected List<IASTNode> children;
public NodeCommenter(ASTVisitor visitor, CommentHandler commHandler, NodeCommentMap commentMap) {
this.visitor = visitor;
- this.commHandler = commHandler;
+ this.commentHandler = commHandler;
this.commentMap = commentMap;
this.children = new ArrayList<IASTNode>();
}
@@ -122,17 +122,17 @@ public class NodeCommenter {
private void addLeadingCommentToMap(ASTNode node, IASTComment comment) {
commentMap.addLeadingCommentToNode(node, comment);
- commHandler.allreadyAdded(comment);
+ commentHandler.allreadyAdded(comment);
}
private void addTrailingCommentToMap(ASTNode node, IASTComment comment) {
commentMap.addTrailingCommentToNode(node, comment);
- commHandler.allreadyAdded(comment);
+ commentHandler.allreadyAdded(comment);
}
private void addFreestandingCommentToMap(ASTNode node, IASTComment comment) {
commentMap.addFreestandingCommentToNode(node, comment);
- commHandler.allreadyAdded(comment);
+ commentHandler.allreadyAdded(comment);
}
private boolean isTrailing(ASTNode node, ASTNode com, int nodeLineNumber, int commentLineNumber) {
@@ -200,8 +200,8 @@ public class NodeCommenter {
}
protected int appendComments(ASTNode node) {
- while (commHandler.hasMore()) {
- IASTComment comment = commHandler.getFirst();
+ while (commentHandler.hasMore()) {
+ IASTComment comment = commentHandler.getFirst();
if (isNotSameFile(node, comment)) {
return ASTVisitor.PROCESS_SKIP;
@@ -215,8 +215,8 @@ public class NodeCommenter {
}
protected int appendFreestandingComments(ASTNode node) {
- while (commHandler.hasMore()) {
- IASTComment comment = commHandler.getFirst();
+ while (commentHandler.hasMore()) {
+ IASTComment comment = commentHandler.getFirst();
if (isNotSameFile(node, comment)) {
return ASTVisitor.PROCESS_SKIP;
@@ -234,9 +234,9 @@ public class NodeCommenter {
}
public void appendRemainingComments(IASTDeclaration declaration) {
- while (commHandler.hasMore()) {
- IASTComment comment = commHandler.getFirst();
- if (appendComment((ASTNode)declaration, comment)) {
+ while (commentHandler.hasMore()) {
+ IASTComment comment = commentHandler.getFirst();
+ if (appendComment((ASTNode) declaration, comment)) {
continue;
}
addFreestandingCommentToMap((ASTNode) declaration, comment);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java
index 43bc89e7012..993acd2402a 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java
@@ -113,6 +113,7 @@ abstract class ASTPreprocessorNode extends ASTNode {
class ASTComment extends ASTPreprocessorNode implements IASTComment {
private final boolean fIsBlockComment;
private String fFilePath;
+
public ASTComment(IASTTranslationUnit parent, String filePath, int offset, int endOffset, boolean isBlockComment) {
super(parent, IASTTranslationUnit.PREPROCESSOR_STATEMENT, offset, endOffset);
fIsBlockComment= isBlockComment;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
index 66382144eba..6d6518d4200 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
@@ -68,8 +68,8 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
/**
- * C-Preprocessor providing tokens for the parsers. The class should not be used directly, rather than that
- * you should be using the {@link IScanner} interface.
+ * C-Preprocessor providing tokens for the parsers. The class should not be used directly,
+ * rather than that you should be using the {@link IScanner} interface.
* @since 5.0
*/
public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
@@ -87,8 +87,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
private static final char[] ONE = "1".toCharArray(); //$NON-NLS-1$
-
- // standard built-ins
+ // Standard built-ins
private static final ObjectStyleMacro __CDT_PARSER__= new ObjectStyleMacro("__CDT_PARSER__".toCharArray(), ONE); //$NON-NLS-1$
private static final ObjectStyleMacro __cplusplus = new ObjectStyleMacro("__cplusplus".toCharArray(), ONE); //$NON-NLS-1$
private static final ObjectStyleMacro __STDC__ = new ObjectStyleMacro("__STDC__".toCharArray(), ONE); //$NON-NLS-1$
@@ -374,7 +373,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
return fLocationMap;
}
- private void configureKeywords(ParserLanguage language, IScannerExtensionConfiguration configuration) {
+ private void configureKeywords(ParserLanguage language, IScannerExtensionConfiguration configuration) {
Keywords.addKeywordsPreprocessor(fPPKeywords);
if (language == ParserLanguage.C) {
Keywords.addKeywordsC(fKeywords);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IncludeGuardDetection.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IncludeGuardDetection.java
index 2674e80e36a..cdd034e83f8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IncludeGuardDetection.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IncludeGuardDetection.java
@@ -6,9 +6,8 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Markus Schorn - initial API and implementation
+ * Markus Schorn - initial API and implementation
*******************************************************************************/
-
package org.eclipse.cdt.internal.core.parser.scanner;
import static org.eclipse.cdt.core.parser.OffsetLimitReachedException.ORIGIN_PREPROCESSOR_DIRECTIVE;
@@ -39,7 +38,7 @@ public class IncludeGuardDetection {
Token t = l.nextToken();
if (t.getType() == IToken.tIDENTIFIER) {
char[] guard= null;
- switch(ppKeywords.get(t.getCharImage())) {
+ switch (ppKeywords.get(t.getCharImage())) {
case IPreprocessorDirective.ppIfndef:
// #ifndef GUARD
t= l.nextToken();
@@ -98,7 +97,7 @@ public class IncludeGuardDetection {
Token t= l.nextDirective();
if (t.getType() == IToken.tEND_OF_INPUT)
return true;
- switch(ppKeywords.get(l.nextToken().getCharImage())) {
+ switch (ppKeywords.get(l.nextToken().getCharImage())) {
case IPreprocessorDirective.ppIf:
case IPreprocessorDirective.ppIfdef:
case IPreprocessorDirective.ppIfndef:
@@ -124,7 +123,6 @@ public class IncludeGuardDetection {
return t;
}
-
public static boolean detectIncludeEndif(Lexer l) {
l.saveState();
try {

Back to the top