diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AbstractAntlrGeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AbstractAntlrGeneratorFragment2.xtend index dc218efb1..5899ccfcf 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AbstractAntlrGeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AbstractAntlrGeneratorFragment2.xtend @@ -90,6 +90,7 @@ abstract class AbstractAntlrGeneratorFragment2 extends AbstractXtextGeneratorFra def protected void splitLexerClassFile(IXtextGeneratorFileSystemAccess fsa, TypeReference lexer) { val content = fsa.readTextFile(lexer.javaPath).toString var AntlrLexerSplitter splitter = new AntlrLexerSplitter(content) + splitter.setCasesPerSpecialStateSwitch(options.getCasesPerSpecialStateSwitch()); fsa.generateFile(lexer.javaPath, splitter.transform) } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrOptions.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrOptions.xtend index 67cf0cd38..0f07c3f48 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrOptions.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrOptions.xtend @@ -20,7 +20,6 @@ class AntlrOptions { int k = -1 boolean ignoreCase = false boolean classSplitting = false - boolean specialStateSwitchSplitting = false @Accessors(PUBLIC_GETTER) int fieldsPerClass = AntlrParserSplitter.FIELDS_PER_CLASS @Accessors(PUBLIC_GETTER) @@ -44,7 +43,7 @@ class AntlrOptions { def void setCasesPerSpecialStateSwitch(String casesPerSpecialStateSwitch) { this.casesPerSpecialStateSwitch = Integer.parseInt(casesPerSpecialStateSwitch) } - + def void setKAsString(String k) { this.k = Integer.parseInt(k) } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrToolFacade.java b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrToolFacade.java index 874c2b27f..81d65bb4d 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrToolFacade.java +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/AntlrToolFacade.java @@ -32,7 +32,7 @@ public class AntlrToolFacade { } private String downloadURL = "http://download.itemis.com/antlr-generator-3.2.0-patch.jar"; - private boolean askBeforeDownload = true; + private boolean askBeforeDownload = false; public void setAskBeforeDownload(boolean shouldAsk) { this.askBeforeDownload = shouldAsk; diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/AntlrLexerSplitter.java b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/AntlrLexerSplitter.java index bedc39174..e710b4503 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/AntlrLexerSplitter.java +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/AntlrLexerSplitter.java @@ -45,7 +45,6 @@ public class AntlrLexerSplitter { private final Scanner scanner; private boolean allowDFAStaticClasses = true; - private boolean specialStateSwitchSplitting = false; private int casesPerSpecialStateSwitch = LexerSpecialStateTransitionSplitter.CASES_PER_SPECIAL_STATE_SWITCH; @@ -78,7 +77,6 @@ public class AntlrLexerSplitter { LexerSpecialStateTransitionSplitter lexerSplitter; lexerSplitter = new LexerSpecialStateTransitionSplitter(false); lexerSplitter.setAllowDFAStaticClasses(allowDFAStaticClasses); - lexerSplitter.setSpecialStateSwitchSplitting(specialStateSwitchSplitting); lexerSplitter.setCasesPerSpecialStateSwitch(casesPerSpecialStateSwitch); result = lexerSplitter.transform(result); return result; @@ -238,20 +236,6 @@ public class AntlrLexerSplitter { this.allowDFAStaticClasses = value; } - /** - * @since 2.9 - */ - public boolean isSpecialStateSwitchSplitting() { - return specialStateSwitchSplitting; - } - - /** - * @since 2.9 - */ - public void setSpecialStateSwitchSplitting(boolean value) { - this.specialStateSwitchSplitting = value; - } - /** * @since 2.9 */ diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/internal/LexerSpecialStateTransitionSplitter.java b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/internal/LexerSpecialStateTransitionSplitter.java index d18d42f84..bef71c8b5 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/internal/LexerSpecialStateTransitionSplitter.java +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/parser/antlr/splitting/internal/LexerSpecialStateTransitionSplitter.java @@ -17,7 +17,7 @@ import java.util.regex.Pattern; */ public class LexerSpecialStateTransitionSplitter { - public static final int CASES_PER_SPECIAL_STATE_SWITCH = 1000; + public static final int CASES_PER_SPECIAL_STATE_SWITCH = -1; public static final Pattern DFA_PATTERN = Pattern.compile( "(class DFA\\d+ extends DFA \\{.*" + @@ -69,8 +69,6 @@ public class LexerSpecialStateTransitionSplitter { private boolean allowDFAStaticClasses = true; - private boolean specialStateSwitchSplitting = false; - private int casesPerSpecialStateSwitch = CASES_PER_SPECIAL_STATE_SWITCH; public LexerSpecialStateTransitionSplitter(boolean ignoreCaseCountGuard) { @@ -87,10 +85,10 @@ public class LexerSpecialStateTransitionSplitter { staticOrNot = "static $1"; String tmpSpecialStateTransition = extractSpecialStateMethods(specialStateTransition); String transformedDfa; - if(specialStateSwitchSplitting){ - transformedDfa = staticOrNot + splitSpecialStateSwitch(tmpSpecialStateTransition) + "$3"; - }else{ + if (casesPerSpecialStateSwitch == -1) { transformedDfa = staticOrNot + tmpSpecialStateTransition + "$3"; + } else { + transformedDfa = staticOrNot + splitSpecialStateSwitch(tmpSpecialStateTransition) + "$3"; } dfaMatcher.appendReplacement(result, transformedDfa); } @@ -221,20 +219,6 @@ public class LexerSpecialStateTransitionSplitter { this.allowDFAStaticClasses = value; } - /** - * @since 2.9 - */ - public boolean isSpecialStateSwitchSplitting() { - return specialStateSwitchSplitting; - } - - /** - * @since 2.9 - */ - public void setSpecialStateSwitchSplitting(boolean value) { - this.specialStateSwitchSplitting = value; - } - /** * @since 2.9 */ diff --git a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/parser/splitting/LexerSpecialStateTransitionSplitterTest.java b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/parser/splitting/LexerSpecialStateTransitionSplitterTest.java index ad049c192..871315184 100644 --- a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/parser/splitting/LexerSpecialStateTransitionSplitterTest.java +++ b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/parser/splitting/LexerSpecialStateTransitionSplitterTest.java @@ -329,7 +329,6 @@ public class LexerSpecialStateTransitionSplitterTest extends Assert { @Test public void testSpecialStateSwitchTransformation(){ int tmpCasesLimit = testMe.getCasesPerSpecialStateSwitch(); - testMe.setSpecialStateSwitchSplitting(true); testMe.setCasesPerSpecialStateSwitch(3); String actualSpecialStateSwitchSplit = testMe.transform(original); assertEquals(transformedSpecialStateSplit,actualSpecialStateSwitchSplit);