Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2007-03-22 14:28:35 +0000
committerAnton Leherbauer2007-03-22 14:28:35 +0000
commit34cf7052a6c2f81b08352c6055878526a357508d (patch)
tree217a4b30782707af0345e3c53f520519b4a1ab7c /core/org.eclipse.cdt.core/parser
parentb0bdfa4229a32c0997a47160247f5ed2a9889ab9 (diff)
downloadorg.eclipse.cdt-34cf7052a6c2f81b08352c6055878526a357508d.tar.gz
org.eclipse.cdt-34cf7052a6c2f81b08352c6055878526a357508d.tar.xz
org.eclipse.cdt-34cf7052a6c2f81b08352c6055878526a357508d.zip
Fix for 178577: need IASTCompletionNode interface in dom parser (patch by Mike Kucera)
Diffstat (limited to 'core/org.eclipse.cdt.core/parser')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTCompletionNode.java38
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTCompletionNode.java45
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/ISourceCodeParser.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java3
6 files changed, 67 insertions, 46 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTCompletionNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTCompletionNode.java
index 459f34adfc0..bf025edb807 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTCompletionNode.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTCompletionNode.java
@@ -16,19 +16,10 @@ import java.util.List;
import org.eclipse.cdt.core.parser.IToken;
/**
- * This class represents the node that would occur at the point of a context
- * completion.
- *
- * This node may contain the prefix text of an identifer up to the point. If
- * there is no prefix, the completion occurred at the point where a new token
- * would have begun.
- *
- * The node points to the parent node where this node, if replaced by a proper
- * node, would reside in the tree.
*
* @author Doug Schaefer
*/
-public class ASTCompletionNode {
+public class ASTCompletionNode implements IASTCompletionNode {
private IToken completionToken;
@@ -36,8 +27,6 @@ public class ASTCompletionNode {
private IASTTranslationUnit translationUnit;
- // used for debug
- public int count;
/**
* Only constructor.
@@ -59,38 +48,29 @@ public class ASTCompletionNode {
names.add(name);
}
- /**
- * If the point of completion was at the end of a potential identifier, this
- * string contains the text of that identifier.
- *
- * @return the prefix text up to the point of completion
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.dom.ast.IASTCompletionNode#getPrefix()
*/
public String getPrefix() {
return completionToken.getType() != IToken.tEOC ? completionToken.getImage() : ""; //$NON-NLS-1$
}
- /**
- * Get the length of the completion point.
- *
- * @return length of completion token
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.dom.ast.IASTCompletionNode#getLength()
*/
public int getLength() {
return completionToken.getLength();
}
- /**
- * Get a list of names that fit in this context.
- *
- * @return array of IASTName's
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.dom.ast.IASTCompletionNode#getNames()
*/
public IASTName[] getNames() {
return (IASTName[]) names.toArray(new IASTName[names.size()]);
}
- /**
- * Get the translation unit for this completion
- *
- * @return the translation unit
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.dom.ast.IASTCompletionNode#getTranslationUnit()
*/
public IASTTranslationUnit getTranslationUnit() {
return translationUnit;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTCompletionNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTCompletionNode.java
new file mode 100644
index 00000000000..76d21301994
--- /dev/null
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTCompletionNode.java
@@ -0,0 +1,45 @@
+package org.eclipse.cdt.core.dom.ast;
+
+/**
+ * This represents the node that would occur at the point of a context
+ * completion.
+ *
+ * This node may contain the prefix text of an identifer up to the point. If
+ * there is no prefix, the completion occurred at the point where a new token
+ * would have begun.
+ *
+ * The node points to the parent node where this node, if replaced by a proper
+ * node, would reside in the tree.
+ */
+public interface IASTCompletionNode {
+
+ /**
+ * If the point of completion was at the end of a potential identifier, this
+ * string contains the text of that identifier.
+ *
+ * @return the prefix text up to the point of completion
+ */
+ public String getPrefix();
+
+ /**
+ * Get the length of the completion point.
+ *
+ * @return length of completion token
+ */
+ public int getLength();
+
+ /**
+ * Get a list of names that fit in this context.
+ *
+ * @return array of IASTName's
+ */
+ public IASTName[] getNames();
+
+ /**
+ * Get the translation unit for this completion
+ *
+ * @return the translation unit
+ */
+ public IASTTranslationUnit getTranslationUnit();
+
+}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/ISourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/ISourceCodeParser.java
index dc252f2e423..906b73c8a88 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/ISourceCodeParser.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/ISourceCodeParser.java
@@ -10,8 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser;
-import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
+import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.parser.ParseError;
/**
* Interface for an AST source code parser.
@@ -49,11 +50,11 @@ public interface ISourceCodeParser {
public boolean encounteredError();
/**
- * Compute an {@link ASTCompletionNode} for code completion.
+ * Compute an {@link IASTCompletionNode} for code completion.
* @return a completion node or <code>null</code> if none could be computed
*
* @throws ParseError if parsing has been cancelled or for other reasons
*/
- public ASTCompletionNode getCompletionNode();
+ public IASTCompletionNode getCompletionNode();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java
index 55a85168011..bbfe685bede 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java
@@ -17,7 +17,7 @@ import java.util.List;
import java.util.Set;
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
-import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
+import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
@@ -27,8 +27,8 @@ import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.ISourceCodeParser;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.AbstractLanguage;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
import org.eclipse.cdt.core.model.ICLanguageKeywords;
+import org.eclipse.cdt.core.model.IContributedModelBuilder;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.IParserLogService;
@@ -98,7 +98,7 @@ public abstract class AbstractCLanguage extends AbstractLanguage implements ICLa
return ast;
}
- public ASTCompletionNode getCompletionNode(CodeReader reader, IScannerInfo scanInfo,
+ public IASTCompletionNode getCompletionNode(CodeReader reader, IScannerInfo scanInfo,
ICodeReaderFactory fileCreator, IIndex index, IParserLogService log, int offset) throws CoreException {
IScanner scanner= createScanner(reader, scanInfo, fileCreator, log);
@@ -108,10 +108,7 @@ public abstract class AbstractCLanguage extends AbstractLanguage implements ICLa
// Run the parse and return the completion node
parser.parse();
- ASTCompletionNode node= parser.getCompletionNode();
- if (node != null) {
- node.count= scanner.getCount();
- }
+ IASTCompletionNode node= parser.getCompletionNode();
return node;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java
index 766d3410972..f4a0f98f543 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java
@@ -17,7 +17,7 @@ import java.util.List;
import java.util.Set;
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
-import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
+import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
@@ -97,7 +97,7 @@ public abstract class AbstractCPPLanguage extends AbstractLanguage implements IC
return ast;
}
- public ASTCompletionNode getCompletionNode(CodeReader reader, IScannerInfo scanInfo,
+ public IASTCompletionNode getCompletionNode(CodeReader reader, IScannerInfo scanInfo,
ICodeReaderFactory fileCreator, IIndex index, IParserLogService log, int offset) throws CoreException {
IScanner scanner= createScanner(reader, scanInfo, fileCreator, log);
scanner.setContentAssistMode(offset);
@@ -106,10 +106,7 @@ public abstract class AbstractCPPLanguage extends AbstractLanguage implements IC
// Run the parse and return the completion node
parser.parse();
- ASTCompletionNode node= parser.getCompletionNode();
- if (node != null) {
- node.count= scanner.getCount();
- }
+ IASTCompletionNode node= parser.getCompletionNode();
return node;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java
index 6bb1731b037..ac48f4cd9bf 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java
@@ -19,6 +19,7 @@ import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
import org.eclipse.cdt.core.dom.ast.IASTBreakStatement;
import org.eclipse.cdt.core.dom.ast.IASTCaseStatement;
import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
+import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTConditionalExpression;
import org.eclipse.cdt.core.dom.ast.IASTContinueStatement;
@@ -147,7 +148,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser {
*
* @see org.eclipse.cdt.internal.core.dom.parser.ISourceCodeParser#getCompletionNode()
*/
- public ASTCompletionNode getCompletionNode() {
+ public IASTCompletionNode getCompletionNode() {
return completionNode;
}

Back to the top