1
0
Fork 0
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:
Mike Kucera 2009-01-15 22:04:14 +00:00
parent 56c5c65d37
commit e314072063
42 changed files with 3376 additions and 3216 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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,

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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);
}
}

View file

@ -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;

View file

@ -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.*;

View file

@ -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.*;

View file

@ -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;

View file

@ -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;

View file

@ -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;
}

View file

@ -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__",

View file

@ -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;
}

View file

@ -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",