mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-21 21:52:10 +02:00
added support for nested functions GNU extension to LR parser, added tests suites
This commit is contained in:
parent
b813ee9976
commit
ba9a7cbcfd
26 changed files with 5728 additions and 5518 deletions
|
@ -0,0 +1,53 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.lrparser.tests;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
|
||||
import org.eclipse.cdt.core.model.ILanguage;
|
||||
import org.eclipse.cdt.core.parser.ParserLanguage;
|
||||
import org.eclipse.cdt.core.parser.tests.ast2.AST2CPPImplicitNameTests;
|
||||
|
||||
public class LRCPPImplicitNameTests extends AST2CPPImplicitNameTests {
|
||||
|
||||
public static TestSuite suite() {
|
||||
return suite(LRCPPImplicitNameTests.class);
|
||||
}
|
||||
|
||||
public LRCPPImplicitNameTests() {
|
||||
}
|
||||
|
||||
public LRCPPImplicitNameTests(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) {
|
||||
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
|
||||
ParseHelper.Options options = new ParseHelper.Options();
|
||||
options.setCheckSyntaxProblems(expectNoProblems);
|
||||
options.setCheckPreprocessorProblems(expectNoProblems);
|
||||
options.setSkipTrivialInitializers(skipTrivialInitializers);
|
||||
return ParseHelper.parse(code, language, options);
|
||||
}
|
||||
|
||||
protected ILanguage getCLanguage() {
|
||||
return GCCLanguage.getDefault();
|
||||
}
|
||||
|
||||
protected ILanguage getCPPLanguage() {
|
||||
return GPPLanguage.getDefault();
|
||||
}
|
||||
}
|
|
@ -43,7 +43,7 @@ import org.eclipse.cdt.core.model.ILanguage;
|
|||
public class LRDigraphTrigraphTests extends TestCase {
|
||||
|
||||
public static TestSuite suite() {
|
||||
return new TestSuite(LRCSpecTests.class);
|
||||
return new TestSuite(LRDigraphTrigraphTests.class);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2006, 2008 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.lrparser.tests;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
|
||||
import org.eclipse.cdt.core.model.ILanguage;
|
||||
import org.eclipse.cdt.core.parser.ParserLanguage;
|
||||
import org.eclipse.cdt.core.parser.tests.ast2.GCCCompleteParseExtensionsTest;
|
||||
import org.eclipse.cdt.internal.core.parser.ParserException;
|
||||
|
||||
@SuppressWarnings("restriction")
|
||||
public class LRGCCCompleteParseExtensionsTest extends GCCCompleteParseExtensionsTest {
|
||||
|
||||
public static TestSuite suite() {
|
||||
return suite(LRGCCCompleteParseExtensionsTest.class);
|
||||
}
|
||||
|
||||
public LRGCCCompleteParseExtensionsTest() {}
|
||||
public LRGCCCompleteParseExtensionsTest(String name) { super(name); }
|
||||
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unused")
|
||||
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
|
||||
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
|
||||
ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems);
|
||||
return ParseHelper.parse(code, language, options);
|
||||
}
|
||||
|
||||
|
||||
protected ILanguage getCLanguage() {
|
||||
return GCCLanguage.getDefault();
|
||||
}
|
||||
|
||||
protected ILanguage getCPPLanguage() {
|
||||
return GPPLanguage.getDefault();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.lrparser.tests;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
|
||||
import org.eclipse.cdt.core.model.ILanguage;
|
||||
import org.eclipse.cdt.core.parser.ParserLanguage;
|
||||
import org.eclipse.cdt.core.parser.tests.ast2.ASTInactiveCodeTests;
|
||||
|
||||
public class LRInactiveCodeTests extends ASTInactiveCodeTests {
|
||||
|
||||
public static TestSuite suite() {
|
||||
return suite(LRInactiveCodeTests.class);
|
||||
}
|
||||
|
||||
public LRInactiveCodeTests() {
|
||||
}
|
||||
|
||||
public LRInactiveCodeTests(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) {
|
||||
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
|
||||
ParseHelper.Options options = new ParseHelper.Options();
|
||||
options.setCheckSyntaxProblems(expectNoProblems);
|
||||
options.setCheckPreprocessorProblems(expectNoProblems);
|
||||
options.setSkipTrivialInitializers(skipTrivialInitializers);
|
||||
return ParseHelper.parse(code, language, options);
|
||||
}
|
||||
|
||||
protected ILanguage getCLanguage() {
|
||||
return GCCLanguage.getDefault();
|
||||
}
|
||||
|
||||
protected ILanguage getCPPLanguage() {
|
||||
return GPPLanguage.getDefault();
|
||||
}
|
||||
}
|
|
@ -43,6 +43,7 @@ public class LRParserTestSuite extends TestSuite {
|
|||
addTest(LRDOMLocationTests.suite());
|
||||
addTest(LRDOMPreprocessorInformationTest.suite());
|
||||
addTest(LRGCCTests.suite());
|
||||
addTest(LRGCCCompleteParseExtensionsTest.suite());
|
||||
addTest(LRImageLocationTests.suite());
|
||||
addTest(LRKnRTests.suite()); // mostly fail due to ambiguities
|
||||
addTest(LRNodeSelectorTest.suite());
|
||||
|
@ -54,6 +55,8 @@ public class LRParserTestSuite extends TestSuite {
|
|||
addTest(LRTests.suite()); // has some tests that do fail
|
||||
addTest(LRUtilOldTests.suite());
|
||||
addTest(LRUtilTests.suite());
|
||||
addTest(LRCPPImplicitNameTests.suite());
|
||||
//addTest(LRInactiveCodeTests.suite());
|
||||
|
||||
}};
|
||||
}
|
||||
|
|
|
@ -154,5 +154,15 @@ public class LRTests extends AST2Tests {
|
|||
public void _testCastVsFunctionCallAmbiguities_Bug237057() throws Exception {
|
||||
super.testCastVsFunctionCallAmbiguities_Bug237057();
|
||||
}
|
||||
|
||||
|
||||
/* The LR parser generates the AST for switch statements
|
||||
* differently than the DOM parser.
|
||||
*/
|
||||
@Override
|
||||
public void testCaseRange_Bug211882() { }
|
||||
public void _testCaseRange_Bug211882() throws Exception {
|
||||
super.testCaseRange_Bug211882();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -979,15 +979,17 @@ declaration_list
|
|||
-- to avoid a shift/reduce error with the rule for declaration.
|
||||
-- The symbol table scoped is opened in the rule for function_direct_declarator
|
||||
function_definition
|
||||
::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
/. $Build consumeFunctionDefinition(true); $EndBuild ./
|
||||
::= normal_function_definition
|
||||
-- this rule is here as a special case (its not C99 spec) just to support implicit int in function definitions
|
||||
| <openscope-ast> function_declarator function_body
|
||||
/. $Build consumeFunctionDefinition(false); $EndBuild ./
|
||||
| declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
/. $Build consumeFunctionDefinitionKnR(); $EndBuild ./
|
||||
|
||||
|
||||
normal_function_definition
|
||||
::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
/. $Build consumeFunctionDefinition(true); $EndBuild ./
|
||||
|
||||
-- same syntax as compound_statement but a symbol table scope isn't opened
|
||||
function_body
|
||||
::= '{' '}'
|
||||
|
|
|
@ -103,4 +103,10 @@ designated_initializer
|
|||
|
||||
|
||||
|
||||
-- Nested functions
|
||||
|
||||
block_item
|
||||
::= normal_function_definition
|
||||
/. $Build consumeStatementDeclaration(); $EndBuild ./
|
||||
|
||||
$End
|
|
@ -24,23 +24,6 @@
|
|||
id="gpp"
|
||||
name="LR GPP">
|
||||
</language>
|
||||
|
||||
<pdomLinkageFactory
|
||||
class="org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory"
|
||||
id="c99"/>
|
||||
|
||||
<pdomLinkageFactory
|
||||
class="org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory"
|
||||
id="gcc"/>
|
||||
|
||||
<pdomLinkageFactory
|
||||
class="org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkageFactory"
|
||||
id="isocpp"/>
|
||||
|
||||
<pdomLinkageFactory
|
||||
class="org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkageFactory"
|
||||
id="gpp"/>
|
||||
|
||||
</extension>
|
||||
|
||||
</plugin>
|
|
@ -17,17 +17,17 @@ import lpg.lpgjavaruntime.*;
|
|||
|
||||
import java.util.*;
|
||||
import org.eclipse.cdt.core.dom.ast.*;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
|
||||
import org.eclipse.cdt.core.parser.IScanner;
|
||||
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
|
||||
import org.eclipse.cdt.core.index.IIndex;
|
||||
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
|
||||
|
@ -244,9 +244,9 @@ public void setTokens(List<IToken> tokens) {
|
|||
addToken(new Token(null, 0, 0, C99ExpressionParsersym.TK_EOF_TOKEN));
|
||||
}
|
||||
|
||||
public C99ExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
|
||||
public C99ExpressionParser(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser
|
||||
initActions(options);
|
||||
tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
|
||||
tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
|
||||
}
|
||||
|
||||
|
||||
|
@ -340,7 +340,7 @@ public C99ExpressionParser(ITokenStream parser, Set<IParser.Options> options) {
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
|
||||
// Rule 28: postfix_expression ::= ( type_id ) initializer_list
|
||||
//
|
||||
case 28: { action. consumeExpressionTypeIdInitializer(); break;
|
||||
}
|
||||
|
@ -1162,117 +1162,117 @@ public C99ExpressionParser(ITokenStream parser, Set<IParser.Options> options) {
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 282: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
|
||||
//
|
||||
case 282: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 283: initializer ::= { <openscope-ast> }
|
||||
// Rule 283: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
|
||||
//
|
||||
case 283: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 284: start_initializer_list ::= $Empty
|
||||
// Rule 284: initializer_list ::= { <openscope-ast> }
|
||||
//
|
||||
case 284: { action. initializerListStart(); break;
|
||||
case 284: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 285: end_initializer_list ::= $Empty
|
||||
// Rule 285: start_initializer_list ::= $Empty
|
||||
//
|
||||
case 285: { action. initializerListEnd(); break;
|
||||
case 285: { action. initializerListStart(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
// Rule 286: end_initializer_list ::= $Empty
|
||||
//
|
||||
case 290: { action. consumeInitializerDesignated(); break;
|
||||
case 286: { action. initializerListEnd(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 294: designator_base ::= [ constant_expression ]
|
||||
// Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
//
|
||||
case 294: { action. consumeDesignatorArray(); break;
|
||||
case 291: { action. consumeInitializerDesignated(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 295: designator_base ::= . identifier_token
|
||||
// Rule 295: designator_base ::= [ constant_expression ]
|
||||
//
|
||||
case 295: { action. consumeDesignatorField(); break;
|
||||
case 295: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 296: designator ::= [ constant_expression ]
|
||||
// Rule 296: designator_base ::= . identifier_token
|
||||
//
|
||||
case 296: { action. consumeDesignatorArray(); break;
|
||||
case 296: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 297: designator ::= . identifier_token
|
||||
// Rule 297: designator ::= [ constant_expression ]
|
||||
//
|
||||
case 297: { action. consumeDesignatorField(); break;
|
||||
case 297: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 298: translation_unit ::= external_declaration_list
|
||||
// Rule 298: designator ::= . identifier_token
|
||||
//
|
||||
case 298: { action. consumeTranslationUnit(); break;
|
||||
case 298: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 299: translation_unit ::= external_declaration_list
|
||||
//
|
||||
case 299: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 299: translation_unit ::= $Empty
|
||||
// Rule 300: translation_unit ::= $Empty
|
||||
//
|
||||
case 299: { action. consumeTranslationUnit(); break;
|
||||
case 300: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 304: external_declaration ::= ;
|
||||
// Rule 305: external_declaration ::= ;
|
||||
//
|
||||
case 304: { action. consumeDeclarationEmpty(); break;
|
||||
case 305: { action. consumeDeclarationEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 305: external_declaration ::= ERROR_TOKEN
|
||||
// Rule 306: external_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 305: { action. consumeDeclarationProblem(); break;
|
||||
case 306: { action. consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
// Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 308: { action. consumeFunctionDefinition(true); break;
|
||||
case 310: { action. consumeFunctionDefinition(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
// Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
//
|
||||
case 309: { action. consumeFunctionDefinition(false); break;
|
||||
case 311: { action. consumeFunctionDefinitionKnR(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
// Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 310: { action. consumeFunctionDefinitionKnR(); break;
|
||||
case 312: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 311: function_body ::= { }
|
||||
// Rule 313: function_body ::= { }
|
||||
//
|
||||
case 311: { action. consumeStatementCompoundStatement(false); break;
|
||||
case 313: { action. consumeStatementCompoundStatement(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 312: function_body ::= { <openscope-ast> block_item_list }
|
||||
// Rule 314: function_body ::= { <openscope-ast> block_item_list }
|
||||
//
|
||||
case 312: { action. consumeStatementCompoundStatement(true); break;
|
||||
case 314: { action. consumeStatementCompoundStatement(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 314: expression_parser_start ::= ERROR_TOKEN
|
||||
// Rule 316: expression_parser_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 314: { action. consumeEmpty(); break;
|
||||
case 316: { action. consumeEmpty(); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -39,8 +39,8 @@ public interface C99ExpressionParsersym {
|
|||
TK_return = 90,
|
||||
TK_short = 36,
|
||||
TK_signed = 37,
|
||||
TK_sizeof = 15,
|
||||
TK_static = 23,
|
||||
TK_sizeof = 16,
|
||||
TK_static = 17,
|
||||
TK_struct = 45,
|
||||
TK_switch = 91,
|
||||
TK_typedef = 28,
|
||||
|
@ -52,27 +52,27 @@ public interface C99ExpressionParsersym {
|
|||
TK__Bool = 40,
|
||||
TK__Complex = 41,
|
||||
TK__Imaginary = 42,
|
||||
TK_integer = 16,
|
||||
TK_floating = 17,
|
||||
TK_charconst = 18,
|
||||
TK_stringlit = 19,
|
||||
TK_integer = 18,
|
||||
TK_floating = 19,
|
||||
TK_charconst = 20,
|
||||
TK_stringlit = 21,
|
||||
TK_identifier = 1,
|
||||
TK_Completion = 3,
|
||||
TK_EndOfCompletion = 5,
|
||||
TK_Invalid = 93,
|
||||
TK_LeftBracket = 20,
|
||||
TK_LeftBracket = 12,
|
||||
TK_LeftParen = 2,
|
||||
TK_LeftBrace = 12,
|
||||
TK_LeftBrace = 13,
|
||||
TK_Dot = 52,
|
||||
TK_Arrow = 67,
|
||||
TK_PlusPlus = 13,
|
||||
TK_MinusMinus = 14,
|
||||
TK_PlusPlus = 14,
|
||||
TK_MinusMinus = 15,
|
||||
TK_And = 11,
|
||||
TK_Star = 4,
|
||||
TK_Plus = 9,
|
||||
TK_Minus = 10,
|
||||
TK_Tilde = 21,
|
||||
TK_Bang = 22,
|
||||
TK_Tilde = 22,
|
||||
TK_Bang = 23,
|
||||
TK_Slash = 53,
|
||||
TK_Percent = 54,
|
||||
TK_RightShift = 47,
|
||||
|
@ -122,18 +122,18 @@ public interface C99ExpressionParsersym {
|
|||
"Plus",
|
||||
"Minus",
|
||||
"And",
|
||||
"LeftBracket",
|
||||
"LeftBrace",
|
||||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"sizeof",
|
||||
"static",
|
||||
"integer",
|
||||
"floating",
|
||||
"charconst",
|
||||
"stringlit",
|
||||
"LeftBracket",
|
||||
"Tilde",
|
||||
"Bang",
|
||||
"static",
|
||||
"auto",
|
||||
"extern",
|
||||
"inline",
|
||||
|
|
|
@ -17,17 +17,17 @@ import lpg.lpgjavaruntime.*;
|
|||
|
||||
import java.util.*;
|
||||
import org.eclipse.cdt.core.dom.ast.*;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
|
||||
import org.eclipse.cdt.core.parser.IScanner;
|
||||
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
|
||||
import org.eclipse.cdt.core.index.IIndex;
|
||||
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
|
||||
|
@ -244,9 +244,9 @@ public void setTokens(List<IToken> tokens) {
|
|||
addToken(new Token(null, 0, 0, C99NoCastExpressionParsersym.TK_EOF_TOKEN));
|
||||
}
|
||||
|
||||
public C99NoCastExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
|
||||
public C99NoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser
|
||||
initActions(options);
|
||||
tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
|
||||
tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
|
||||
}
|
||||
|
||||
|
||||
|
@ -340,7 +340,7 @@ public C99NoCastExpressionParser(ITokenStream parser, Set<IParser.Options> optio
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
|
||||
// Rule 28: postfix_expression ::= ( type_id ) initializer_list
|
||||
//
|
||||
case 28: { action. consumeExpressionTypeIdInitializer(); break;
|
||||
}
|
||||
|
@ -1156,117 +1156,117 @@ public C99NoCastExpressionParser(ITokenStream parser, Set<IParser.Options> optio
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
|
||||
//
|
||||
case 281: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 282: initializer ::= { <openscope-ast> }
|
||||
// Rule 282: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
|
||||
//
|
||||
case 282: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 283: start_initializer_list ::= $Empty
|
||||
// Rule 283: initializer_list ::= { <openscope-ast> }
|
||||
//
|
||||
case 283: { action. initializerListStart(); break;
|
||||
case 283: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 284: end_initializer_list ::= $Empty
|
||||
// Rule 284: start_initializer_list ::= $Empty
|
||||
//
|
||||
case 284: { action. initializerListEnd(); break;
|
||||
case 284: { action. initializerListStart(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
// Rule 285: end_initializer_list ::= $Empty
|
||||
//
|
||||
case 289: { action. consumeInitializerDesignated(); break;
|
||||
case 285: { action. initializerListEnd(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 293: designator_base ::= [ constant_expression ]
|
||||
// Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
//
|
||||
case 293: { action. consumeDesignatorArray(); break;
|
||||
case 290: { action. consumeInitializerDesignated(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 294: designator_base ::= . identifier_token
|
||||
// Rule 294: designator_base ::= [ constant_expression ]
|
||||
//
|
||||
case 294: { action. consumeDesignatorField(); break;
|
||||
case 294: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 295: designator ::= [ constant_expression ]
|
||||
// Rule 295: designator_base ::= . identifier_token
|
||||
//
|
||||
case 295: { action. consumeDesignatorArray(); break;
|
||||
case 295: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 296: designator ::= . identifier_token
|
||||
// Rule 296: designator ::= [ constant_expression ]
|
||||
//
|
||||
case 296: { action. consumeDesignatorField(); break;
|
||||
case 296: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 297: translation_unit ::= external_declaration_list
|
||||
// Rule 297: designator ::= . identifier_token
|
||||
//
|
||||
case 297: { action. consumeTranslationUnit(); break;
|
||||
case 297: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 298: translation_unit ::= external_declaration_list
|
||||
//
|
||||
case 298: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 298: translation_unit ::= $Empty
|
||||
// Rule 299: translation_unit ::= $Empty
|
||||
//
|
||||
case 298: { action. consumeTranslationUnit(); break;
|
||||
case 299: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 303: external_declaration ::= ;
|
||||
// Rule 304: external_declaration ::= ;
|
||||
//
|
||||
case 303: { action. consumeDeclarationEmpty(); break;
|
||||
case 304: { action. consumeDeclarationEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 304: external_declaration ::= ERROR_TOKEN
|
||||
// Rule 305: external_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 304: { action. consumeDeclarationProblem(); break;
|
||||
case 305: { action. consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
// Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 307: { action. consumeFunctionDefinition(true); break;
|
||||
case 309: { action. consumeFunctionDefinition(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
// Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
//
|
||||
case 308: { action. consumeFunctionDefinition(false); break;
|
||||
case 310: { action. consumeFunctionDefinitionKnR(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
// Rule 311: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 309: { action. consumeFunctionDefinitionKnR(); break;
|
||||
case 311: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 310: function_body ::= { }
|
||||
// Rule 312: function_body ::= { }
|
||||
//
|
||||
case 310: { action. consumeStatementCompoundStatement(false); break;
|
||||
case 312: { action. consumeStatementCompoundStatement(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 311: function_body ::= { <openscope-ast> block_item_list }
|
||||
// Rule 313: function_body ::= { <openscope-ast> block_item_list }
|
||||
//
|
||||
case 311: { action. consumeStatementCompoundStatement(true); break;
|
||||
case 313: { action. consumeStatementCompoundStatement(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 313: no_cast_start ::= ERROR_TOKEN
|
||||
// Rule 315: no_cast_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 313: { action. consumeEmpty(); break;
|
||||
case 315: { action. consumeEmpty(); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.c99;
|
|||
|
||||
public interface C99NoCastExpressionParsersym {
|
||||
public final static int
|
||||
TK_auto = 24,
|
||||
TK_auto = 17,
|
||||
TK_break = 81,
|
||||
TK_case = 82,
|
||||
TK_char = 31,
|
||||
|
@ -26,24 +26,24 @@ public interface C99NoCastExpressionParsersym {
|
|||
TK_double = 32,
|
||||
TK_else = 86,
|
||||
TK_enum = 44,
|
||||
TK_extern = 25,
|
||||
TK_extern = 18,
|
||||
TK_float = 33,
|
||||
TK_for = 87,
|
||||
TK_goto = 88,
|
||||
TK_if = 89,
|
||||
TK_inline = 26,
|
||||
TK_inline = 19,
|
||||
TK_int = 34,
|
||||
TK_long = 35,
|
||||
TK_register = 27,
|
||||
TK_register = 20,
|
||||
TK_restrict = 7,
|
||||
TK_return = 90,
|
||||
TK_short = 36,
|
||||
TK_signed = 37,
|
||||
TK_sizeof = 17,
|
||||
TK_static = 14,
|
||||
TK_sizeof = 21,
|
||||
TK_static = 12,
|
||||
TK_struct = 45,
|
||||
TK_switch = 91,
|
||||
TK_typedef = 28,
|
||||
TK_typedef = 22,
|
||||
TK_union = 46,
|
||||
TK_unsigned = 38,
|
||||
TK_void = 39,
|
||||
|
@ -52,27 +52,27 @@ public interface C99NoCastExpressionParsersym {
|
|||
TK__Bool = 40,
|
||||
TK__Complex = 41,
|
||||
TK__Imaginary = 42,
|
||||
TK_integer = 18,
|
||||
TK_floating = 19,
|
||||
TK_charconst = 20,
|
||||
TK_stringlit = 21,
|
||||
TK_integer = 23,
|
||||
TK_floating = 24,
|
||||
TK_charconst = 25,
|
||||
TK_stringlit = 26,
|
||||
TK_identifier = 1,
|
||||
TK_Completion = 3,
|
||||
TK_EndOfCompletion = 5,
|
||||
TK_Invalid = 93,
|
||||
TK_LeftBracket = 11,
|
||||
TK_LeftBracket = 9,
|
||||
TK_LeftParen = 2,
|
||||
TK_LeftBrace = 12,
|
||||
TK_LeftBrace = 13,
|
||||
TK_Dot = 52,
|
||||
TK_Arrow = 67,
|
||||
TK_PlusPlus = 15,
|
||||
TK_MinusMinus = 16,
|
||||
TK_And = 13,
|
||||
TK_And = 14,
|
||||
TK_Star = 4,
|
||||
TK_Plus = 9,
|
||||
TK_Minus = 10,
|
||||
TK_Tilde = 22,
|
||||
TK_Bang = 23,
|
||||
TK_Plus = 10,
|
||||
TK_Minus = 11,
|
||||
TK_Tilde = 27,
|
||||
TK_Bang = 28,
|
||||
TK_Slash = 53,
|
||||
TK_Percent = 54,
|
||||
TK_RightShift = 47,
|
||||
|
@ -119,26 +119,26 @@ public interface C99NoCastExpressionParsersym {
|
|||
"const",
|
||||
"restrict",
|
||||
"volatile",
|
||||
"LeftBracket",
|
||||
"Plus",
|
||||
"Minus",
|
||||
"LeftBracket",
|
||||
"static",
|
||||
"LeftBrace",
|
||||
"And",
|
||||
"static",
|
||||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"auto",
|
||||
"extern",
|
||||
"inline",
|
||||
"register",
|
||||
"sizeof",
|
||||
"typedef",
|
||||
"integer",
|
||||
"floating",
|
||||
"charconst",
|
||||
"stringlit",
|
||||
"Tilde",
|
||||
"Bang",
|
||||
"auto",
|
||||
"extern",
|
||||
"inline",
|
||||
"register",
|
||||
"typedef",
|
||||
"Comma",
|
||||
"RightParen",
|
||||
"char",
|
||||
|
|
|
@ -17,12 +17,12 @@ import lpg.lpgjavaruntime.*;
|
|||
|
||||
import java.util.*;
|
||||
import org.eclipse.cdt.core.dom.ast.*;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
|
||||
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
|
||||
import org.eclipse.cdt.core.parser.IScanner;
|
||||
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
|
||||
|
@ -317,7 +317,7 @@ public String getName() {
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
|
||||
// Rule 28: postfix_expression ::= ( type_id ) initializer_list
|
||||
//
|
||||
case 28: { action. consumeExpressionTypeIdInitializer(); break;
|
||||
}
|
||||
|
@ -1139,111 +1139,111 @@ public String getName() {
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 282: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
|
||||
//
|
||||
case 282: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 283: initializer ::= { <openscope-ast> }
|
||||
// Rule 283: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
|
||||
//
|
||||
case 283: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 284: start_initializer_list ::= $Empty
|
||||
// Rule 284: initializer_list ::= { <openscope-ast> }
|
||||
//
|
||||
case 284: { action. initializerListStart(); break;
|
||||
case 284: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 285: end_initializer_list ::= $Empty
|
||||
// Rule 285: start_initializer_list ::= $Empty
|
||||
//
|
||||
case 285: { action. initializerListEnd(); break;
|
||||
case 285: { action. initializerListStart(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
// Rule 286: end_initializer_list ::= $Empty
|
||||
//
|
||||
case 290: { action. consumeInitializerDesignated(); break;
|
||||
case 286: { action. initializerListEnd(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 294: designator_base ::= [ constant_expression ]
|
||||
// Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
//
|
||||
case 294: { action. consumeDesignatorArray(); break;
|
||||
case 291: { action. consumeInitializerDesignated(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 295: designator_base ::= . identifier_token
|
||||
// Rule 295: designator_base ::= [ constant_expression ]
|
||||
//
|
||||
case 295: { action. consumeDesignatorField(); break;
|
||||
case 295: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 296: designator ::= [ constant_expression ]
|
||||
// Rule 296: designator_base ::= . identifier_token
|
||||
//
|
||||
case 296: { action. consumeDesignatorArray(); break;
|
||||
case 296: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 297: designator ::= . identifier_token
|
||||
// Rule 297: designator ::= [ constant_expression ]
|
||||
//
|
||||
case 297: { action. consumeDesignatorField(); break;
|
||||
case 297: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 298: translation_unit ::= external_declaration_list
|
||||
// Rule 298: designator ::= . identifier_token
|
||||
//
|
||||
case 298: { action. consumeTranslationUnit(); break;
|
||||
case 298: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 299: translation_unit ::= external_declaration_list
|
||||
//
|
||||
case 299: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 299: translation_unit ::= $Empty
|
||||
// Rule 300: translation_unit ::= $Empty
|
||||
//
|
||||
case 299: { action. consumeTranslationUnit(); break;
|
||||
case 300: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 304: external_declaration ::= ;
|
||||
// Rule 305: external_declaration ::= ;
|
||||
//
|
||||
case 304: { action. consumeDeclarationEmpty(); break;
|
||||
case 305: { action. consumeDeclarationEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 305: external_declaration ::= ERROR_TOKEN
|
||||
// Rule 306: external_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 305: { action. consumeDeclarationProblem(); break;
|
||||
case 306: { action. consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
// Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 308: { action. consumeFunctionDefinition(true); break;
|
||||
case 310: { action. consumeFunctionDefinition(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
// Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
//
|
||||
case 309: { action. consumeFunctionDefinition(false); break;
|
||||
case 311: { action. consumeFunctionDefinitionKnR(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
// Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 310: { action. consumeFunctionDefinitionKnR(); break;
|
||||
case 312: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 311: function_body ::= { }
|
||||
// Rule 313: function_body ::= { }
|
||||
//
|
||||
case 311: { action. consumeStatementCompoundStatement(false); break;
|
||||
case 313: { action. consumeStatementCompoundStatement(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 312: function_body ::= { <openscope-ast> block_item_list }
|
||||
// Rule 314: function_body ::= { <openscope-ast> block_item_list }
|
||||
//
|
||||
case 312: { action. consumeStatementCompoundStatement(true); break;
|
||||
case 314: { action. consumeStatementCompoundStatement(true); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -17,17 +17,17 @@ import lpg.lpgjavaruntime.*;
|
|||
|
||||
import java.util.*;
|
||||
import org.eclipse.cdt.core.dom.ast.*;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
|
||||
import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
|
||||
import org.eclipse.cdt.core.parser.IScanner;
|
||||
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
|
||||
import org.eclipse.cdt.core.index.IIndex;
|
||||
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
|
||||
import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
|
||||
|
@ -244,9 +244,9 @@ public void setTokens(List<IToken> tokens) {
|
|||
addToken(new Token(null, 0, 0, C99SizeofExpressionParsersym.TK_EOF_TOKEN));
|
||||
}
|
||||
|
||||
public C99SizeofExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
|
||||
public C99SizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser
|
||||
initActions(options);
|
||||
tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
|
||||
tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
|
||||
}
|
||||
|
||||
|
||||
|
@ -340,7 +340,7 @@ public C99SizeofExpressionParser(ITokenStream parser, Set<IParser.Options> optio
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
|
||||
// Rule 28: postfix_expression ::= ( type_id ) initializer_list
|
||||
//
|
||||
case 28: { action. consumeExpressionTypeIdInitializer(); break;
|
||||
}
|
||||
|
@ -1156,117 +1156,117 @@ public C99SizeofExpressionParser(ITokenStream parser, Set<IParser.Options> optio
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
|
||||
//
|
||||
case 281: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 282: initializer ::= { <openscope-ast> }
|
||||
// Rule 282: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
|
||||
//
|
||||
case 282: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 283: start_initializer_list ::= $Empty
|
||||
// Rule 283: initializer_list ::= { <openscope-ast> }
|
||||
//
|
||||
case 283: { action. initializerListStart(); break;
|
||||
case 283: { action. consumeInitializerList(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 284: end_initializer_list ::= $Empty
|
||||
// Rule 284: start_initializer_list ::= $Empty
|
||||
//
|
||||
case 284: { action. initializerListEnd(); break;
|
||||
case 284: { action. initializerListStart(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
// Rule 285: end_initializer_list ::= $Empty
|
||||
//
|
||||
case 289: { action. consumeInitializerDesignated(); break;
|
||||
case 285: { action. initializerListEnd(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 293: designator_base ::= [ constant_expression ]
|
||||
// Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
|
||||
//
|
||||
case 293: { action. consumeDesignatorArray(); break;
|
||||
case 290: { action. consumeInitializerDesignated(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 294: designator_base ::= . identifier_token
|
||||
// Rule 294: designator_base ::= [ constant_expression ]
|
||||
//
|
||||
case 294: { action. consumeDesignatorField(); break;
|
||||
case 294: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 295: designator ::= [ constant_expression ]
|
||||
// Rule 295: designator_base ::= . identifier_token
|
||||
//
|
||||
case 295: { action. consumeDesignatorArray(); break;
|
||||
case 295: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 296: designator ::= . identifier_token
|
||||
// Rule 296: designator ::= [ constant_expression ]
|
||||
//
|
||||
case 296: { action. consumeDesignatorField(); break;
|
||||
case 296: { action. consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 297: translation_unit ::= external_declaration_list
|
||||
// Rule 297: designator ::= . identifier_token
|
||||
//
|
||||
case 297: { action. consumeTranslationUnit(); break;
|
||||
case 297: { action. consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 298: translation_unit ::= external_declaration_list
|
||||
//
|
||||
case 298: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 298: translation_unit ::= $Empty
|
||||
// Rule 299: translation_unit ::= $Empty
|
||||
//
|
||||
case 298: { action. consumeTranslationUnit(); break;
|
||||
case 299: { action. consumeTranslationUnit(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 303: external_declaration ::= ;
|
||||
// Rule 304: external_declaration ::= ;
|
||||
//
|
||||
case 303: { action. consumeDeclarationEmpty(); break;
|
||||
case 304: { action. consumeDeclarationEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 304: external_declaration ::= ERROR_TOKEN
|
||||
// Rule 305: external_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 304: { action. consumeDeclarationProblem(); break;
|
||||
case 305: { action. consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
// Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 307: { action. consumeFunctionDefinition(true); break;
|
||||
case 309: { action. consumeFunctionDefinition(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
// Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
//
|
||||
case 308: { action. consumeFunctionDefinition(false); break;
|
||||
case 310: { action. consumeFunctionDefinitionKnR(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
|
||||
// Rule 311: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 309: { action. consumeFunctionDefinitionKnR(); break;
|
||||
case 311: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 310: function_body ::= { }
|
||||
// Rule 312: function_body ::= { }
|
||||
//
|
||||
case 310: { action. consumeStatementCompoundStatement(false); break;
|
||||
case 312: { action. consumeStatementCompoundStatement(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 311: function_body ::= { <openscope-ast> block_item_list }
|
||||
// Rule 313: function_body ::= { <openscope-ast> block_item_list }
|
||||
//
|
||||
case 311: { action. consumeStatementCompoundStatement(true); break;
|
||||
case 313: { action. consumeStatementCompoundStatement(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 313: no_sizeof_type_id_start ::= ERROR_TOKEN
|
||||
// Rule 315: no_sizeof_type_id_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 313: { action. consumeEmpty(); break;
|
||||
case 315: { action. consumeEmpty(); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -39,8 +39,8 @@ public interface C99SizeofExpressionParsersym {
|
|||
TK_return = 90,
|
||||
TK_short = 36,
|
||||
TK_signed = 37,
|
||||
TK_sizeof = 16,
|
||||
TK_static = 17,
|
||||
TK_sizeof = 17,
|
||||
TK_static = 13,
|
||||
TK_struct = 45,
|
||||
TK_switch = 91,
|
||||
TK_typedef = 28,
|
||||
|
@ -60,14 +60,14 @@ public interface C99SizeofExpressionParsersym {
|
|||
TK_Completion = 3,
|
||||
TK_EndOfCompletion = 5,
|
||||
TK_Invalid = 93,
|
||||
TK_LeftBracket = 12,
|
||||
TK_LeftBracket = 11,
|
||||
TK_LeftParen = 2,
|
||||
TK_LeftBrace = 13,
|
||||
TK_LeftBrace = 14,
|
||||
TK_Dot = 52,
|
||||
TK_Arrow = 67,
|
||||
TK_PlusPlus = 14,
|
||||
TK_MinusMinus = 15,
|
||||
TK_And = 11,
|
||||
TK_PlusPlus = 15,
|
||||
TK_MinusMinus = 16,
|
||||
TK_And = 12,
|
||||
TK_Star = 4,
|
||||
TK_Plus = 9,
|
||||
TK_Minus = 10,
|
||||
|
@ -121,13 +121,13 @@ public interface C99SizeofExpressionParsersym {
|
|||
"volatile",
|
||||
"Plus",
|
||||
"Minus",
|
||||
"And",
|
||||
"LeftBracket",
|
||||
"And",
|
||||
"static",
|
||||
"LeftBrace",
|
||||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"sizeof",
|
||||
"static",
|
||||
"integer",
|
||||
"floating",
|
||||
"charconst",
|
||||
|
|
|
@ -1228,12 +1228,6 @@ private GNUBuildASTParserAction gnuAction;
|
|||
case 306: { action. consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 309: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 309: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
//
|
||||
|
@ -1247,123 +1241,135 @@ private GNUBuildASTParserAction gnuAction;
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 312: function_body ::= { }
|
||||
// Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 312: { action. consumeStatementCompoundStatement(false); break;
|
||||
case 312: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 313: function_body ::= { <openscope-ast> block_item_list }
|
||||
// Rule 313: function_body ::= { }
|
||||
//
|
||||
case 313: { action. consumeStatementCompoundStatement(true); break;
|
||||
case 313: { action. consumeStatementCompoundStatement(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 330: attribute_parameter ::= assignment_expression
|
||||
// Rule 314: function_body ::= { <openscope-ast> block_item_list }
|
||||
//
|
||||
case 330: { action. consumeIgnore(); break;
|
||||
case 314: { action. consumeStatementCompoundStatement(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 331: attribute_parameter ::= assignment_expression
|
||||
//
|
||||
case 331: { action. consumeIgnore(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 341: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
|
||||
// Rule 342: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
|
||||
//
|
||||
case 341: { gnuAction.consumeDeclarationASM(); break;
|
||||
case 342: { gnuAction.consumeDeclarationASM(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 352: unary_expression ::= __alignof__ unary_expression
|
||||
// Rule 353: unary_expression ::= __alignof__ unary_expression
|
||||
//
|
||||
case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
|
||||
case 353: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 353: unary_expression ::= __alignof__ ( type_id )
|
||||
// Rule 354: unary_expression ::= __alignof__ ( type_id )
|
||||
//
|
||||
case 353: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break;
|
||||
case 354: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 354: unary_expression ::= typeof unary_expression
|
||||
// Rule 355: unary_expression ::= typeof unary_expression
|
||||
//
|
||||
case 354: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
case 355: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 355: unary_expression ::= typeof ( type_id )
|
||||
// Rule 356: unary_expression ::= typeof ( type_id )
|
||||
//
|
||||
case 355: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
|
||||
case 356: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 356: relational_expression ::= relational_expression >? shift_expression
|
||||
// Rule 357: relational_expression ::= relational_expression >? shift_expression
|
||||
//
|
||||
case 356: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
|
||||
case 357: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 357: relational_expression ::= relational_expression <? shift_expression
|
||||
// Rule 358: relational_expression ::= relational_expression <? shift_expression
|
||||
//
|
||||
case 357: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
|
||||
case 358: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 358: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
|
||||
// Rule 359: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
|
||||
//
|
||||
case 358: { action. consumeExpressionConditional(); break;
|
||||
case 359: { action. consumeExpressionConditional(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 359: primary_expression ::= ( compound_statement )
|
||||
// Rule 360: primary_expression ::= ( compound_statement )
|
||||
//
|
||||
case 359: { gnuAction.consumeCompoundStatementExpression(); break;
|
||||
case 360: { gnuAction.consumeCompoundStatementExpression(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 360: labeled_statement ::= case case_range_expression : statement
|
||||
// Rule 361: labeled_statement ::= case case_range_expression : statement
|
||||
//
|
||||
case 360: { action. consumeStatementCase(); break;
|
||||
case 361: { action. consumeStatementCase(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 361: case_range_expression ::= constant_expression ... constant_expression
|
||||
// Rule 362: case_range_expression ::= constant_expression ... constant_expression
|
||||
//
|
||||
case 361: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
|
||||
case 362: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 365: typeof_type_specifier ::= typeof unary_expression
|
||||
// Rule 366: typeof_type_specifier ::= typeof unary_expression
|
||||
//
|
||||
case 365: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
case 366: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 366: typeof_type_specifier ::= typeof ( type_id )
|
||||
// Rule 367: typeof_type_specifier ::= typeof ( type_id )
|
||||
//
|
||||
case 366: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
|
||||
case 367: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 367: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
|
||||
// Rule 368: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
|
||||
//
|
||||
case 367: { action. consumeDeclarationSpecifiersTypeof(); break;
|
||||
case 368: { action. consumeDeclarationSpecifiersTypeof(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 383: field_name_designator ::= identifier_token :
|
||||
// Rule 384: field_name_designator ::= identifier_token :
|
||||
//
|
||||
case 383: { action. consumeDesignatorFieldGCC(); break;
|
||||
case 384: { action. consumeDesignatorFieldGCC(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 384: array_range_designator ::= [ constant_expression ... constant_expression ]
|
||||
// Rule 385: array_range_designator ::= [ constant_expression ... constant_expression ]
|
||||
//
|
||||
case 384: { action. consumeDesignatorArrayRange(); break;
|
||||
case 385: { action. consumeDesignatorArrayRange(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 385: designated_initializer ::= <openscope-ast> field_name_designator initializer
|
||||
// Rule 386: designated_initializer ::= <openscope-ast> field_name_designator initializer
|
||||
//
|
||||
case 385: { action. consumeInitializerDesignated(); break;
|
||||
case 386: { action. consumeInitializerDesignated(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 387: block_item ::= normal_function_definition
|
||||
//
|
||||
case 387: { action. consumeStatementDeclaration(); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1245,12 +1245,6 @@ private GNUBuildASTParserAction gnuAction;
|
|||
case 305: { action. consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 308: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
|
||||
//
|
||||
|
@ -1264,117 +1258,129 @@ private GNUBuildASTParserAction gnuAction;
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 311: function_body ::= { }
|
||||
// Rule 311: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
|
||||
//
|
||||
case 311: { action. consumeStatementCompoundStatement(false); break;
|
||||
case 311: { action. consumeFunctionDefinition(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 312: function_body ::= { <openscope-ast> block_item_list }
|
||||
// Rule 312: function_body ::= { }
|
||||
//
|
||||
case 312: { action. consumeStatementCompoundStatement(true); break;
|
||||
case 312: { action. consumeStatementCompoundStatement(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 329: attribute_parameter ::= assignment_expression
|
||||
// Rule 313: function_body ::= { <openscope-ast> block_item_list }
|
||||
//
|
||||
case 329: { action. consumeIgnore(); break;
|
||||
case 313: { action. consumeStatementCompoundStatement(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 330: attribute_parameter ::= assignment_expression
|
||||
//
|
||||
case 330: { action. consumeIgnore(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 340: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
|
||||
// Rule 341: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
|
||||
//
|
||||
case 340: { gnuAction.consumeDeclarationASM(); break;
|
||||
case 341: { gnuAction.consumeDeclarationASM(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 351: unary_expression ::= __alignof__ unary_expression
|
||||
// Rule 352: unary_expression ::= __alignof__ unary_expression
|
||||
//
|
||||
case 351: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
|
||||
case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 352: unary_expression ::= typeof unary_expression
|
||||
// Rule 353: unary_expression ::= typeof unary_expression
|
||||
//
|
||||
case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
case 353: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 353: relational_expression ::= relational_expression >? shift_expression
|
||||
// Rule 354: relational_expression ::= relational_expression >? shift_expression
|
||||
//
|
||||
case 353: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
|
||||
case 354: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 354: relational_expression ::= relational_expression <? shift_expression
|
||||
// Rule 355: relational_expression ::= relational_expression <? shift_expression
|
||||
//
|
||||
case 354: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
|
||||
case 355: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 355: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
|
||||
// Rule 356: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
|
||||
//
|
||||
case 355: { action. consumeExpressionConditional(); break;
|
||||
case 356: { action. consumeExpressionConditional(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 356: primary_expression ::= ( compound_statement )
|
||||
// Rule 357: primary_expression ::= ( compound_statement )
|
||||
//
|
||||
case 356: { gnuAction.consumeCompoundStatementExpression(); break;
|
||||
case 357: { gnuAction.consumeCompoundStatementExpression(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 357: labeled_statement ::= case case_range_expression : statement
|
||||
// Rule 358: labeled_statement ::= case case_range_expression : statement
|
||||
//
|
||||
case 357: { action. consumeStatementCase(); break;
|
||||
case 358: { action. consumeStatementCase(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 358: case_range_expression ::= constant_expression ... constant_expression
|
||||
// Rule 359: case_range_expression ::= constant_expression ... constant_expression
|
||||
//
|
||||
case 358: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
|
||||
case 359: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 362: typeof_type_specifier ::= typeof unary_expression
|
||||
// Rule 363: typeof_type_specifier ::= typeof unary_expression
|
||||
//
|
||||
case 362: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
case 363: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 363: typeof_type_specifier ::= typeof ( type_id )
|
||||
// Rule 364: typeof_type_specifier ::= typeof ( type_id )
|
||||
//
|
||||
case 363: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
|
||||
case 364: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 364: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
|
||||
// Rule 365: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
|
||||
//
|
||||
case 364: { action. consumeDeclarationSpecifiersTypeof(); break;
|
||||
case 365: { action. consumeDeclarationSpecifiersTypeof(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 380: field_name_designator ::= identifier_token :
|
||||
// Rule 381: field_name_designator ::= identifier_token :
|
||||
//
|
||||
case 380: { action. consumeDesignatorFieldGCC(); break;
|
||||
case 381: { action. consumeDesignatorFieldGCC(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 381: array_range_designator ::= [ constant_expression ... constant_expression ]
|
||||
// Rule 382: array_range_designator ::= [ constant_expression ... constant_expression ]
|
||||
//
|
||||
case 381: { action. consumeDesignatorArrayRange(); break;
|
||||
case 382: { action. consumeDesignatorArrayRange(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 382: designated_initializer ::= <openscope-ast> field_name_designator initializer
|
||||
// Rule 383: designated_initializer ::= <openscope-ast> field_name_designator initializer
|
||||
//
|
||||
case 382: { action. consumeInitializerDesignated(); break;
|
||||
case 383: { action. consumeInitializerDesignated(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 384: no_sizeof_type_name_start ::= ERROR_TOKEN
|
||||
// Rule 384: block_item ::= normal_function_definition
|
||||
//
|
||||
case 384: { action. consumeEmpty(); break;
|
||||
case 384: { action. consumeStatementDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 386: no_sizeof_type_name_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 386: { action. consumeEmpty(); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
|
|||
|
||||
public interface GCCSizeofExpressionParsersym {
|
||||
public final static int
|
||||
TK_auto = 32,
|
||||
TK_auto = 30,
|
||||
TK_break = 38,
|
||||
TK_case = 39,
|
||||
TK_char = 51,
|
||||
|
@ -25,48 +25,48 @@ public interface GCCSizeofExpressionParsersym {
|
|||
TK_do = 42,
|
||||
TK_double = 52,
|
||||
TK_else = 98,
|
||||
TK_enum = 65,
|
||||
TK_extern = 33,
|
||||
TK_enum = 63,
|
||||
TK_extern = 31,
|
||||
TK_float = 53,
|
||||
TK_for = 43,
|
||||
TK_goto = 44,
|
||||
TK_if = 45,
|
||||
TK_inline = 34,
|
||||
TK_inline = 32,
|
||||
TK_int = 54,
|
||||
TK_long = 55,
|
||||
TK_register = 35,
|
||||
TK_register = 33,
|
||||
TK_restrict = 26,
|
||||
TK_return = 46,
|
||||
TK_short = 56,
|
||||
TK_signed = 57,
|
||||
TK_sizeof = 16,
|
||||
TK_sizeof = 17,
|
||||
TK_static = 28,
|
||||
TK_struct = 66,
|
||||
TK_struct = 64,
|
||||
TK_switch = 47,
|
||||
TK_typedef = 36,
|
||||
TK_union = 67,
|
||||
TK_typedef = 34,
|
||||
TK_union = 65,
|
||||
TK_unsigned = 58,
|
||||
TK_void = 59,
|
||||
TK_volatile = 25,
|
||||
TK_while = 37,
|
||||
TK_while = 35,
|
||||
TK__Bool = 60,
|
||||
TK__Complex = 61,
|
||||
TK__Imaginary = 62,
|
||||
TK_integer = 17,
|
||||
TK_floating = 18,
|
||||
TK_charconst = 19,
|
||||
TK_integer = 18,
|
||||
TK_floating = 19,
|
||||
TK_charconst = 20,
|
||||
TK_stringlit = 11,
|
||||
TK_identifier = 1,
|
||||
TK_Completion = 5,
|
||||
TK_EndOfCompletion = 3,
|
||||
TK_Invalid = 100,
|
||||
TK_LeftBracket = 30,
|
||||
TK_LeftBracket = 36,
|
||||
TK_LeftParen = 2,
|
||||
TK_LeftBrace = 20,
|
||||
TK_LeftBrace = 14,
|
||||
TK_Dot = 70,
|
||||
TK_Arrow = 85,
|
||||
TK_PlusPlus = 14,
|
||||
TK_MinusMinus = 15,
|
||||
TK_PlusPlus = 15,
|
||||
TK_MinusMinus = 16,
|
||||
TK_And = 12,
|
||||
TK_Star = 6,
|
||||
TK_Plus = 9,
|
||||
|
@ -75,8 +75,8 @@ public interface GCCSizeofExpressionParsersym {
|
|||
TK_Bang = 22,
|
||||
TK_Slash = 71,
|
||||
TK_Percent = 72,
|
||||
TK_RightShift = 63,
|
||||
TK_LeftShift = 64,
|
||||
TK_RightShift = 66,
|
||||
TK_LeftShift = 67,
|
||||
TK_LT = 73,
|
||||
TK_GT = 74,
|
||||
TK_LE = 75,
|
||||
|
@ -103,7 +103,7 @@ public interface GCCSizeofExpressionParsersym {
|
|||
TK_OrAssign = 97,
|
||||
TK_Comma = 49,
|
||||
TK_RightBracket = 77,
|
||||
TK_RightParen = 31,
|
||||
TK_RightParen = 37,
|
||||
TK_RightBrace = 50,
|
||||
TK_SemiColon = 27,
|
||||
TK_typeof = 13,
|
||||
|
@ -131,13 +131,13 @@ public interface GCCSizeofExpressionParsersym {
|
|||
"stringlit",
|
||||
"And",
|
||||
"typeof",
|
||||
"LeftBrace",
|
||||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"sizeof",
|
||||
"integer",
|
||||
"floating",
|
||||
"charconst",
|
||||
"LeftBrace",
|
||||
"Tilde",
|
||||
"Bang",
|
||||
"__alignof__",
|
||||
|
@ -147,14 +147,14 @@ public interface GCCSizeofExpressionParsersym {
|
|||
"SemiColon",
|
||||
"static",
|
||||
"ERROR_TOKEN",
|
||||
"LeftBracket",
|
||||
"RightParen",
|
||||
"auto",
|
||||
"extern",
|
||||
"inline",
|
||||
"register",
|
||||
"typedef",
|
||||
"while",
|
||||
"LeftBracket",
|
||||
"RightParen",
|
||||
"break",
|
||||
"case",
|
||||
"continue",
|
||||
|
@ -180,11 +180,11 @@ public interface GCCSizeofExpressionParsersym {
|
|||
"_Bool",
|
||||
"_Complex",
|
||||
"_Imaginary",
|
||||
"RightShift",
|
||||
"LeftShift",
|
||||
"enum",
|
||||
"struct",
|
||||
"union",
|
||||
"RightShift",
|
||||
"LeftShift",
|
||||
"DotDotDot",
|
||||
"Assign",
|
||||
"Dot",
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
name="UPC">
|
||||
<contentType id="org.eclipse.cdt.core.parser.upc.upcSource"/>
|
||||
</language>
|
||||
<pdomLinkageFactory
|
||||
class="org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory"
|
||||
id="upc"/>
|
||||
</extension>
|
||||
|
||||
<extension point="org.eclipse.ui.editors.templates">
|
||||
|
|
Loading…
Add table
Reference in a new issue