mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 06:05:24 +02:00
support for GCC array range designators, renamed some packages
This commit is contained in:
parent
56c5c65d37
commit
e314072063
42 changed files with 3376 additions and 3216 deletions
|
@ -14,8 +14,8 @@ import junit.framework.TestSuite;
|
|||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2CPPSpecFailingTest;
|
||||
|
|
|
@ -14,8 +14,8 @@ import junit.framework.TestSuite;
|
|||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2CPPSpecTest;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2CPPTests;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2CSpecTest;
|
||||
|
|
|
@ -15,8 +15,8 @@ import junit.framework.TestSuite;
|
|||
import org.eclipse.cdt.core.dom.ast.IASTComment;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.CommentTests;
|
||||
|
|
|
@ -14,8 +14,8 @@ import junit.framework.AssertionFailedError;
|
|||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.CompleteParser2Tests;
|
||||
|
|
|
@ -16,8 +16,8 @@ import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
|
|||
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||
import org.eclipse.cdt.core.dom.ast.IFunction;
|
||||
import org.eclipse.cdt.core.dom.ast.ITypedef;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.prefix.BasicCompletionTest;
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.eclipse.cdt.core.dom.ast.IEnumerator;
|
|||
import org.eclipse.cdt.core.dom.ast.IField;
|
||||
import org.eclipse.cdt.core.dom.ast.ITypedef;
|
||||
import org.eclipse.cdt.core.dom.ast.IVariable;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
|
||||
import org.eclipse.cdt.core.model.ILanguage;
|
||||
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.CodeReader;
|
||||
import org.eclipse.cdt.core.parser.ExtendedScannerInfo;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.DOMLocationMacroTests;
|
||||
|
|
|
@ -14,8 +14,8 @@ import junit.framework.AssertionFailedError;
|
|||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.DOMLocationTests;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.DOMPreprocessorInformationTest;
|
||||
|
|
|
@ -32,7 +32,7 @@ import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
|
|||
import org.eclipse.cdt.core.dom.ast.IASTStatement;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
|
||||
import org.eclipse.cdt.core.model.ILanguage;
|
||||
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.GCCTests;
|
||||
|
|
|
@ -11,8 +11,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.ImageLocationTests;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2KnRTests;
|
||||
|
|
|
@ -15,8 +15,8 @@ import java.io.IOException;
|
|||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.ASTNodeSelectorTest;
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
******************************************************************************/
|
||||
package org.eclipse.cdt.core.lrparser.tests;
|
||||
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.QuickParser2Tests;
|
||||
|
|
|
@ -15,8 +15,8 @@ import junit.framework.TestSuite;
|
|||
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.CodeReader;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfo;
|
||||
|
|
|
@ -11,8 +11,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.SemanticsTests;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.TaskParserTest;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2TemplateTests;
|
||||
|
|
|
@ -16,8 +16,8 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
|
|||
import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2Tests;
|
||||
|
|
|
@ -14,8 +14,8 @@ import junit.framework.AssertionFailedError;
|
|||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2UtilOldTests;
|
||||
|
|
|
@ -13,8 +13,8 @@ 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.gcc.GCCLanguage;
|
||||
import org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage;
|
||||
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.AST2UtilTests;
|
||||
|
|
|
@ -14,8 +14,7 @@ Export-Package: org.eclipse.cdt.core.dom.lrparser,
|
|||
org.eclipse.cdt.core.dom.lrparser.action.cpp,
|
||||
org.eclipse.cdt.core.dom.lrparser.c99,
|
||||
org.eclipse.cdt.core.dom.lrparser.cpp,
|
||||
org.eclipse.cdt.core.dom.lrparser.gcc,
|
||||
org.eclipse.cdt.core.dom.lrparser.gpp,
|
||||
org.eclipse.cdt.core.dom.lrparser.gnu,
|
||||
org.eclipse.cdt.core.dom.lrparser.lpgextensions,
|
||||
org.eclipse.cdt.internal.core.dom.lrparser.c99;x-internal:=true,
|
||||
org.eclipse.cdt.internal.core.dom.lrparser.cpp,
|
||||
|
|
|
@ -33,7 +33,17 @@ $Terminals
|
|||
$End
|
||||
|
||||
|
||||
$Globals
|
||||
/.
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
|
||||
./
|
||||
$End
|
||||
|
||||
$Define
|
||||
|
||||
$gnu_action_class /. GCCBuildASTParserAction ./
|
||||
|
||||
$End
|
||||
|
||||
|
||||
$Rules
|
||||
|
@ -43,7 +53,6 @@ declaration
|
|||
::= extended_asm_declaration
|
||||
|
||||
|
||||
|
||||
no_type_declaration_specifier
|
||||
::= attribute_or_decl_specifier
|
||||
|
||||
|
@ -73,4 +82,21 @@ elaborated_specifier_hook
|
|||
::= attribute_or_decl_specifier_seq
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
designator_base
|
||||
::= identifier_token ':'
|
||||
/. $BeginAction gnuAction.consumeDesignatorField(); $EndAction ./
|
||||
| '[' constant_expression '...' constant_expression ']'
|
||||
/. $BeginAction gnuAction.consumeDesignatorArray(); $EndAction ./
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$End
|
|
@ -26,24 +26,22 @@ $Terminals
|
|||
|
||||
$End
|
||||
|
||||
$Globals
|
||||
/.
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gcc.GCCBuildASTParserAction;
|
||||
./
|
||||
$End
|
||||
|
||||
|
||||
$Headers
|
||||
/.
|
||||
private GCCBuildASTParserAction gccAction;
|
||||
private $gnu_action_class gnuAction;
|
||||
./
|
||||
$End
|
||||
|
||||
$Define
|
||||
|
||||
$gnu_action_class /. ./
|
||||
|
||||
$action_initializations /.
|
||||
|
||||
gccAction = new GCCBuildASTParserAction($node_factory_create_expression, this, tu, astStack);
|
||||
gccAction.setParserOptions(options);
|
||||
gnuAction = new $gnu_action_class ($node_factory_create_expression, this, tu, astStack);
|
||||
gnuAction.setParserOptions(options);
|
||||
|
||||
./
|
||||
|
||||
|
@ -118,7 +116,7 @@ asm_label
|
|||
|
||||
extended_asm_declaration
|
||||
::= 'asm' volatile_opt '(' extended_asm_param_seq ')' ';'
|
||||
/. $BeginAction gccAction.consumeDeclarationASM(); $EndAction ./
|
||||
/. $BeginAction gnuAction.consumeDeclarationASM(); $EndAction ./
|
||||
|
||||
volatile_opt ::= 'volatile' | $empty
|
||||
|
||||
|
|
|
@ -33,6 +33,17 @@ $Import
|
|||
../gnu/GNUExtensions.g
|
||||
$End
|
||||
|
||||
$Globals
|
||||
/.
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
|
||||
./
|
||||
$End
|
||||
|
||||
$Define
|
||||
|
||||
$gnu_action_class /. GNUBuildASTParserAction ./
|
||||
|
||||
$End
|
||||
|
||||
$Rules
|
||||
|
||||
|
@ -66,6 +77,10 @@ class_name_suffix_hook
|
|||
pointer_hook
|
||||
::= attribute_or_decl_specifier_seq
|
||||
|
||||
declarator
|
||||
::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
|
||||
/. $Build consumeDeclaratorWithPointer(true); $EndBuild ./
|
||||
|
||||
elaborated_specifier_hook
|
||||
::= attribute_or_decl_specifier_seq
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
name="%language.name.c99">
|
||||
</language>
|
||||
<language
|
||||
class="org.eclipse.cdt.core.dom.lrparser.gcc.GCCLanguage"
|
||||
class="org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage"
|
||||
id="gcc"
|
||||
name="LR GCC">
|
||||
</language>
|
||||
|
@ -20,7 +20,7 @@
|
|||
name="%language.name.isocpp">
|
||||
</language>
|
||||
<language
|
||||
class="org.eclipse.cdt.core.dom.lrparser.gpp.GPPLanguage"
|
||||
class="org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage"
|
||||
id="gpp"
|
||||
name="LR GPP">
|
||||
</language>
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package org.eclipse.cdt.core.dom.lrparser.action.gnu;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTExpression;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
import org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator;
|
||||
import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
|
||||
import org.eclipse.cdt.core.dom.ast.gnu.c.IGCCASTArrayRangeDesignator;
|
||||
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
|
||||
|
||||
public class GCCBuildASTParserAction extends GNUBuildASTParserAction {
|
||||
|
||||
private final ICNodeFactory nodeFactory;
|
||||
|
||||
public GCCBuildASTParserAction(ICNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
|
||||
super(nodeFactory, parser, tu, astStack);
|
||||
this.nodeFactory = nodeFactory;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* designator_base
|
||||
* ::= identifier_token ':'
|
||||
*/
|
||||
public void consumeDesignatorField() {
|
||||
IASTName name = createName(parser.getLeftIToken());
|
||||
ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name);
|
||||
setOffsetAndLength(designator);
|
||||
astStack.push(designator);
|
||||
}
|
||||
|
||||
/**
|
||||
* designator ::= '[' constant_expression '...' constant_expression']'
|
||||
*/
|
||||
public void consumeDesignatorArray() {
|
||||
IASTExpression ceiling = (IASTExpression) astStack.pop();
|
||||
IASTExpression floor = (IASTExpression) astStack.pop();
|
||||
IGCCASTArrayRangeDesignator designator = nodeFactory.newArrayRangeDesignatorGCC(floor, ceiling);
|
||||
setOffsetAndLength(designator);
|
||||
astStack.push(designator);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.eclipse.cdt.core.dom.lrparser.action.gcc;
|
||||
package org.eclipse.cdt.core.dom.lrparser.action.gnu;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -14,13 +14,13 @@ import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
|
|||
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
|
||||
import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym;
|
||||
|
||||
public class GCCBuildASTParserAction extends AbstractParserAction {
|
||||
public class GNUBuildASTParserAction extends AbstractParserAction {
|
||||
|
||||
private final INodeFactory nodeFactory;
|
||||
|
||||
private final TokenMap tokenMap;
|
||||
|
||||
public GCCBuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
|
||||
public GNUBuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
|
||||
super(parser, tu, astStack);
|
||||
|
||||
this.nodeFactory = nodeFactory;
|
|
@ -8,7 +8,7 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.dom.lrparser.gcc;
|
||||
package org.eclipse.cdt.core.dom.lrparser.gnu;
|
||||
|
||||
import static org.eclipse.cdt.core.parser.IToken.*;
|
||||
import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.*;
|
|
@ -8,7 +8,7 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.dom.lrparser.gpp;
|
||||
package org.eclipse.cdt.core.dom.lrparser.gnu;
|
||||
|
||||
import static org.eclipse.cdt.core.parser.IToken.*;
|
||||
import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.*;
|
|
@ -8,7 +8,7 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.dom.lrparser.gcc;
|
||||
package org.eclipse.cdt.core.dom.lrparser.gnu;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
|
@ -8,7 +8,7 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.dom.lrparser.gpp;
|
||||
package org.eclipse.cdt.core.dom.lrparser.gnu;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
|
@ -28,7 +28,7 @@ import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
|
|||
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
|
||||
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gcc.GCCBuildASTParserAction;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
|
||||
|
||||
public class GCCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
|
||||
{
|
||||
|
@ -179,8 +179,8 @@ private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
|
|||
|
||||
|
||||
|
||||
gccAction = new GCCBuildASTParserAction( CNodeFactory.getDefault() , this, tu, astStack);
|
||||
gccAction.setParserOptions(options);
|
||||
gnuAction = new GCCBuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
|
||||
gnuAction.setParserOptions(options);
|
||||
|
||||
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ public GCCParser(String[] mapFrom) { // constructor
|
|||
|
||||
|
||||
|
||||
private GCCBuildASTParserAction gccAction;
|
||||
private GCCBuildASTParserAction gnuAction;
|
||||
|
||||
public void ruleAction(int ruleNumber)
|
||||
{
|
||||
|
@ -1277,7 +1277,19 @@ private GCCBuildASTParserAction gccAction;
|
|||
//
|
||||
// Rule 341: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
|
||||
//
|
||||
case 341: { gccAction.consumeDeclarationASM(); break;
|
||||
case 341: { gnuAction.consumeDeclarationASM(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 365: designator_base ::= identifier_token :
|
||||
//
|
||||
case 365: { gnuAction.consumeDesignatorField(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 366: designator_base ::= [ constant_expression ... constant_expression ]
|
||||
//
|
||||
case 366: { gnuAction.consumeDesignatorArray(); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,95 +16,95 @@ package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
|
|||
public interface GCCParsersym {
|
||||
public final static int
|
||||
TK_auto = 27,
|
||||
TK_break = 35,
|
||||
TK_case = 36,
|
||||
TK_char = 46,
|
||||
TK_break = 37,
|
||||
TK_case = 38,
|
||||
TK_char = 47,
|
||||
TK_const = 22,
|
||||
TK_continue = 37,
|
||||
TK_default = 38,
|
||||
TK_do = 39,
|
||||
TK_double = 47,
|
||||
TK_else = 82,
|
||||
TK_continue = 39,
|
||||
TK_default = 40,
|
||||
TK_do = 41,
|
||||
TK_double = 48,
|
||||
TK_else = 95,
|
||||
TK_enum = 59,
|
||||
TK_extern = 28,
|
||||
TK_float = 48,
|
||||
TK_for = 40,
|
||||
TK_goto = 41,
|
||||
TK_if = 42,
|
||||
TK_float = 49,
|
||||
TK_for = 42,
|
||||
TK_goto = 43,
|
||||
TK_if = 44,
|
||||
TK_inline = 29,
|
||||
TK_int = 49,
|
||||
TK_long = 50,
|
||||
TK_int = 50,
|
||||
TK_long = 51,
|
||||
TK_register = 30,
|
||||
TK_restrict = 25,
|
||||
TK_return = 43,
|
||||
TK_short = 51,
|
||||
TK_signed = 52,
|
||||
TK_return = 45,
|
||||
TK_short = 52,
|
||||
TK_signed = 53,
|
||||
TK_sizeof = 16,
|
||||
TK_static = 26,
|
||||
TK_struct = 60,
|
||||
TK_switch = 44,
|
||||
TK_switch = 46,
|
||||
TK_typedef = 31,
|
||||
TK_union = 61,
|
||||
TK_unsigned = 53,
|
||||
TK_void = 54,
|
||||
TK_unsigned = 54,
|
||||
TK_void = 55,
|
||||
TK_volatile = 23,
|
||||
TK_while = 34,
|
||||
TK__Bool = 55,
|
||||
TK__Complex = 56,
|
||||
TK__Imaginary = 57,
|
||||
TK_while = 35,
|
||||
TK__Bool = 56,
|
||||
TK__Complex = 57,
|
||||
TK__Imaginary = 58,
|
||||
TK_integer = 17,
|
||||
TK_floating = 18,
|
||||
TK_charconst = 19,
|
||||
TK_stringlit = 10,
|
||||
TK_identifier = 1,
|
||||
TK_stringlit = 13,
|
||||
TK_identifier = 2,
|
||||
TK_Completion = 7,
|
||||
TK_EndOfCompletion = 3,
|
||||
TK_Invalid = 96,
|
||||
TK_LeftBracket = 45,
|
||||
TK_LeftParen = 2,
|
||||
TK_LeftBrace = 9,
|
||||
TK_Dot = 69,
|
||||
TK_Arrow = 83,
|
||||
TK_LeftBracket = 33,
|
||||
TK_LeftParen = 1,
|
||||
TK_LeftBrace = 11,
|
||||
TK_Dot = 68,
|
||||
TK_Arrow = 81,
|
||||
TK_PlusPlus = 14,
|
||||
TK_MinusMinus = 15,
|
||||
TK_And = 13,
|
||||
TK_And = 12,
|
||||
TK_Star = 8,
|
||||
TK_Plus = 11,
|
||||
TK_Minus = 12,
|
||||
TK_Plus = 9,
|
||||
TK_Minus = 10,
|
||||
TK_Tilde = 20,
|
||||
TK_Bang = 21,
|
||||
TK_Slash = 70,
|
||||
TK_Percent = 71,
|
||||
TK_Slash = 69,
|
||||
TK_Percent = 70,
|
||||
TK_RightShift = 65,
|
||||
TK_LeftShift = 66,
|
||||
TK_LT = 72,
|
||||
TK_GT = 73,
|
||||
TK_LE = 74,
|
||||
TK_GE = 75,
|
||||
TK_EQ = 77,
|
||||
TK_NE = 78,
|
||||
TK_Caret = 79,
|
||||
TK_Or = 80,
|
||||
TK_AndAnd = 81,
|
||||
TK_OrOr = 84,
|
||||
TK_Question = 85,
|
||||
TK_Colon = 62,
|
||||
TK_LT = 71,
|
||||
TK_GT = 72,
|
||||
TK_LE = 73,
|
||||
TK_GE = 74,
|
||||
TK_EQ = 76,
|
||||
TK_NE = 77,
|
||||
TK_Caret = 78,
|
||||
TK_Or = 79,
|
||||
TK_AndAnd = 80,
|
||||
TK_OrOr = 82,
|
||||
TK_Question = 83,
|
||||
TK_Colon = 63,
|
||||
TK_DotDotDot = 67,
|
||||
TK_Assign = 64,
|
||||
TK_StarAssign = 86,
|
||||
TK_SlashAssign = 87,
|
||||
TK_PercentAssign = 88,
|
||||
TK_PlusAssign = 89,
|
||||
TK_MinusAssign = 90,
|
||||
TK_RightShiftAssign = 91,
|
||||
TK_LeftShiftAssign = 92,
|
||||
TK_AndAssign = 93,
|
||||
TK_CaretAssign = 94,
|
||||
TK_OrAssign = 95,
|
||||
TK_Comma = 58,
|
||||
TK_RightBracket = 68,
|
||||
TK_RightParen = 33,
|
||||
TK_RightBrace = 63,
|
||||
TK_StarAssign = 84,
|
||||
TK_SlashAssign = 85,
|
||||
TK_PercentAssign = 86,
|
||||
TK_PlusAssign = 87,
|
||||
TK_MinusAssign = 88,
|
||||
TK_RightShiftAssign = 89,
|
||||
TK_LeftShiftAssign = 90,
|
||||
TK_AndAssign = 91,
|
||||
TK_CaretAssign = 92,
|
||||
TK_OrAssign = 93,
|
||||
TK_Comma = 36,
|
||||
TK_RightBracket = 75,
|
||||
TK_RightParen = 34,
|
||||
TK_RightBrace = 62,
|
||||
TK_SemiColon = 24,
|
||||
TK_typeof = 97,
|
||||
TK___alignof__ = 98,
|
||||
|
@ -114,23 +114,23 @@ public interface GCCParsersym {
|
|||
TK___declspec = 6,
|
||||
TK_asm = 4,
|
||||
TK_ERROR_TOKEN = 32,
|
||||
TK_EOF_TOKEN = 76;
|
||||
TK_EOF_TOKEN = 94;
|
||||
|
||||
public final static String orderedTerminalSymbols[] = {
|
||||
"",
|
||||
"identifier",
|
||||
"LeftParen",
|
||||
"identifier",
|
||||
"EndOfCompletion",
|
||||
"asm",
|
||||
"__attribute__",
|
||||
"__declspec",
|
||||
"Completion",
|
||||
"Star",
|
||||
"LeftBrace",
|
||||
"stringlit",
|
||||
"Plus",
|
||||
"Minus",
|
||||
"LeftBrace",
|
||||
"And",
|
||||
"stringlit",
|
||||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"sizeof",
|
||||
|
@ -150,8 +150,10 @@ public interface GCCParsersym {
|
|||
"register",
|
||||
"typedef",
|
||||
"ERROR_TOKEN",
|
||||
"LeftBracket",
|
||||
"RightParen",
|
||||
"while",
|
||||
"Comma",
|
||||
"break",
|
||||
"case",
|
||||
"continue",
|
||||
|
@ -162,7 +164,6 @@ public interface GCCParsersym {
|
|||
"if",
|
||||
"return",
|
||||
"switch",
|
||||
"LeftBracket",
|
||||
"char",
|
||||
"double",
|
||||
"float",
|
||||
|
@ -175,17 +176,15 @@ public interface GCCParsersym {
|
|||
"_Bool",
|
||||
"_Complex",
|
||||
"_Imaginary",
|
||||
"Comma",
|
||||
"enum",
|
||||
"struct",
|
||||
"union",
|
||||
"Colon",
|
||||
"RightBrace",
|
||||
"Colon",
|
||||
"Assign",
|
||||
"RightShift",
|
||||
"LeftShift",
|
||||
"DotDotDot",
|
||||
"RightBracket",
|
||||
"Dot",
|
||||
"Slash",
|
||||
"Percent",
|
||||
|
@ -193,13 +192,12 @@ public interface GCCParsersym {
|
|||
"GT",
|
||||
"LE",
|
||||
"GE",
|
||||
"EOF_TOKEN",
|
||||
"RightBracket",
|
||||
"EQ",
|
||||
"NE",
|
||||
"Caret",
|
||||
"Or",
|
||||
"AndAnd",
|
||||
"else",
|
||||
"Arrow",
|
||||
"OrOr",
|
||||
"Question",
|
||||
|
@ -213,6 +211,8 @@ public interface GCCParsersym {
|
|||
"AndAssign",
|
||||
"CaretAssign",
|
||||
"OrAssign",
|
||||
"EOF_TOKEN",
|
||||
"else",
|
||||
"Invalid",
|
||||
"typeof",
|
||||
"__alignof__",
|
||||
|
|
|
@ -29,7 +29,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.*;
|
|||
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
|
||||
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gcc.GCCBuildASTParserAction;
|
||||
import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
|
||||
|
||||
public class GPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
|
||||
{
|
||||
|
@ -180,8 +180,8 @@ private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
|
|||
|
||||
|
||||
|
||||
gccAction = new GCCBuildASTParserAction( CPPNodeFactory.getDefault() , this, tu, astStack);
|
||||
gccAction.setParserOptions(options);
|
||||
gnuAction = new GNUBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
|
||||
gnuAction.setParserOptions(options);
|
||||
|
||||
|
||||
}
|
||||
|
@ -248,7 +248,7 @@ public GPPParser(String[] mapFrom) { // constructor
|
|||
|
||||
|
||||
|
||||
private GCCBuildASTParserAction gccAction;
|
||||
private GNUBuildASTParserAction gnuAction;
|
||||
|
||||
public void ruleAction(int ruleNumber)
|
||||
{
|
||||
|
@ -1986,7 +1986,13 @@ private GCCBuildASTParserAction gccAction;
|
|||
//
|
||||
// Rule 561: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
|
||||
//
|
||||
case 561: { gccAction.consumeDeclarationASM(); break;
|
||||
case 561: { gnuAction.consumeDeclarationASM(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 584: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
|
||||
//
|
||||
case 584: { action. consumeDeclaratorWithPointer(true); break;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -48,7 +48,7 @@ public interface GPPParsersym {
|
|||
TK_mutable = 34,
|
||||
TK_namespace = 63,
|
||||
TK_new = 71,
|
||||
TK_operator = 10,
|
||||
TK_operator = 9,
|
||||
TK_private = 105,
|
||||
TK_protected = 106,
|
||||
TK_public = 107,
|
||||
|
@ -84,7 +84,7 @@ public interface GPPParsersym {
|
|||
TK_stringlit = 40,
|
||||
TK_identifier = 1,
|
||||
TK_Completion = 2,
|
||||
TK_EndOfCompletion = 9,
|
||||
TK_EndOfCompletion = 10,
|
||||
TK_Invalid = 125,
|
||||
TK_LeftBracket = 67,
|
||||
TK_LeftParen = 3,
|
||||
|
@ -155,8 +155,8 @@ public interface GPPParsersym {
|
|||
"__attribute__",
|
||||
"__declspec",
|
||||
"Tilde",
|
||||
"EndOfCompletion",
|
||||
"operator",
|
||||
"EndOfCompletion",
|
||||
"Star",
|
||||
"And",
|
||||
"typename",
|
||||
|
|
Loading…
Add table
Reference in a new issue