Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2008-03-24 18:51:29 +0000
committerMike Kucera2008-03-24 18:51:29 +0000
commit2e3fbf6c23755e395ff5ba843f9e1b35279ab32e (patch)
tree905f6d2fc24c1c8999fabba210c7c4045849e3db /lrparser
parent8d37ffe0608d00f84191d229b9d4030e641f347f (diff)
downloadorg.eclipse.cdt-2e3fbf6c23755e395ff5ba843f9e1b35279ab32e.tar.gz
org.eclipse.cdt-2e3fbf6c23755e395ff5ba843f9e1b35279ab32e.tar.xz
org.eclipse.cdt-2e3fbf6c23755e395ff5ba843f9e1b35279ab32e.zip
decl spec node was missing info
Diffstat (limited to 'lrparser')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java3
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java41
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java1
4 files changed, 25 insertions, 28 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
index c683472099b..9c256a42df0 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
@@ -133,19 +133,16 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
@Override
protected IParser getExpressionStatementParser() {
- DebugUtil.printMethodTrace();
return new C99ExpressionStatementParser(parser.getOrderedTerminalSymbols());
}
@Override
protected IParser getNoCastExpressionParser() {
- DebugUtil.printMethodTrace();
return new C99NoCastExpressionParser(parser.getOrderedTerminalSymbols());
}
@Override
protected IParser getSizeofExpressionParser() {
- DebugUtil.printMethodTrace();
return new C99SizeofExpressionParser(parser.getOrderedTerminalSymbols());
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java
index 93331543d22..8299843e6c9 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java
@@ -379,7 +379,7 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory {
}
public IASTSimpleDeclaration newSimpleDeclaration(IASTDeclSpecifier declSpecifier) {
- return new ISOCPPASTSimpleDeclaration(declSpecifier);
+ return new CPPASTSimpleDeclaration(declSpecifier);
}
public IASTInitializerExpression newInitializerExpression(IASTExpression expression) {
@@ -403,8 +403,7 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory {
return new CPPASTFunctionDeclarator(name);
}
- public ICPPASTSimpleTypeConstructorExpression newCPPSimpleTypeConstructorExpression(
- int type, IASTExpression expression) {
+ public ICPPASTSimpleTypeConstructorExpression newCPPSimpleTypeConstructorExpression(int type, IASTExpression expression) {
return new CPPASTSimpleTypeConstructorExpression(type, expression);
}
@@ -516,8 +515,7 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory {
return new CPPASTFunctionDeclarator(name);
}
- public IASTParameterDeclaration newParameterDeclaration(
- IASTDeclSpecifier declSpec, IASTDeclarator declarator) {
+ public IASTParameterDeclaration newParameterDeclaration(IASTDeclSpecifier declSpec, IASTDeclarator declarator) {
return new CPPASTParameterDeclaration(declSpec, declarator);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
index d5035c25694..3f70f92677a 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
@@ -55,6 +55,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorInitializer;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConversionName;
+import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeleteExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExplicitTemplateInstantiation;
@@ -965,29 +966,37 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
//TODO int kind = asC99Kind(token)
int kind = token.getKind();
switch(kind){
- case TK_typedef: node.setStorageClass(IASTDeclSpecifier.sc_typedef); return;
- case TK_extern: node.setStorageClass(IASTDeclSpecifier.sc_extern); return;
- case TK_static: node.setStorageClass(IASTDeclSpecifier.sc_static); return;
- case TK_auto: node.setStorageClass(IASTDeclSpecifier.sc_auto); return;
- case TK_register: node.setStorageClass(IASTDeclSpecifier.sc_register); return;
+ case TK_typedef: node.setStorageClass(IASTDeclSpecifier.sc_typedef); return;
+ case TK_extern: node.setStorageClass(IASTDeclSpecifier.sc_extern); return;
+ case TK_static: node.setStorageClass(IASTDeclSpecifier.sc_static); return;
+ case TK_auto: node.setStorageClass(IASTDeclSpecifier.sc_auto); return;
+ case TK_register: node.setStorageClass(IASTDeclSpecifier.sc_register); return;
+ case TK_mutable: node.setStorageClass(ICPPASTDeclSpecifier.sc_mutable); return;
+
case TK_inline: node.setInline(true); return;
case TK_const: node.setConst(true); return;
case TK_volatile: node.setVolatile(true); return;
}
- // TODO: this isn't finished
if(node instanceof ICPPASTSimpleDeclSpecifier) {
ICPPASTSimpleDeclSpecifier n = (ICPPASTSimpleDeclSpecifier) node;
switch(kind) {
- case TK_void: n.setType(IASTSimpleDeclSpecifier.t_void); break;
- case TK_char: n.setType(IASTSimpleDeclSpecifier.t_char); break;
- case TK_int: n.setType(IASTSimpleDeclSpecifier.t_int); break;
- case TK_float: n.setType(IASTSimpleDeclSpecifier.t_float); break;
- case TK_double: n.setType(IASTSimpleDeclSpecifier.t_double); break;
+ case TK_void: n.setType(IASTSimpleDeclSpecifier.t_void); break;
+ case TK_char: n.setType(IASTSimpleDeclSpecifier.t_char); break;
+ case TK_int: n.setType(IASTSimpleDeclSpecifier.t_int); break;
+ case TK_float: n.setType(IASTSimpleDeclSpecifier.t_float); break;
+ case TK_double: n.setType(IASTSimpleDeclSpecifier.t_double); break;
+ case TK_bool: n.setType(ICPPASTSimpleDeclSpecifier.t_bool); break;
+ case TK_wchar_t: n.setType(ICPPASTSimpleDeclSpecifier.t_wchar_t); break;
+
case TK_signed: n.setSigned(true); break;
case TK_unsigned: n.setUnsigned(true); break;
case TK_long: n.setLong(true); break;
case TK_short: n.setShort(true); break;
+ case TK_friend: n.setFriend(true); break;
+ case TK_virtual: n.setVirtual(true); break;
+ case TK_volatile: n.setVolatile(true); break;
+ case TK_explicit: n.setExplicit(true); break;
}
}
}
@@ -1146,7 +1155,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
public void consumeInitDeclaratorComplete() {
- DebugUtil.printMethodTrace();
+ if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
IASTDeclarator declarator = (IASTDeclarator) astStack.peek();
if(!(declarator instanceof IASTFunctionDeclarator))
@@ -1158,20 +1167,12 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(alternateDeclarator == null || alternateDeclarator instanceof IASTProblemDeclaration)
return;
-
astStack.pop();
IASTNode ambiguityNode = new CPPASTAmbiguousDeclarator(declarator, (IASTDeclarator)alternateDeclarator);
-
- System.out.println("AMBIGUOUS DECLARATOR!");
-// ASTPrinter.print(declarator);
-// System.out.println();
-// ASTPrinter.print(alternateDeclarator);
-// System.out.println();
setOffsetAndLength(ambiguityNode);
astStack.push(ambiguityNode);
-
if(TRACE_AST_STACK) System.out.println(astStack);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java
index 5d9427dbe6f..cb7cffe8c12 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java
@@ -11,6 +11,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration;
* @author Mike Kucera
*
*/
+@Deprecated
public class ISOCPPASTSimpleDeclaration extends CPPASTSimpleDeclaration implements IASTAmbiguityParent {
public ISOCPPASTSimpleDeclaration() {

Back to the top