mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-06 09:16:02 +02:00
implicit int now works a lot better (static var;) ,fixed but with globally qualified ids not resolving properly
This commit is contained in:
parent
a8a0150712
commit
28fc06fe7b
9 changed files with 100 additions and 85 deletions
|
@ -183,20 +183,30 @@ public class C99SpecTests extends AST2CSpecTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public void test6_7_8s24() throws Exception { // complex isn't declared as a typedef
|
||||||
|
// try {
|
||||||
|
// super.test6_7_8s24();
|
||||||
|
// fail();
|
||||||
|
// } catch(AssertionFailedError _) { }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void test6_7_8s34() throws Exception { // div_t isn't declared as a typedef
|
||||||
|
// try {
|
||||||
|
// super.test6_7_8s34();
|
||||||
|
// fail();
|
||||||
|
// } catch(AssertionFailedError _) { }
|
||||||
|
// }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void test6_7_8s24() throws Exception { // complex isn't declared as a typedef
|
public void test6_7_2_1s17() throws Exception { // what the heck is offsetof
|
||||||
try {
|
try {
|
||||||
super.test6_7_8s24();
|
super.test6_7_2_1s17();
|
||||||
fail();
|
fail();
|
||||||
} catch(AssertionFailedError _) { }
|
} catch(AssertionFailedError _) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void test6_7_8s34() throws Exception { // div_t isn't declared as a typedef
|
|
||||||
try {
|
|
||||||
super.test6_7_8s34();
|
|
||||||
fail();
|
|
||||||
} catch(AssertionFailedError _) { }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -964,12 +964,12 @@ declaration_seq_opt
|
||||||
|
|
||||||
simple_declaration
|
simple_declaration
|
||||||
::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
|
::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
|
||||||
/. $Build consumeDeclarationSimple(true, true); $EndBuild ./
|
/. $Build consumeDeclarationSimple(true); $EndBuild ./
|
||||||
|
|
||||||
|
|
||||||
simple_declaration_with_declspec
|
simple_declaration_with_declspec
|
||||||
::= declaration_specifiers <openscope-ast> init_declarator_list_opt ';'
|
::= declaration_specifiers <openscope-ast> init_declarator_list_opt ';'
|
||||||
/. $Build consumeDeclarationSimple(true, false); $EndBuild ./
|
/. $Build consumeDeclarationSimple(true); $EndBuild ./
|
||||||
|
|
||||||
|
|
||||||
-- declaration specifier nodes not created here, they are created by sub-rules
|
-- declaration specifier nodes not created here, they are created by sub-rules
|
||||||
|
@ -1567,9 +1567,9 @@ visibility_label
|
||||||
|
|
||||||
member_declaration
|
member_declaration
|
||||||
::= declaration_specifiers_opt <openscope-ast> member_declarator_list ';'
|
::= declaration_specifiers_opt <openscope-ast> member_declarator_list ';'
|
||||||
/. $Build consumeDeclarationSimple(true, true); $EndBuild ./
|
/. $Build consumeDeclarationSimple(true); $EndBuild ./
|
||||||
| declaration_specifiers_opt ';'
|
| declaration_specifiers_opt ';'
|
||||||
/. $Build consumeDeclarationSimple(false, false); $EndBuild ./
|
/. $Build consumeDeclarationSimple(false); $EndBuild ./
|
||||||
| function_definition ';'
|
| function_definition ';'
|
||||||
| function_definition
|
| function_definition
|
||||||
| dcolon_opt nested_name_specifier template_opt unqualified_id_name ';'
|
| dcolon_opt nested_name_specifier template_opt unqualified_id_name ';'
|
||||||
|
@ -1828,11 +1828,11 @@ handler
|
||||||
-- open a scope just so that we can reuse consumeDeclarationSimple()
|
-- open a scope just so that we can reuse consumeDeclarationSimple()
|
||||||
exception_declaration
|
exception_declaration
|
||||||
::= type_specifier_seq <openscope-ast> declarator
|
::= type_specifier_seq <openscope-ast> declarator
|
||||||
/. $Build consumeDeclarationSimple(true, false); $EndBuild ./
|
/. $Build consumeDeclarationSimple(true); $EndBuild ./
|
||||||
| type_specifier_seq <openscope-ast> abstract_declarator -- TODO might need to be abstract_declarator_without_function, might be too lenient, what exactly can you catch?
|
| type_specifier_seq <openscope-ast> abstract_declarator -- TODO might need to be abstract_declarator_without_function, might be too lenient, what exactly can you catch?
|
||||||
/. $Build consumeDeclarationSimple(true, false); $EndBuild ./
|
/. $Build consumeDeclarationSimple(true); $EndBuild ./
|
||||||
| type_specifier_seq
|
| type_specifier_seq
|
||||||
/. $Build consumeDeclarationSimple(false, false); $EndBuild ./
|
/. $Build consumeDeclarationSimple(false); $EndBuild ./
|
||||||
|
|
||||||
|
|
||||||
-- puts type ids on the stack
|
-- puts type ids on the stack
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.core.dom.lrparser.action;
|
package org.eclipse.cdt.core.dom.lrparser.action;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lpg.lpgjavaruntime.IToken;
|
import lpg.lpgjavaruntime.IToken;
|
||||||
|
@ -38,7 +37,6 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTExpressionList;
|
import org.eclipse.cdt.core.dom.ast.IASTExpressionList;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator;
|
import org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTForStatement;
|
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression;
|
import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
|
import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTGotoStatement;
|
import org.eclipse.cdt.core.dom.ast.IASTGotoStatement;
|
||||||
|
@ -70,8 +68,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
|
||||||
import org.eclipse.cdt.core.dom.lrparser.IParser;
|
import org.eclipse.cdt.core.dom.lrparser.IParser;
|
||||||
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
|
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
|
||||||
import org.eclipse.cdt.core.parser.util.DebugUtil;
|
import org.eclipse.cdt.core.parser.util.DebugUtil;
|
||||||
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
|
|
||||||
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym;
|
|
||||||
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
|
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
|
||||||
|
|
||||||
|
|
||||||
|
@ -617,6 +613,8 @@ public abstract class BuildASTParserAction {
|
||||||
public void consumeExpressionName() {
|
public void consumeExpressionName() {
|
||||||
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
||||||
|
|
||||||
|
System.out.println("Exression name: " + parser.getRuleTokens());
|
||||||
|
|
||||||
IASTName name = (IASTName) astStack.pop();
|
IASTName name = (IASTName) astStack.pop();
|
||||||
IASTIdExpression expr = nodeFactory.newIdExpression(name);
|
IASTIdExpression expr = nodeFactory.newIdExpression(name);
|
||||||
setOffsetAndLength(expr);
|
setOffsetAndLength(expr);
|
||||||
|
|
|
@ -490,17 +490,19 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
* | '::' operator_function_id
|
* | '::' operator_function_id
|
||||||
* | '::' template_id
|
* | '::' template_id
|
||||||
*/
|
*/
|
||||||
public void consumeGlobalQualifiedId() {
|
@SuppressWarnings("restriction")
|
||||||
|
public void consumeGlobalQualifiedId() {
|
||||||
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
||||||
|
|
||||||
IASTName name = (IASTName) astStack.pop();
|
IASTName name = (IASTName) astStack.pop();
|
||||||
|
|
||||||
ICPPASTQualifiedName qualifiedName = nodeFactory.newCPPQualifiedName();
|
ICPPASTQualifiedName qualifiedName = nodeFactory.newCPPQualifiedName();
|
||||||
qualifiedName.addName(name);
|
qualifiedName.addName(name);
|
||||||
qualifiedName.setFullyQualified(true);
|
qualifiedName.setFullyQualified(true);
|
||||||
|
((CPPASTQualifiedName)qualifiedName).setSignature("::" + name.toString()); //$NON-NLS-1$
|
||||||
|
|
||||||
setOffsetAndLength(qualifiedName);
|
setOffsetAndLength(qualifiedName);
|
||||||
astStack.push(name);
|
astStack.push(qualifiedName);
|
||||||
|
|
||||||
if(TRACE_AST_STACK) System.out.println(astStack);
|
if(TRACE_AST_STACK) System.out.println(astStack);
|
||||||
}
|
}
|
||||||
|
@ -741,7 +743,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
private IASTName createQualifiedName(LinkedList<IASTName> names, int startOffset, int endOffset, boolean startsWithColonColon, boolean endsWithColonColon) {
|
private IASTName createQualifiedName(LinkedList<IASTName> names, int startOffset, int endOffset, boolean startsWithColonColon, boolean endsWithColonColon) {
|
||||||
if(!endsWithColonColon && !startsWithColonColon && names.size() == 1)
|
if(!endsWithColonColon && !startsWithColonColon && names.size() == 1)
|
||||||
return names.getFirst(); // its actually an unqualified name
|
return names.getFirst(); // its actually an unqualified name
|
||||||
|
|
||||||
ICPPASTQualifiedName qualifiedName = nodeFactory.newCPPQualifiedName();
|
ICPPASTQualifiedName qualifiedName = nodeFactory.newCPPQualifiedName();
|
||||||
qualifiedName.setFullyQualified(startsWithColonColon);
|
qualifiedName.setFullyQualified(startsWithColonColon);
|
||||||
setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset);
|
setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset);
|
||||||
|
@ -1182,21 +1184,46 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
*
|
*
|
||||||
* TODO: remove attemptAmbiguityResolution parameter
|
* TODO: remove attemptAmbiguityResolution parameter
|
||||||
*/
|
*/
|
||||||
public void consumeDeclarationSimple(boolean hasDeclaratorList, boolean attemptAmbiguityResolution) {
|
public void consumeDeclarationSimple(boolean hasDeclaratorList) {
|
||||||
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
||||||
|
|
||||||
List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
|
List<Object> declarators = hasDeclaratorList ? astStack.closeScope() : Collections.emptyList();
|
||||||
IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null
|
IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null
|
||||||
|
List<IToken> ruleTokens = parser.getRuleTokens();
|
||||||
|
|
||||||
// do not generate nodes for extra EOC tokens
|
// do not generate nodes for extra EOC tokens
|
||||||
if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion))
|
if(matchTokens(ruleTokens, CPPParsersym.TK_EndOfCompletion)) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if(declSpecifier == null) { // can happen if implicit int is used
|
if(declSpecifier == null) { // can happen if implicit int is used
|
||||||
declSpecifier = nodeFactory.newSimpleDeclSpecifier();
|
declSpecifier = nodeFactory.newSimpleDeclSpecifier();
|
||||||
setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0);
|
setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// bug 80171, check for situation similar to: static var;
|
||||||
|
// this will get parsed wrong, the following is a hack to rebuild the AST as it should have been parsed
|
||||||
|
IToken nameToken = null;
|
||||||
|
if(declarators.isEmpty() &&
|
||||||
|
declSpecifier instanceof ICPPASTNamedTypeSpecifier &&
|
||||||
|
ruleTokens.size() >= 2 &&
|
||||||
|
(nameToken = ruleTokens.get(ruleTokens.size() - 2)).getKind() == TK_identifier) {
|
||||||
|
|
||||||
|
declSpecifier = nodeFactory.newSimpleDeclSpecifier();
|
||||||
|
for(IToken t : ruleTokens.subList(0, ruleTokens.size()-1))
|
||||||
|
setSpecifier((ICPPASTDeclSpecifier)declSpecifier, t);
|
||||||
|
|
||||||
|
int offset = offset(parser.getLeftIToken());
|
||||||
|
int length = endOffset(ruleTokens.get(ruleTokens.size()-2)) - offset;
|
||||||
|
setOffsetAndLength(declSpecifier, offset, length);
|
||||||
|
|
||||||
|
IASTName name = createName(nameToken);
|
||||||
|
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
|
||||||
|
setOffsetAndLength(declarator, nameToken);
|
||||||
|
declarators.add(declarator);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
|
IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
|
||||||
setOffsetAndLength(declaration);
|
setOffsetAndLength(declaration);
|
||||||
for(Object declarator : declarators)
|
for(Object declarator : declarators)
|
||||||
|
@ -1204,32 +1231,12 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
|
|
||||||
astStack.push(declaration);
|
astStack.push(declaration);
|
||||||
|
|
||||||
// IASTNode alternateDeclaration = null;
|
|
||||||
// if(attemptAmbiguityResolution) {// && hasConstructorInitializer(declaration)) { // try to resolve the constructor initializer ambiguity
|
|
||||||
// // TODO should this ambiguity be resolved here, or at the level of individual declarators?
|
|
||||||
// IParser alternateParser = new CPPNoConstructorInitializerParser(parser.getOrderedTerminalSymbols());
|
|
||||||
// alternateDeclaration = runSecondaryParser(alternateParser);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if(alternateDeclaration == null || alternateDeclaration instanceof IASTProblemDeclaration)
|
|
||||||
// astStack.push(declaration);
|
|
||||||
// else {
|
|
||||||
// System.out.println("Ambiguous Declaration in my parser!");
|
|
||||||
//// ASTPrinter.print(declaration);
|
|
||||||
//// System.out.println();
|
|
||||||
//// ASTPrinter.print(alternateDeclaration);
|
|
||||||
//// System.out.println();
|
|
||||||
//
|
|
||||||
// IASTNode ambiguityNode = nodeFactory.newAmbiguousDeclaration((IASTDeclaration)alternateDeclaration, declaration);
|
|
||||||
// setOffsetAndLength(ambiguityNode);
|
|
||||||
// astStack.push(ambiguityNode);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
if(TRACE_AST_STACK) System.out.println(astStack);
|
if(TRACE_AST_STACK) System.out.println(astStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void consumeInitDeclaratorComplete() {
|
public void consumeInitDeclaratorComplete() {
|
||||||
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
||||||
|
|
|
@ -1242,14 +1242,14 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
|
||||||
// Rule 226: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
// Rule 226: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 226: { action.builder.
|
case 226: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 227: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
// Rule 227: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 227: { action.builder.
|
case 227: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1956,14 +1956,14 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
|
||||||
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 400: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 401: { action.builder.
|
case 401: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2243,21 +2243,21 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 521: { action.builder.
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 522: exception_declaration ::= type_specifier_seq
|
// Rule 522: exception_declaration ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 522: { action.builder.
|
case 522: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1235,14 +1235,14 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
|
||||||
// Rule 225: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
// Rule 225: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 225: { action.builder.
|
case 225: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 226: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
// Rule 226: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 226: { action.builder.
|
case 226: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1949,14 +1949,14 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
|
||||||
// Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 399: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 400: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 400: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 400: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2236,21 +2236,21 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
|
||||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
//
|
||||||
case 519: { action.builder.
|
case 519: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 521: exception_declaration ::= type_specifier_seq
|
// Rule 521: exception_declaration ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 521: { action.builder.
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1242,14 +1242,14 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
|
||||||
// Rule 226: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
// Rule 226: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 226: { action.builder.
|
case 226: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 227: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
// Rule 227: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 227: { action.builder.
|
case 227: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1949,14 +1949,14 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
|
||||||
// Rule 398: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 398: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 398: { action.builder.
|
case 398: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 399: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 399: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2236,21 +2236,21 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
|
||||||
// Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
//
|
||||||
case 518: { action.builder.
|
case 518: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 519: { action.builder.
|
case 519: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq
|
// Rule 520: exception_declaration ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1242,14 +1242,14 @@ public CPPParser(String[] mapFrom) { // constructor
|
||||||
// Rule 226: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
// Rule 226: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 226: { action.builder.
|
case 226: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 227: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
// Rule 227: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 227: { action.builder.
|
case 227: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1956,14 +1956,14 @@ public CPPParser(String[] mapFrom) { // constructor
|
||||||
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 400: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 401: { action.builder.
|
case 401: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2243,21 +2243,21 @@ public CPPParser(String[] mapFrom) { // constructor
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 521: { action.builder.
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 522: exception_declaration ::= type_specifier_seq
|
// Rule 522: exception_declaration ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 522: { action.builder.
|
case 522: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1228,14 +1228,14 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
|
||||||
// Rule 224: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
// Rule 224: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 224: { action.builder.
|
case 224: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 225: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
// Rule 225: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
|
||||||
//
|
//
|
||||||
case 225: { action.builder.
|
case 225: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1942,14 +1942,14 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
|
||||||
// Rule 398: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 398: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 398: { action.builder.
|
case 398: { action.builder.
|
||||||
consumeDeclarationSimple(true, true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 399: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 399: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2229,21 +2229,21 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
|
||||||
// Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
//
|
||||||
case 518: { action.builder.
|
case 518: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 519: { action.builder.
|
case 519: { action.builder.
|
||||||
consumeDeclarationSimple(true, false); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq
|
// Rule 520: exception_declaration ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
consumeDeclarationSimple(false, false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Add table
Reference in a new issue