Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2009-01-02 14:58:24 +0000
committerMike Kucera2009-01-02 14:58:24 +0000
commitcfa1a4f42e74dc726e6e91d6cc448804e9a59fa3 (patch)
tree780ed0cc4fc26831b221f79647dfc01548c641da /lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core
parent60d92373d09eba3d2b19baf4fa52d8a60fc8ab4d (diff)
downloadorg.eclipse.cdt-cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3.tar.gz
org.eclipse.cdt-cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3.tar.xz
org.eclipse.cdt-cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3.zip
Added ability to pass ILanguage options to LR parser, refactored ParseHelper, partial fix for bug 253690
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java9
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java10
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java17
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java3
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java3
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java3
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java5
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java3
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java9
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java14
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java13
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java14
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java98
19 files changed, 170 insertions, 77 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java
index 2ca06bdf816..c869f5e4b5b 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java
@@ -41,13 +41,18 @@ public class LRCPPSpecFailingTest extends AST2CPPSpecFailingTest {
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
- return ParseHelper.parse(code, language, true, checkBindings, expectedProblemBindings );
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckBindings(checkBindings);
+ options.setExpectedProblemBindings(expectedProblemBindings);
+ return ParseHelper.parse(code, language, options);
}
@Override
protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
- return ParseHelper.parse(code, language, problems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setProblems(problems);
+ return ParseHelper.parse(code, language, options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java
index bc2477fecd8..2e36c90f831 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java
@@ -38,16 +38,22 @@ public class LRCPPSpecTest extends AST2CPPSpecTest {
parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings);
}
+
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
- return ParseHelper.parse(code, language, true, checkBindings, expectedProblemBindings );
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckBindings(checkBindings);
+ options.setExpectedProblemBindings(expectedProblemBindings);
+ return ParseHelper.parse(code, language, options);
}
@Override
protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
- return ParseHelper.parse(code, language, problems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setProblems(problems);
+ return ParseHelper.parse(code, language, options);
}
protected BaseExtensibleLanguage getCLanguage() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java
index ed439fbd562..bdf4affdb25 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java
@@ -39,9 +39,13 @@ public class LRCPPTests extends AST2CPPTests {
@Override
- protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException {
+ protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java
index 6c3833ff6f5..c5910b620a0 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java
@@ -37,17 +37,26 @@ public class LRCSpecTests extends AST2CSpecTest {
parse(code, ParserLanguage.C, checkBindings, expectedProblemBindings);
parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings);
}
-
+
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
- return ParseHelper.parse(code, language, true, checkBindings, expectedProblemBindings );
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(true);
+ options.setCheckPreprocessorProblems(true);
+ options.setCheckBindings(checkBindings);
+ options.setExpectedProblemBindings(expectedProblemBindings);
+ return ParseHelper.parse(code, language, options);
}
-
+
@Override
protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
- return ParseHelper.parse(code, language, problems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setProblems(problems);
+ options.setCheckSyntaxProblems(true);
+ options.setCheckPreprocessorProblems(true);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getCLanguage() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java
index 087c2a91961..305d702508e 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java
@@ -42,9 +42,13 @@ public class LRCommentTests extends CommentTests {
@SuppressWarnings("unused")
protected IASTTranslationUnit parse(String code, ParserLanguage lang,
boolean useGNUExtensions, boolean expectNoProblems,
- boolean parseComments) throws ParserException {
+ boolean skipTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
return ParseHelper.commentParse(code, language);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java
index 8fcc5d505f9..e498795b2e4 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java
@@ -35,7 +35,8 @@ public class LRDOMLocationMacroTests extends DOMLocationMacroTests {
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems);
+ return ParseHelper.parse(code, language, options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java
index 11af2e14cef..c4ae424ad8d 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java
@@ -35,7 +35,8 @@ public class LRDOMLocationTests extends DOMLocationTests {
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java
index b6b7cce7716..1d8a151a114 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java
@@ -31,7 +31,8 @@ public class LRDOMPreprocessorInformationTest extends DOMPreprocessorInformation
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems);
+ return ParseHelper.parse(code, language, options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java
index fafc19cd4d7..4bfb085b178 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java
@@ -52,7 +52,10 @@ public class LRDigraphTrigraphTests extends TestCase {
protected IASTTranslationUnit parse(String code) {
- return ParseHelper.parse(code, getCLanguage(), true);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(true);
+ options.setCheckPreprocessorProblems(true);
+ return ParseHelper.parse(code, getCLanguage(), options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java
index 0b6603470de..bad5ea5b4dc 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java
@@ -35,7 +35,8 @@ public class LRGCCTests extends GCCTests {
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems);
+ return ParseHelper.parse(code, language, options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java
index 2bca1e7c61a..73966c7e981 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java
@@ -32,9 +32,13 @@ public class LRImageLocationTests extends ImageLocationTests {
@Override
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions,
- boolean expectNoProblems, boolean parseComments) throws ParserException {
+ boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java
index 9e47a0dc9f7..790a53a5d5f 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java
@@ -34,9 +34,13 @@ public class LRNodeSelectorTest extends ASTNodeSelectorTest {
@Override
- protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException {
+ protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializer) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializer);
+ return ParseHelper.parse(code, language, options);
}
@Override
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java
index 7ddb87c712f..7dff08ca8bf 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java
@@ -13,11 +13,8 @@ import junit.framework.AssertionFailedError;
import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
import org.eclipse.cdt.core.dom.lrparser.cpp.ISOCPPLanguage;
import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.ScannerInfo;
import org.eclipse.cdt.core.parser.tests.ast2.QuickParser2Tests;
-import org.eclipse.cdt.core.parser.tests.scanner.FileCodeReaderFactory;
public class LRQuickParser2Tests extends QuickParser2Tests {
@@ -29,9 +26,11 @@ public class LRQuickParser2Tests extends QuickParser2Tests {
protected void parse(String code, boolean expectedToPass,
ParserLanguage lang, @SuppressWarnings("unused") boolean gcc) throws Exception {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- CodeReader reader = new CodeReader(code.toCharArray());
// don't check preprocessor problems for this test suite (causes tons of failures)
- ParseHelper.parse(reader, language, new ScannerInfo(), FileCodeReaderFactory.getInstance(), expectedToPass, false, 0, null, false);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectedToPass);
+ options.setCheckPreprocessorProblems(false);
+ ParseHelper.parse(code, language, options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java
index 40dc773e455..c7839c8144c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java
@@ -56,8 +56,10 @@ public class LRSelectionParseTest extends AST2SelectionParseTest {
@Override
protected IASTNode parse(String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, int offset, int length) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
-
- IASTTranslationUnit tu = ParseHelper.parse(code, language, useGNUExtensions, expectNoProblems, 0);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setCheckSyntaxProblems(expectNoProblems);
+ IASTTranslationUnit tu = ParseHelper.parse(code, language, options);
return tu.selectNodeForLocation(tu.getFilePath(), offset, length);
}
@@ -68,7 +70,13 @@ public class LRSelectionParseTest extends AST2SelectionParseTest {
String fileName = file.getLocation().toOSString();
ICodeReaderFactory fileCreator = SavedCodeReaderFactory.getInstance();
CodeReader reader = fileCreator.createCodeReaderForTranslationUnit(fileName);
- return ParseHelper.parse(reader, language, scanInfo, fileCreator, expectNoProblems, true, 0, null, true);
+
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckBindings(true);
+
+ return ParseHelper.parse(reader, language, scanInfo, fileCreator, options);
}
@Override
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java
index c5ffa32c1cd..0064cb64247 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java
@@ -32,9 +32,13 @@ public class LRSemanticsTests extends SemanticsTests {
@SuppressWarnings("unused")
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions,
- boolean expectNoProblems, boolean parseComments) throws ParserException {
+ boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java
index 1882fc7a1ed..2340cd3cddd 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java
@@ -30,14 +30,17 @@ public class LRTaskParserTest extends TaskParserTest {
@Override
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
- ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
-
- return ParseHelper.parse(code, language, expectNoProblems);
+ return parse(code, lang, useGNUExtensions, expectNoProblems, false);
}
@Override
- protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException {
- return parse(code,lang, useGNUExtensions, expectNoProblems );
+ protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
+ ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java
index 4ccf6596ea0..03d977111fe 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java
@@ -31,9 +31,13 @@ public class LRTemplateTests extends AST2TemplateTests {
@Override
@SuppressWarnings("unused")
- protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean parseComments) throws ParserException {
+ protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java
index 85609357d57..de0fe373b1d 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java
@@ -42,14 +42,18 @@ public class LRTests extends AST2Tests {
@Override
- protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
- ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
- return ParseHelper.parse(code, language, expectNoProblems);
+ protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
+ return parse(code, lang, useGNUExtensions, expectNoProblems, false);
}
@Override
- protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException {
- return parse(code,lang, useGNUExtensions, expectNoProblems );
+ protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
+ ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language();
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(expectNoProblems);
+ options.setCheckPreprocessorProblems(expectNoProblems);
+ options.setSkipTrivialInitializers(skipTrivialInitializers);
+ return ParseHelper.parse(code, language, options);
}
protected ILanguage getC99Language() {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java
index 8ce2fbcad4c..66b022a7f7c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java
@@ -75,56 +75,84 @@ public class ParseHelper {
}
-
- public static IASTTranslationUnit parse(char[] code, ILanguage lang, boolean expectNoProblems, boolean checkBindings, int expectedProblemBindings) {
- CodeReader codeReader = new CodeReader(code);
- return parse(codeReader, lang, new ScannerInfo(), null, expectNoProblems, checkBindings, expectedProblemBindings, null, expectNoProblems);
- }
- public static IASTTranslationUnit parse(String code, ILanguage lang, boolean expectNoProblems, boolean checkBindings, int expectedProblemBindings) {
- return parse(code.toCharArray(), lang, expectNoProblems, checkBindings, expectedProblemBindings);
+ public static class Options {
+
+ boolean checkSyntaxProblems = true;
+ boolean checkPreprocessorProblems = true;
+ boolean checkBindings = false;
+
+ int expectedProblemBindings;
+ String[] problems;
+ boolean skipTrivialInitializers;
+
+ public Options setCheckSyntaxProblems(boolean checkSyntaxProblems) {
+ this.checkSyntaxProblems = checkSyntaxProblems;
+ return this;
+ }
+ public Options setCheckBindings(boolean checkBindings) {
+ this.checkBindings = checkBindings;
+ return this;
+ }
+ public Options setCheckPreprocessorProblems(boolean checkPreprocessorProblems) {
+ this.checkPreprocessorProblems = checkPreprocessorProblems;
+ return this;
+ }
+ public Options setExpectedProblemBindings(int expectedProblemBindings) {
+ this.expectedProblemBindings = expectedProblemBindings;
+ return this;
+ }
+ public Options setProblems(String[] problems) {
+ this.problems = problems;
+ setExpectedProblemBindings(problems.length);
+ setCheckBindings(true);
+ return this;
+ }
+ public Options setSkipTrivialInitializers(boolean skipTrivialInitializers) {
+ this.skipTrivialInitializers = skipTrivialInitializers;
+ return this;
+ }
+
}
+
public static IASTTranslationUnit parse(String code, ILanguage lang, boolean expectNoProblems) {
- return parse(code, lang, expectNoProblems, false, 0);
+ Options options = new Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems);
+ return parse(code.toCharArray(), lang, options);
}
- public static IASTTranslationUnit parse(String code, ILanguage lang, String[] problems) {
- CodeReader codeReader = new CodeReader(code.toCharArray());
- return parse(codeReader, lang, new ScannerInfo(), null, true, true, problems.length, problems, true);
+ public static IASTTranslationUnit parse(String code, ILanguage lang, Options options) {
+ return parse(code.toCharArray(), lang, options);
}
-
+
+ public static IASTTranslationUnit parse(char[] code, ILanguage lang, Options options) {
+ CodeReader codeReader = new CodeReader(code);
+ return parse(codeReader, lang, new ScannerInfo(), null, options);
+ }
+
+
/**
* TODO thats WAY too many parameters, need to use a parameter object, need to refactor the
* DOM parser test suite so that its a lot cleaner.
- *
- * @param codeReader
- * @param language
- * @param scanInfo
- * @param fileCreator
- * @param checkSyntaxProblems
- * @param checkBindings
- * @param expectedProblemBindings
- * @param problems
- * @param checkPreprocessorProblems
- * @return
*/
public static IASTTranslationUnit parse(CodeReader codeReader, ILanguage language, IScannerInfo scanInfo,
- ICodeReaderFactory fileCreator, boolean checkSyntaxProblems,
- boolean checkBindings, int expectedProblemBindings, String[] problems,
- boolean checkPreprocessorProblems) {
+ ICodeReaderFactory fileCreator, Options options) {
testsRun++;
IASTTranslationUnit tu;
try {
- tu = language.getASTTranslationUnit(codeReader, scanInfo, fileCreator, null, ParserUtil.getParserLogService());
+ int languageOptions = 0;
+ if(options.skipTrivialInitializers)
+ languageOptions |= ILanguage.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS;
+
+ tu = language.getASTTranslationUnit(codeReader, scanInfo, fileCreator, null, languageOptions, ParserUtil.getParserLogService());
} catch (CoreException e) {
throw new AssertionFailedError(e.toString());
}
// should parse correctly first before we look at the bindings
- if(checkSyntaxProblems) {
+ if(options.checkSyntaxProblems) {
// this should work for C++ also, CVisitor.getProblems() and CPPVisitor.getProblems() are exactly the same code!
if (CVisitor.getProblems(tu).length != 0) {
@@ -132,22 +160,22 @@ public class ParseHelper {
}
}
- if(checkPreprocessorProblems) {
+ if(options.checkPreprocessorProblems) {
if (tu.getPreprocessorProblems().length != 0) {
throw new AssertionFailedError(language.getName() + " TranslationUnit has Preprocessor Problems " );
}
}
// resolve all bindings
- if (checkBindings) {
+ if (options.checkBindings) {
NameResolver res = new NameResolver();
tu.accept( res );
- if(res.problemBindings.size() != expectedProblemBindings)
- throw new AssertionFailedError("Expected " + expectedProblemBindings + " problem(s), encountered " + res.problemBindings.size());
+ if(res.problemBindings.size() != options.expectedProblemBindings)
+ throw new AssertionFailedError("Expected " + options.expectedProblemBindings + " problem(s), encountered " + res.problemBindings.size());
- if(problems != null) {
- for(int i = 0; i < problems.length; i++) {
- String expected = problems[i];
+ if(options.problems != null) {
+ for(int i = 0; i < options.problems.length; i++) {
+ String expected = options.problems[i];
String actual = res.problemBindings.get(i);
if(!expected.equals(actual))
throw new AssertionFailedError(String.format("Problem binding not equal, expected: %s, got: %s", expected, actual));

Back to the top