30
30
31
31
package org .antlr .v4 .codegen ;
32
32
33
+ import org .antlr .v4 .tool .ast .GrammarAST ;
34
+ import org .stringtemplate .v4 .STGroup ;
35
+ import org .stringtemplate .v4 .StringRenderer ;
36
+
33
37
import java .util .Arrays ;
34
38
import java .util .HashSet ;
39
+ import java .util .Locale ;
35
40
import java .util .Set ;
36
41
37
42
/**
38
43
*
39
44
* @author Eric Vergnaud
40
45
*/
41
- public class Python2Target extends AbstractPythonTarget {
42
-
46
+ public class Python2Target extends Target {
43
47
protected static final String [] python2Keywords = {
44
48
"abs" , "all" , "any" , "apply" , "as" ,
45
49
"bin" , "bool" , "buffer" , "bytearray" ,
@@ -74,10 +78,50 @@ public Python2Target(CodeGenerator gen) {
74
78
super (gen , "Python2" );
75
79
}
76
80
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
+ }
77
121
78
122
@ Override
79
123
public String getVersion () {
80
- return "4.4.0 " ;
124
+ return "4.4" ;
81
125
}
82
126
83
127
public Set <String > getBadWords () {
@@ -93,6 +137,4 @@ protected void addBadWords() {
93
137
badWords .add ("rule" );
94
138
badWords .add ("parserRule" );
95
139
}
96
-
97
-
98
140
}
0 commit comments