[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-patch] Setting Project Nature in Parser
|
Hi Hoda,
Could you update and resent this patch.
Thanks,
Doug Schaefer
Rational Software - IBM Software Group
Ottawa, Ontario, Canada
| "Amer, Hoda" <hamer@xxxxxxxxxxxx>
Sent by: cdt-patch-admin@xxxxxxxxxxx
04/14/2003 11:31 AM
Please respond to cdt-patch
|
To:
"'cdt-patch@xxxxxxxxxxx'"
<cdt-patch@xxxxxxxxxxx>
cc:
Subject:
[cdt-patch] Setting Project Nature in
Parser |
This patch:
-determines the project
nature before calling the parser.
-sets the visibility
of member template methods.
Thanks,
Hoda
Index: parser/org/eclipse/cdt/internal/core/model/CModelBuilder.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/model/CModelBuilder.java,v
retrieving revision 1.7
diff -u -r1.7 CModelBuilder.java
--- parser/org/eclipse/cdt/internal/core/model/CModelBuilder.java 13 Apr 2003 22:01:29 -0000 1.7
+++ parser/org/eclipse/cdt/internal/core/model/CModelBuilder.java 14 Apr 2003 14:30:13 -0000
@@ -15,6 +15,7 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.INamespace;
import org.eclipse.cdt.core.model.IParent;
@@ -44,7 +45,7 @@
import org.eclipse.cdt.internal.core.dom.TranslationUnit;
import org.eclipse.cdt.internal.core.dom.TypeSpecifier;
import org.eclipse.cdt.internal.core.parser.Parser;
-import org.eclipse.cdt.internal.core.parser.ParserException;
+import org.eclipse.core.resources.IProject;
public class CModelBuilder {
@@ -54,9 +55,13 @@
}
public TranslationUnit parse() throws Exception {
+
DOMBuilder domBuilder = new DOMBuilder();
String code = translationUnit.getBuffer().getContents();
Parser parser = new Parser(code, domBuilder, true);
+ IProject currentProject = translationUnit.getCProject().getProject();
+ boolean hasCppNature = CoreModel.getDefault().hasCCNature(currentProject);
+ parser.setCppNature(hasCppNature);
parser.parse();
long startTime = System.currentTimeMillis();
generateModelElements(domBuilder.getTranslationUnit());
@@ -179,21 +184,7 @@
ITemplate template = (ITemplate) createFunctionSpecification(parent, simpleDeclaration, declarator, pdc, true);
String[] parameterTypes = getTemplateParameters(templateDeclaration);
template.setTemplateParameterTypes(parameterTypes);
-
}
-/*// typedef
- if(simpleDeclaration.getDeclSpecifier().isTypedef()){
- createTypeDef(parent, declarator, simpleDeclaration);
- } else {
- ParameterDeclarationClause pdc = declarator.getParms();
- if (pdc == null){
- createVariableSpecification(parent, simpleDeclaration, declarator);
- }
- else{
- createFunctionSpecification(parent, simpleDeclaration, declarator, pdc);
- }
- }
-*/
}
private void createInclusion(Parent parent, Inclusion inclusion){
// create element
@@ -398,7 +389,7 @@
element = newElement;
}else {
MethodTemplate newElement = new MethodTemplate(parent, declaratorName);
- // newElement.setVisibility(simpleDeclaration.getAccessSpecifier().getAccess());
+ newElement.setVisibility(simpleDeclaration.getAccessSpecifier().getAccess());
element = newElement;
}
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.28
diff -u -r1.28 Parser.java
--- parser/org/eclipse/cdt/internal/core/parser/Parser.java 13 Apr 2003 22:01:29 -0000 1.28
+++ parser/org/eclipse/cdt/internal/core/parser/Parser.java 14 Apr 2003 14:30:15 -0000
@@ -22,6 +22,7 @@
private IParserCallback callback;
private boolean quickParse = false;
private boolean parsePassed = true;
+ private boolean cppNature = true;
// TO DO: convert to a real symbol table
private Map currRegion = new HashMap();
@@ -2240,6 +2241,20 @@
protected void backup(Token mark) {
currToken = mark;
lastToken = null;
+ }
+
+ /**
+ * @return
+ */
+ public boolean isCppNature() {
+ return cppNature;
+ }
+
+ /**
+ * @param b
+ */
+ public void setCppNature(boolean b) {
+ cppNature = b;
}
}