1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

for loop conditions now work

This commit is contained in:
Mike Kucera 2008-04-01 22:01:15 +00:00
parent 30a1ab0388
commit a6d874156f
30 changed files with 11708 additions and 11717 deletions

View file

@ -2386,7 +2386,7 @@ public class AST2CPPTests extends AST2BaseTest {
buffer.append("struct B : public A { \n"); //$NON-NLS-1$
buffer.append(" int a1; \n"); //$NON-NLS-1$
buffer.append(" void f(); \n"); //$NON-NLS-1$
buffer.append("} \n"); //$NON-NLS-1$
buffer.append("}; \n"); //$NON-NLS-1$
buffer.append("int a3; \n"); //$NON-NLS-1$
buffer.append("void B::f(){ \n"); //$NON-NLS-1$
buffer.append(" int a4; \n"); //$NON-NLS-1$
@ -3340,23 +3340,19 @@ public class AST2CPPTests extends AST2BaseTest {
IFunction f2 = (IFunction) col.getName(3).resolveBinding();
IFunction f3 = (IFunction) col.getName(6).resolveBinding();
IASTFunctionDefinition def = (IASTFunctionDefinition) col.getName(5)
.getParent().getParent();
IASTFunctionDefinition def = (IASTFunctionDefinition) col.getName(5).getParent().getParent();
IScope scope = ((IASTCompoundStatement) def.getBody()).getScope();
IBinding[] bs = scope.find("f"); //$NON-NLS-1$
assertEquals(bs.length, 3);
assertEquals(3, bs.length);
assertSame(bs[0], f3);
assertSame( bs[1], f1);
assertSame( bs[2], f2);
assertSame(bs[1], f1);
assertSame(bs[2], f2);
String[] s = ((ICPPBinding) bs[1]).getQualifiedName();
assertEquals(s.length, 2);
assertEquals(s[0], "A"); //$NON-NLS-1$
assertEquals(s[1], "f"); //$NON-NLS-1$
assertTrue(((ICPPBinding) bs[1])
.isGloballyQualified());
assertTrue(((ICPPBinding) bs[1]).isGloballyQualified());
}
public void testFind_4() throws Exception {

View file

@ -1,5 +1,6 @@
package org.eclipse.cdt.core.lrparser.tests.cpp;
import junit.framework.AssertionFailedError;
import junit.framework.TestSuite;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
@ -36,7 +37,6 @@ public class ISOCPPTests extends AST2CPPTests {
return ParseHelper.parse(code, language, expectNoProblems);
}
protected ILanguage getC99Language() {
return C99Language.getDefault();
}
@ -45,9 +45,29 @@ public class ISOCPPTests extends AST2CPPTests {
return ISOCPPLanguage.getDefault();
}
public void testBug98704() throws Exception {
@Override
public void testBug98704() throws Exception {
// this one gets stuck in infinite loop
}
@Override
public void testBug87424() throws Exception { // gcc extension
try {
super.testBug87424();
fail();
} catch(AssertionFailedError _) {
}
}
@Override
public void testBug95757() throws Exception { // gcc extension
try {
super.testBug95757();
fail();
} catch(AssertionFailedError _) {
}
}
}

View file

@ -424,7 +424,7 @@ block_item_list
block_item
::= statement
| declaration
/. $Build consumeStatementDeclaration(); $EndBuild ./
/. $Build consumeStatementDeclarationWithDisambiguation(); $EndBuild ./
expression_statement

View file

@ -882,6 +882,10 @@ condition
| type_specifier_seq declarator '=' assignment_expression
/. $Build consumeConditionDeclaration(); $EndBuild ./
condition_opt
::= condition
| $empty
/. $Build consumeEmpty(); $EndBuild ./
iteration_statement
@ -889,11 +893,16 @@ iteration_statement
/. $Build consumeStatementWhileLoop(); $EndBuild ./
| 'do' statement 'while' '(' expression ')' ';'
/. $Build consumeStatementDoLoop(); $EndBuild ./
| 'for' '(' expression_opt ';' expression_opt ';' expression_opt ')' statement
| 'for' '(' for_init_statement condition_opt ';' expression_opt ')' statement
/. $Build consumeStatementForLoop(); $EndBuild ./
| 'for' '(' simple_declaration_with_declspec expression_opt ';' expression_opt ')' statement
/. $Build consumeStatementForLoop(); $EndBuild ./
-- I'm sure there are ambiguities here but we won't worry about it
for_init_statement
::= expression_statement
| simple_declaration_with_declspec
/. $Build consumeStatementDeclaration(); $EndBuild ./
jump_statement
::= 'break' ';'
@ -912,7 +921,7 @@ jump_statement
-- of the parser test cases expect them to work.
declaration_statement
::= block_declaration
/. $Build consumeStatementDeclaration(); $EndBuild ./
/. $Build consumeStatementDeclarationWithDisambiguation(); $EndBuild ./
| function_definition -- not spec
/. $Build consumeStatementDeclaration(); $EndBuild ./

View file

@ -482,9 +482,9 @@ public abstract class BuildASTParserAction {
/**
* block_item ::= declaration | statement
*
* Wrap a declaration in a DeclarationStatement.
* TODO, be careful where exactly in the grammar this is called, it may be called unnecessarily
*/
public void consumeStatementDeclaration() {
public void consumeStatementDeclarationWithDisambiguation() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
IASTDeclaration decl = (IASTDeclaration) astStack.pop();
@ -519,6 +519,21 @@ public abstract class BuildASTParserAction {
}
/**
* Wrap a declaration in a DeclarationStatement.
*/
public void consumeStatementDeclaration() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
IASTDeclaration decl = (IASTDeclaration) astStack.pop();
IASTDeclarationStatement declarationStatement = nodeFactory.newDeclarationStatement(decl);
setOffsetAndLength(declarationStatement);
astStack.push(declarationStatement);
if(TRACE_AST_STACK) System.out.println(astStack);
}
/**
* Returns true if the given declaration has unspecified type,
* in this case the type defaults to int and is know as "implicit int".
@ -957,37 +972,6 @@ public abstract class BuildASTParserAction {
}
/**
* iteration_statement_matched
* ::= 'for' '(' expression_opt ';' expression_opt ';' expression_opt ')' statement
*/
public void consumeStatementForLoop() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
IASTStatement body = (IASTStatement) astStack.pop();
// these two expressions may be null, see consumeExpressionOptional()
IASTExpression expr3 = (IASTExpression) astStack.pop();
IASTExpression expr2 = (IASTExpression) astStack.pop();
IASTNode node = (IASTNode) astStack.pop(); // may be an expression or a declaration
IASTStatement initializer;
if(node instanceof IASTExpression)
initializer = nodeFactory.newExpressionStatement((IASTExpression)node);
else if(node instanceof IASTDeclaration)
initializer = nodeFactory.newDeclarationStatement((IASTDeclaration)node);
else // its null
initializer = nodeFactory.newNullStatement();
if(node != null)
setOffsetAndLength(initializer, offset(node), length(node));
IASTForStatement forStat = nodeFactory.newForStatement(initializer, expr2, expr3, body);
setOffsetAndLength(forStat);
astStack.push(forStat);
if(TRACE_AST_STACK) System.out.println(astStack);
}
/**

View file

@ -119,6 +119,9 @@ public interface IASTNodeFactory {
public IASTDoStatement newDoStatement(IASTStatement body, IASTExpression condition);
public IASTForStatement newForStatement(IASTStatement init, IASTExpression condition,
IASTExpression iterationExpression, IASTStatement body);
public IASTGotoStatement newGotoStatement(IASTName name);
public IASTContinueStatement newContinueStatement();
@ -127,9 +130,6 @@ public interface IASTNodeFactory {
public IASTReturnStatement newReturnStatement(IASTExpression retValue);
public IASTForStatement newForStatement(IASTStatement init, IASTExpression condition,
IASTExpression iterationExpression, IASTStatement body);
public IASTDeclarationStatement newDeclarationStatement(IASTDeclaration declaration);
public IASTTypeIdExpression newTypeIdExpression(int operator, IASTTypeId typeId);

View file

@ -46,12 +46,14 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
import org.eclipse.cdt.core.dom.ast.IASTForStatement;
import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
import org.eclipse.cdt.core.dom.ast.IASTInitializer;
import org.eclipse.cdt.core.dom.ast.IASTInitializerList;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTPointer;
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
@ -671,6 +673,40 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
}
/**
* iteration_statement_matched
* ::= 'for' '(' expression_opt ';' expression_opt ';' expression_opt ')' statement
*/
public void consumeStatementForLoop() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
IASTStatement body = (IASTStatement) astStack.pop();
// these two expressions may be null, see consumeExpressionOptional()
IASTExpression expr3 = (IASTExpression) astStack.pop();
IASTExpression expr2 = (IASTExpression) astStack.pop();
IASTNode node = (IASTNode) astStack.pop(); // may be an expression or a declaration
IASTStatement initializer;
if(node instanceof IASTExpression)
initializer = nodeFactory.newExpressionStatement((IASTExpression)node);
else if(node instanceof IASTDeclaration)
initializer = nodeFactory.newDeclarationStatement((IASTDeclaration)node);
else // its null
initializer = nodeFactory.newNullStatement();
if(node != null)
setOffsetAndLength(initializer, offset(node), length(node));
IASTForStatement forStat = nodeFactory.newForStatement(initializer, expr2, expr3, body);
setOffsetAndLength(forStat);
astStack.push(forStat);
if(TRACE_AST_STACK) System.out.println(astStack);
}
/**
* selection_statement ::= switch '(' expression ')' statement
*/

View file

@ -12,9 +12,11 @@ package org.eclipse.cdt.core.dom.lrparser.action.c99;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
import org.eclipse.cdt.core.dom.ast.IASTForStatement;
import org.eclipse.cdt.core.dom.ast.IASTInitializer;
import org.eclipse.cdt.core.dom.ast.IASTInitializerList;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
import org.eclipse.cdt.core.dom.ast.c.ICASTArrayDesignator;
import org.eclipse.cdt.core.dom.ast.c.ICASTArrayModifier;
@ -35,7 +37,6 @@ import org.eclipse.cdt.core.dom.lrparser.action.IASTNodeFactory;
*/
public interface IC99ASTNodeFactory extends IASTNodeFactory {
public IASTFieldReference newFieldReference(IASTName name, IASTExpression owner, boolean isPointerDereference);
public ICASTTypeIdInitializerExpression newCTypeIdInitializerExpression(IASTTypeId typeId, IASTInitializerList list);

View file

@ -358,6 +358,11 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory {
return new CPPASTForStatement(init, condition, iterationExpr, body);
}
public IASTForStatement newForStatement(IASTStatement init, IASTDeclaration condition,
IASTExpression iterationExpression, IASTStatement body) {
return new CPPASTForStatement(init, condition, iterationExpression, body);
}
public IASTDeclarationStatement newDeclarationStatement(IASTDeclaration declaration) {
return new CPPASTDeclarationStatement(declaration);
}
@ -555,4 +560,6 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory {
return newCPPSimpleDeclSpecifier();
}
}

View file

@ -17,6 +17,7 @@ import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.*;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.locks.Condition;
import lpg.lpgjavaruntime.IToken;
@ -30,6 +31,7 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
import org.eclipse.cdt.core.dom.ast.IASTForStatement;
import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
@ -97,6 +99,7 @@ import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPSizeofExpressionParser;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName;
import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator;
import org.osgi.service.condpermadmin.ConditionInfo;
/**
* Semantic actions that build the AST during the parse.
@ -571,6 +574,29 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
}
/**
*/
public void consumeStatementForLoop() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
IASTStatement body = (IASTStatement) astStack.pop();
IASTExpression expr = (IASTExpression) astStack.pop();
Object condition = astStack.pop(); // can be an expression or a declaration
IASTStatement initializer = (IASTStatement) astStack.pop();
IASTForStatement forStat;
if(condition instanceof IASTExpression)
forStat = nodeFactory.newForStatement(initializer, (IASTExpression)condition, expr, body);
else // its a declaration or its null
forStat = nodeFactory.newForStatement(initializer, (IASTDeclaration)condition, expr, body);
setOffsetAndLength(forStat);
astStack.push(forStat);
if(TRACE_AST_STACK) System.out.println(astStack);
}
/**
* try_block
* ::= 'try' compound_statement <openscope-ast> handler_seq

View file

@ -13,6 +13,7 @@ package org.eclipse.cdt.core.dom.lrparser.action.cpp;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
import org.eclipse.cdt.core.dom.ast.IASTForStatement;
import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTPointer;
@ -79,6 +80,9 @@ public interface ICPPASTNodeFactory extends IASTNodeFactory {
public IASTIfStatement newIfStatement(IASTDeclaration condition, IASTStatement then, IASTStatement elseClause);
public IASTForStatement newForStatement(IASTStatement init, IASTDeclaration condition,
IASTExpression iterationExpression, IASTStatement body);
public IASTWhileStatement newWhileStatement(IASTDeclaration condition, IASTStatement body);
public ICPPASTDeleteExpression newDeleteExpression(IASTExpression operand);

View file

@ -212,7 +212,7 @@ public String[] getOrderedTerminalSymbols() {
}
public String getName() {
return "C99ExpressionStatementParser";//$NON-NLS-1$
return "C99ExpressionStatementParser"; //$NON-NLS-1$
}
@ -621,7 +621,7 @@ public C99ExpressionStatementParser(String[] mapFrom) { // constructor
//
// Rule 109: block_item ::= declaration
//
case 109: { action. consumeStatementDeclaration(); break;
case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//

View file

@ -212,7 +212,7 @@ public String[] getOrderedTerminalSymbols() {
}
public String getName() {
return "C99NoCastExpressionParser";
return "C99NoCastExpressionParser"; //$NON-NLS-1$
}
@ -615,7 +615,7 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 108: block_item ::= declaration
//
case 108: { action. consumeStatementDeclaration(); break;
case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//

View file

@ -212,7 +212,7 @@ public String[] getOrderedTerminalSymbols() {
}
public String getName() {
return "C99Parser";
return "C99Parser"; //$NON-NLS-1$
}
@ -621,7 +621,7 @@ public C99Parser(String[] mapFrom) { // constructor
//
// Rule 109: block_item ::= declaration
//
case 109: { action. consumeStatementDeclaration(); break;
case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//

View file

@ -212,7 +212,7 @@ public String[] getOrderedTerminalSymbols() {
}
public String getName() {
return "C99SizeofExpressionParser";
return "C99SizeofExpressionParser"; //$NON-NLS-1$
}
@ -615,7 +615,7 @@ public C99SizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 108: block_item ::= declaration
//
case 108: { action. consumeStatementDeclaration(); break;
case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//

View file

@ -16,68 +16,68 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPExpressionStatementParsersym {
public final static int
TK_asm = 61,
TK_auto = 48,
TK_auto = 49,
TK_bool = 15,
TK_break = 77,
TK_case = 78,
TK_break = 78,
TK_case = 79,
TK_catch = 119,
TK_char = 16,
TK_class = 62,
TK_class = 63,
TK_const = 46,
TK_const_cast = 31,
TK_continue = 79,
TK_default = 80,
TK_delete = 63,
TK_do = 81,
TK_const_cast = 32,
TK_continue = 80,
TK_default = 81,
TK_delete = 64,
TK_do = 82,
TK_double = 17,
TK_dynamic_cast = 32,
TK_dynamic_cast = 33,
TK_else = 121,
TK_enum = 68,
TK_explicit = 49,
TK_export = 82,
TK_enum = 69,
TK_explicit = 50,
TK_export = 75,
TK_extern = 14,
TK_false = 33,
TK_false = 34,
TK_float = 18,
TK_for = 83,
TK_friend = 50,
TK_friend = 51,
TK_goto = 84,
TK_if = 85,
TK_inline = 51,
TK_inline = 52,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_mutable = 53,
TK_namespace = 60,
TK_new = 64,
TK_new = 65,
TK_operator = 7,
TK_private = 114,
TK_protected = 115,
TK_public = 116,
TK_register = 53,
TK_reinterpret_cast = 34,
TK_register = 54,
TK_reinterpret_cast = 35,
TK_return = 86,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 35,
TK_static = 54,
TK_static_cast = 36,
TK_struct = 69,
TK_sizeof = 36,
TK_static = 55,
TK_static_cast = 37,
TK_struct = 70,
TK_switch = 87,
TK_template = 37,
TK_template = 31,
TK_this = 38,
TK_throw = 57,
TK_try = 75,
TK_try = 76,
TK_true = 39,
TK_typedef = 55,
TK_typedef = 56,
TK_typeid = 40,
TK_typename = 10,
TK_union = 70,
TK_union = 71,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 45,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_while = 76,
TK_while = 77,
TK_integer = 41,
TK_floating = 42,
TK_charconst = 43,
@ -86,7 +86,7 @@ public interface CPPExpressionStatementParsersym {
TK_Completion = 2,
TK_EndOfCompletion = 9,
TK_Invalid = 124,
TK_LeftBracket = 56,
TK_LeftBracket = 48,
TK_LeftParen = 3,
TK_LeftBrace = 59,
TK_Dot = 120,
@ -106,7 +106,7 @@ public interface CPPExpressionStatementParsersym {
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 30,
TK_GT = 65,
TK_GT = 62,
TK_LE = 93,
TK_GE = 94,
TK_EQ = 97,
@ -133,10 +133,10 @@ public interface CPPExpressionStatementParsersym {
TK_Comma = 66,
TK_zero = 44,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_RightParen = 73,
TK_RightBrace = 68,
TK_SemiColon = 13,
TK_ERROR_TOKEN = 73,
TK_ERROR_TOKEN = 74,
TK_original_namespace_name = 122,
TK_EOF_TOKEN = 123;
@ -172,13 +172,13 @@ public interface CPPExpressionStatementParsersym {
"stringlit",
"Bang",
"LT",
"template",
"const_cast",
"dynamic_cast",
"false",
"reinterpret_cast",
"sizeof",
"static_cast",
"template",
"this",
"true",
"typeid",
@ -189,6 +189,7 @@ public interface CPPExpressionStatementParsersym {
"virtual",
"const",
"volatile",
"LeftBracket",
"auto",
"explicit",
"friend",
@ -197,25 +198,25 @@ public interface CPPExpressionStatementParsersym {
"register",
"static",
"typedef",
"LeftBracket",
"throw",
"using",
"LeftBrace",
"namespace",
"asm",
"GT",
"class",
"delete",
"new",
"GT",
"Comma",
"Assign",
"RightBrace",
"enum",
"struct",
"union",
"RightBrace",
"Colon",
"ERROR_TOKEN",
"RightParen",
"ERROR_TOKEN",
"export",
"try",
"while",
"break",
@ -223,7 +224,6 @@ public interface CPPExpressionStatementParsersym {
"continue",
"default",
"do",
"export",
"for",
"goto",
"if",

View file

@ -16,68 +16,68 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPNoCastExpressionParsersym {
public final static int
TK_asm = 61,
TK_auto = 48,
TK_auto = 49,
TK_bool = 15,
TK_break = 77,
TK_case = 78,
TK_break = 78,
TK_case = 79,
TK_catch = 119,
TK_char = 16,
TK_class = 62,
TK_class = 63,
TK_const = 46,
TK_const_cast = 31,
TK_continue = 79,
TK_default = 80,
TK_delete = 63,
TK_do = 81,
TK_const_cast = 32,
TK_continue = 80,
TK_default = 81,
TK_delete = 64,
TK_do = 82,
TK_double = 17,
TK_dynamic_cast = 32,
TK_dynamic_cast = 33,
TK_else = 122,
TK_enum = 68,
TK_explicit = 49,
TK_export = 82,
TK_enum = 69,
TK_explicit = 50,
TK_export = 75,
TK_extern = 14,
TK_false = 33,
TK_false = 34,
TK_float = 18,
TK_for = 83,
TK_friend = 50,
TK_friend = 51,
TK_goto = 84,
TK_if = 85,
TK_inline = 51,
TK_inline = 52,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_mutable = 53,
TK_namespace = 60,
TK_new = 64,
TK_new = 65,
TK_operator = 7,
TK_private = 114,
TK_protected = 115,
TK_public = 116,
TK_register = 53,
TK_reinterpret_cast = 34,
TK_register = 54,
TK_reinterpret_cast = 35,
TK_return = 86,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 35,
TK_static = 54,
TK_static_cast = 36,
TK_struct = 69,
TK_sizeof = 36,
TK_static = 55,
TK_static_cast = 37,
TK_struct = 70,
TK_switch = 87,
TK_template = 37,
TK_template = 31,
TK_this = 38,
TK_throw = 57,
TK_try = 75,
TK_try = 76,
TK_true = 39,
TK_typedef = 55,
TK_typedef = 56,
TK_typeid = 40,
TK_typename = 10,
TK_union = 70,
TK_union = 71,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 45,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_while = 76,
TK_while = 77,
TK_integer = 41,
TK_floating = 42,
TK_charconst = 43,
@ -86,7 +86,7 @@ public interface CPPNoCastExpressionParsersym {
TK_Completion = 2,
TK_EndOfCompletion = 9,
TK_Invalid = 124,
TK_LeftBracket = 56,
TK_LeftBracket = 48,
TK_LeftParen = 3,
TK_LeftBrace = 59,
TK_Dot = 120,
@ -106,7 +106,7 @@ public interface CPPNoCastExpressionParsersym {
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 30,
TK_GT = 65,
TK_GT = 62,
TK_LE = 93,
TK_GE = 94,
TK_EQ = 97,
@ -133,10 +133,10 @@ public interface CPPNoCastExpressionParsersym {
TK_Comma = 66,
TK_zero = 44,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_RightParen = 73,
TK_RightBrace = 68,
TK_SemiColon = 13,
TK_ERROR_TOKEN = 73,
TK_ERROR_TOKEN = 74,
TK_original_namespace_name = 123,
TK_EOF_TOKEN = 121;
@ -172,13 +172,13 @@ public interface CPPNoCastExpressionParsersym {
"stringlit",
"Bang",
"LT",
"template",
"const_cast",
"dynamic_cast",
"false",
"reinterpret_cast",
"sizeof",
"static_cast",
"template",
"this",
"true",
"typeid",
@ -189,6 +189,7 @@ public interface CPPNoCastExpressionParsersym {
"virtual",
"const",
"volatile",
"LeftBracket",
"auto",
"explicit",
"friend",
@ -197,25 +198,25 @@ public interface CPPNoCastExpressionParsersym {
"register",
"static",
"typedef",
"LeftBracket",
"throw",
"using",
"LeftBrace",
"namespace",
"asm",
"GT",
"class",
"delete",
"new",
"GT",
"Comma",
"Assign",
"RightBrace",
"enum",
"struct",
"union",
"RightBrace",
"Colon",
"ERROR_TOKEN",
"RightParen",
"ERROR_TOKEN",
"export",
"try",
"while",
"break",
@ -223,7 +224,6 @@ public interface CPPNoCastExpressionParsersym {
"continue",
"default",
"do",
"export",
"for",
"goto",
"if",

View file

@ -16,68 +16,68 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPNoFunctionDeclaratorParsersym {
public final static int
TK_asm = 61,
TK_auto = 48,
TK_auto = 49,
TK_bool = 15,
TK_break = 77,
TK_case = 78,
TK_break = 78,
TK_case = 79,
TK_catch = 119,
TK_char = 16,
TK_class = 62,
TK_class = 63,
TK_const = 46,
TK_const_cast = 32,
TK_continue = 79,
TK_default = 80,
TK_delete = 64,
TK_do = 81,
TK_continue = 80,
TK_default = 81,
TK_delete = 65,
TK_do = 82,
TK_double = 17,
TK_dynamic_cast = 33,
TK_else = 122,
TK_enum = 68,
TK_explicit = 49,
TK_export = 82,
TK_enum = 69,
TK_explicit = 50,
TK_export = 75,
TK_extern = 12,
TK_false = 34,
TK_float = 18,
TK_for = 83,
TK_friend = 50,
TK_friend = 51,
TK_goto = 84,
TK_if = 85,
TK_inline = 51,
TK_inline = 52,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_mutable = 53,
TK_namespace = 59,
TK_new = 65,
TK_new = 66,
TK_operator = 7,
TK_private = 114,
TK_protected = 115,
TK_public = 116,
TK_register = 53,
TK_register = 54,
TK_reinterpret_cast = 35,
TK_return = 86,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 36,
TK_static = 54,
TK_static = 55,
TK_static_cast = 37,
TK_struct = 69,
TK_struct = 70,
TK_switch = 87,
TK_template = 31,
TK_template = 30,
TK_this = 38,
TK_throw = 60,
TK_try = 75,
TK_try = 76,
TK_true = 39,
TK_typedef = 55,
TK_typedef = 56,
TK_typeid = 40,
TK_typename = 10,
TK_union = 70,
TK_union = 71,
TK_unsigned = 23,
TK_using = 57,
TK_virtual = 41,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_while = 76,
TK_while = 77,
TK_integer = 42,
TK_floating = 43,
TK_charconst = 44,
@ -86,7 +86,7 @@ public interface CPPNoFunctionDeclaratorParsersym {
TK_Completion = 2,
TK_EndOfCompletion = 9,
TK_Invalid = 124,
TK_LeftBracket = 56,
TK_LeftBracket = 48,
TK_LeftParen = 3,
TK_LeftBrace = 58,
TK_Dot = 120,
@ -100,13 +100,13 @@ public interface CPPNoFunctionDeclaratorParsersym {
TK_Plus = 13,
TK_Minus = 14,
TK_Tilde = 5,
TK_Bang = 29,
TK_Bang = 31,
TK_Slash = 91,
TK_Percent = 92,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 30,
TK_GT = 63,
TK_LT = 29,
TK_GT = 62,
TK_LE = 93,
TK_GE = 94,
TK_EQ = 97,
@ -130,13 +130,13 @@ public interface CPPNoFunctionDeclaratorParsersym {
TK_AndAssign = 111,
TK_CaretAssign = 112,
TK_OrAssign = 113,
TK_Comma = 66,
TK_Comma = 64,
TK_zero = 45,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_RightParen = 73,
TK_RightBrace = 68,
TK_SemiColon = 11,
TK_ERROR_TOKEN = 73,
TK_ERROR_TOKEN = 74,
TK_original_namespace_name = 123,
TK_EOF_TOKEN = 121;
@ -170,9 +170,9 @@ public interface CPPNoFunctionDeclaratorParsersym {
"PlusPlus",
"MinusMinus",
"stringlit",
"Bang",
"LT",
"template",
"Bang",
"const_cast",
"dynamic_cast",
"false",
@ -189,6 +189,7 @@ public interface CPPNoFunctionDeclaratorParsersym {
"zero",
"const",
"volatile",
"LeftBracket",
"auto",
"explicit",
"friend",
@ -197,25 +198,25 @@ public interface CPPNoFunctionDeclaratorParsersym {
"register",
"static",
"typedef",
"LeftBracket",
"using",
"LeftBrace",
"namespace",
"throw",
"asm",
"class",
"GT",
"class",
"Comma",
"delete",
"new",
"Comma",
"Assign",
"RightBrace",
"enum",
"struct",
"union",
"RightBrace",
"Colon",
"ERROR_TOKEN",
"RightParen",
"ERROR_TOKEN",
"export",
"try",
"while",
"break",
@ -223,7 +224,6 @@ public interface CPPNoFunctionDeclaratorParsersym {
"continue",
"default",
"do",
"export",
"for",
"goto",
"if",

View file

@ -27,12 +27,12 @@ public interface CPPParsersym {
TK_const_cast = 36,
TK_continue = 80,
TK_default = 81,
TK_delete = 64,
TK_delete = 65,
TK_do = 82,
TK_double = 15,
TK_dynamic_cast = 37,
TK_else = 122,
TK_enum = 65,
TK_enum = 66,
TK_explicit = 38,
TK_export = 74,
TK_extern = 12,
@ -46,8 +46,8 @@ public interface CPPParsersym {
TK_int = 17,
TK_long = 18,
TK_mutable = 42,
TK_namespace = 57,
TK_new = 66,
TK_namespace = 58,
TK_new = 67,
TK_operator = 7,
TK_private = 114,
TK_protected = 115,
@ -60,7 +60,7 @@ public interface CPPParsersym {
TK_sizeof = 45,
TK_static = 46,
TK_static_cast = 47,
TK_struct = 67,
TK_struct = 68,
TK_switch = 87,
TK_template = 28,
TK_this = 48,
@ -70,10 +70,10 @@ public interface CPPParsersym {
TK_typedef = 50,
TK_typeid = 51,
TK_typename = 10,
TK_union = 68,
TK_union = 69,
TK_unsigned = 21,
TK_using = 56,
TK_virtual = 30,
TK_virtual = 31,
TK_void = 22,
TK_volatile = 34,
TK_wchar_t = 23,
@ -86,7 +86,7 @@ public interface CPPParsersym {
TK_Completion = 2,
TK_EndOfCompletion = 9,
TK_Invalid = 124,
TK_LeftBracket = 58,
TK_LeftBracket = 57,
TK_LeftParen = 3,
TK_LeftBrace = 60,
TK_Dot = 120,
@ -100,12 +100,12 @@ public interface CPPParsersym {
TK_Plus = 24,
TK_Minus = 25,
TK_Tilde = 5,
TK_Bang = 31,
TK_Bang = 32,
TK_Slash = 91,
TK_Percent = 92,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 32,
TK_LT = 30,
TK_GT = 63,
TK_LE = 93,
TK_GE = 94,
@ -130,7 +130,7 @@ public interface CPPParsersym {
TK_AndAssign = 111,
TK_CaretAssign = 112,
TK_OrAssign = 113,
TK_Comma = 69,
TK_Comma = 64,
TK_zero = 55,
TK_RightBracket = 118,
TK_RightParen = 75,
@ -171,9 +171,9 @@ public interface CPPParsersym {
"MinusMinus",
"template",
"stringlit",
"LT",
"virtual",
"Bang",
"LT",
"const",
"volatile",
"auto",
@ -198,19 +198,19 @@ public interface CPPParsersym {
"charconst",
"zero",
"using",
"namespace",
"LeftBracket",
"namespace",
"asm",
"LeftBrace",
"class",
"throw",
"GT",
"Comma",
"delete",
"enum",
"new",
"struct",
"union",
"Comma",
"Assign",
"RightBrace",
"Colon",

View file

@ -16,68 +16,68 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPSizeofExpressionParsersym {
public final static int
TK_asm = 61,
TK_auto = 48,
TK_auto = 49,
TK_bool = 15,
TK_break = 77,
TK_case = 78,
TK_break = 78,
TK_case = 79,
TK_catch = 119,
TK_char = 16,
TK_class = 62,
TK_class = 63,
TK_const = 46,
TK_const_cast = 31,
TK_continue = 79,
TK_default = 80,
TK_delete = 63,
TK_do = 81,
TK_const_cast = 32,
TK_continue = 80,
TK_default = 81,
TK_delete = 64,
TK_do = 82,
TK_double = 17,
TK_dynamic_cast = 32,
TK_dynamic_cast = 33,
TK_else = 122,
TK_enum = 68,
TK_explicit = 49,
TK_export = 82,
TK_enum = 69,
TK_explicit = 50,
TK_export = 75,
TK_extern = 14,
TK_false = 33,
TK_false = 34,
TK_float = 18,
TK_for = 83,
TK_friend = 50,
TK_friend = 51,
TK_goto = 84,
TK_if = 85,
TK_inline = 51,
TK_inline = 52,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_mutable = 53,
TK_namespace = 60,
TK_new = 64,
TK_new = 65,
TK_operator = 7,
TK_private = 114,
TK_protected = 115,
TK_public = 116,
TK_register = 53,
TK_reinterpret_cast = 34,
TK_register = 54,
TK_reinterpret_cast = 35,
TK_return = 86,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 35,
TK_static = 54,
TK_static_cast = 36,
TK_struct = 69,
TK_sizeof = 36,
TK_static = 55,
TK_static_cast = 37,
TK_struct = 70,
TK_switch = 87,
TK_template = 37,
TK_template = 31,
TK_this = 38,
TK_throw = 57,
TK_try = 75,
TK_try = 76,
TK_true = 39,
TK_typedef = 55,
TK_typedef = 56,
TK_typeid = 40,
TK_typename = 10,
TK_union = 70,
TK_union = 71,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 45,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_while = 76,
TK_while = 77,
TK_integer = 41,
TK_floating = 42,
TK_charconst = 43,
@ -86,7 +86,7 @@ public interface CPPSizeofExpressionParsersym {
TK_Completion = 2,
TK_EndOfCompletion = 9,
TK_Invalid = 124,
TK_LeftBracket = 56,
TK_LeftBracket = 48,
TK_LeftParen = 3,
TK_LeftBrace = 59,
TK_Dot = 120,
@ -106,7 +106,7 @@ public interface CPPSizeofExpressionParsersym {
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 30,
TK_GT = 65,
TK_GT = 62,
TK_LE = 93,
TK_GE = 94,
TK_EQ = 97,
@ -133,10 +133,10 @@ public interface CPPSizeofExpressionParsersym {
TK_Comma = 66,
TK_zero = 44,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_RightParen = 73,
TK_RightBrace = 68,
TK_SemiColon = 13,
TK_ERROR_TOKEN = 73,
TK_ERROR_TOKEN = 74,
TK_original_namespace_name = 123,
TK_EOF_TOKEN = 121;
@ -172,13 +172,13 @@ public interface CPPSizeofExpressionParsersym {
"stringlit",
"Bang",
"LT",
"template",
"const_cast",
"dynamic_cast",
"false",
"reinterpret_cast",
"sizeof",
"static_cast",
"template",
"this",
"true",
"typeid",
@ -189,6 +189,7 @@ public interface CPPSizeofExpressionParsersym {
"virtual",
"const",
"volatile",
"LeftBracket",
"auto",
"explicit",
"friend",
@ -197,25 +198,25 @@ public interface CPPSizeofExpressionParsersym {
"register",
"static",
"typedef",
"LeftBracket",
"throw",
"using",
"LeftBrace",
"namespace",
"asm",
"GT",
"class",
"delete",
"new",
"GT",
"Comma",
"Assign",
"RightBrace",
"enum",
"struct",
"union",
"RightBrace",
"Colon",
"ERROR_TOKEN",
"RightParen",
"ERROR_TOKEN",
"export",
"try",
"while",
"break",
@ -223,7 +224,6 @@ public interface CPPSizeofExpressionParsersym {
"continue",
"default",
"do",
"export",
"for",
"goto",
"if",