Skip to content

Commit e86b623

Browse files
committed
Merge pull request #7 from parrt/factor-target
factor common char encoding into main Target; version set to 4.4
2 parents 6339ee6 + 04535fc commit e86b623

File tree

3 files changed

+48
-199
lines changed

3 files changed

+48
-199
lines changed

src/antlr4/Recognizer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def __init__(self):
4343
self._stateNumber = -1
4444

4545
def checkVersion(self, toolVersion):
46-
runtimeVersion = "4.4.0"
46+
runtimeVersion = "4.4"
4747
rv=runtimeVersion[0:max(runtimeVersion.rfind("."),runtimeVersion.rfind("-"))]
4848
tv=toolVersion[0:max(toolVersion.rfind("."),toolVersion.rfind("-"))]
4949
if not rv==tv:

tool/src/org/antlr/v4/codegen/AbstractPythonTarget.java

-193
This file was deleted.

tool/src/org/antlr/v4/codegen/Python2Target.java

+47-5
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,20 @@
3030

3131
package org.antlr.v4.codegen;
3232

33+
import org.antlr.v4.tool.ast.GrammarAST;
34+
import org.stringtemplate.v4.STGroup;
35+
import org.stringtemplate.v4.StringRenderer;
36+
3337
import java.util.Arrays;
3438
import java.util.HashSet;
39+
import java.util.Locale;
3540
import java.util.Set;
3641

3742
/**
3843
*
3944
* @author Eric Vergnaud
4045
*/
41-
public class Python2Target extends AbstractPythonTarget {
42-
46+
public class Python2Target extends Target {
4347
protected static final String[] python2Keywords = {
4448
"abs", "all", "any", "apply", "as",
4549
"bin", "bool", "buffer", "bytearray",
@@ -74,10 +78,50 @@ public Python2Target(CodeGenerator gen) {
7478
super(gen, "Python2");
7579
}
7680

81+
@Override
82+
public int getSerializedATNSegmentLimit() {
83+
// set to something stupid to avoid segmentation
84+
return 2 ^ 31;
85+
}
86+
87+
@Override
88+
protected boolean visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode) {
89+
return getBadWords().contains(idNode.getText());
90+
}
91+
92+
@Override
93+
protected STGroup loadTemplates() {
94+
STGroup result = super.loadTemplates();
95+
result.registerRenderer(String.class, new PythonStringRenderer(), true);
96+
return result;
97+
}
98+
99+
protected static class PythonStringRenderer extends StringRenderer {
100+
101+
@Override
102+
public String toString(Object o, String formatString, Locale locale) {
103+
return super.toString(o, formatString, locale);
104+
}
105+
}
106+
107+
@Override
108+
public boolean wantsBaseListener() {
109+
return false;
110+
}
111+
112+
@Override
113+
public boolean wantsBaseVisitor() {
114+
return false;
115+
}
116+
117+
@Override
118+
public boolean supportsOverloadedMethods() {
119+
return false;
120+
}
77121

78122
@Override
79123
public String getVersion() {
80-
return "4.4.0";
124+
return "4.4";
81125
}
82126

83127
public Set<String> getBadWords() {
@@ -93,6 +137,4 @@ protected void addBadWords() {
93137
badWords.add("rule");
94138
badWords.add("parserRule");
95139
}
96-
97-
98140
}

0 commit comments

Comments
 (0)