Skip to content

Commit 541decd

Browse files
committed
Output charset fix
1 parent acad6c4 commit 541decd

File tree

4 files changed

+289
-3
lines changed

4 files changed

+289
-3
lines changed

.vscode/launch.json

+10
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@
6161
"input": "${workspaceFolder}/src/main/antlr4/samples/rz_tep70-cab.sms",
6262
"visualParseTree": true,
6363
"printParseTree": false
64+
},
65+
{
66+
"name": "cab300.sd",
67+
"type": "antlr-debug",
68+
"request": "launch",
69+
"grammar": "${workspaceFolder}/src/main/antlr4/stf.g4",
70+
"startRule": "stf",
71+
"input": "${workspaceFolder}/src/main/antlr4/samples/Cab300.sd",
72+
"visualParseTree": true,
73+
"printParseTree": false
6474
}
6575
]
6676
}

src/main/antlr4/samples/simple.eng

+273-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,263 @@ SIMISA@@@@@@@@@@JINX0t1t______
33
shape ( vl10k-1641a.s
44
ESD_Detail_Level ( 0 )
55
ESD_Bounding_Box ( -1.58 0.043 )
6-
ESD_CheckDetailsVisible ()
6+
ESD_CheckDetailsVisible (
7+
Display (
8+
ID ( 499 )
9+
Name ( USAVP )
10+
Position ( 1.432 2.612 9.912 )
11+
Radius ( 2 )
12+
InitialState ( 0 )
13+
DisplayType ( SCREEN )
14+
DisplayScreen (
15+
TopLeft ( 1.348 2.677 9.985 )
16+
TopRight ( 1.515 2.677 9.834 )
17+
BottomRight ( 1.517 2.546 9.837 )
18+
SubObjects ( 15
19+
SubObject (
20+
SubID ( 0 )
21+
Skip ( "время" )
22+
Type ( LABEL )
23+
Area ( 0.196 0.391 0.438 0.452 )
24+
UV ( 0.0 0.0 0.5 1.0 )
25+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
26+
NamedShader ( BlendATex )
27+
CharacterWidth ( 0.029 0.060 )
28+
CharacterHeight ( 0.061 0.083 )
29+
CharacterSpacing ( 0.0011 0.011 )
30+
LineSpacing ( 0.0000 0.0075 )
31+
Alignment ( RIGHT CENTER )
32+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
33+
MaxStringLength ( 8 )
34+
)
35+
SubObject (
36+
SubID ( 1 )
37+
Skip ( "ограничение" )
38+
Type ( LABEL )
39+
Area ( 0.558 0.391 0.649 0.452 )
40+
UV ( 0.0 0.0 0.5 1.0 )
41+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
42+
NamedShader ( BlendATex )
43+
CharacterWidth ( 0.029 0.060 )
44+
CharacterHeight ( 0.061 0.083 )
45+
CharacterSpacing ( 0.0011 0.011 )
46+
LineSpacing ( 0.0000 0.0075 )
47+
Alignment ( RIGHT CENTER )
48+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
49+
MaxStringLength ( 3 )
50+
)
51+
SubObject (
52+
SubID ( 2 )
53+
Skip ( "скорость" )
54+
Type ( LABEL )
55+
Area ( 0.709 0.391 0.799 0.452 )
56+
UV ( 0.0 0.0 0.5 1.0 )
57+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
58+
NamedShader ( BlendATex )
59+
CharacterWidth ( 0.029 0.060 )
60+
CharacterHeight ( 0.061 0.083 )
61+
CharacterSpacing ( 0.0011 0.011 )
62+
LineSpacing ( 0.0000 0.0075 )
63+
Alignment ( RIGHT CENTER )
64+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
65+
MaxStringLength ( 3 )
66+
)
67+
SubObject (
68+
SubID ( 3 )
69+
Skip ( "мут" )
70+
Type ( LABEL )
71+
Area ( 0.196 0.464 0.227 0.525 )
72+
UV ( 0.0 0.0 0.5 1.0 )
73+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
74+
NamedShader ( BlendATex )
75+
CharacterWidth ( 0.029 0.060 )
76+
CharacterHeight ( 0.061 0.083 )
77+
CharacterSpacing ( 0.0011 0.011 )
78+
LineSpacing ( 0.0000 0.0075 )
79+
Alignment ( RIGHT CENTER )
80+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
81+
MaxStringLength ( 1 )
82+
)
83+
SubObject (
84+
SubID ( 4 )
85+
Skip ( "расстояние" )
86+
Type ( LABEL )
87+
Area ( 0.257 0.464 0.347 0.525 )
88+
UV ( 0.0 0.0 0.5 1.0 )
89+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
90+
NamedShader ( BlendATex )
91+
CharacterWidth ( 0.029 0.060 )
92+
CharacterHeight ( 0.061 0.083 )
93+
CharacterSpacing ( 0.0011 0.011 )
94+
LineSpacing ( 0.0000 0.0075 )
95+
Alignment ( LEFT CENTER )
96+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
97+
MaxStringLength ( 3 )
98+
)
99+
SubObject (
100+
SubID ( 5 )
101+
Skip ( "уклон" )
102+
Type ( LABEL )
103+
Area ( 0.317 0.464 0.468 0.525 )
104+
UV ( 0.0 0.0 0.5 1.0 )
105+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
106+
NamedShader ( BlendATex )
107+
CharacterWidth ( 0.029 0.060 )
108+
CharacterHeight ( 0.061 0.083 )
109+
CharacterSpacing ( 0.0011 0.011 )
110+
LineSpacing ( 0.0000 0.0075 )
111+
Alignment ( RIGHT CENTER )
112+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
113+
MaxStringLength ( 5 )
114+
)
115+
SubObject (
116+
SubID ( 6 )
117+
Skip ( "сигнал" )
118+
Type ( LABEL )
119+
Area ( 0.589 0.464 0.619 0.525 )
120+
UV ( 0.0 0.0 0.5 1.0 )
121+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
122+
NamedShader ( BlendATex )
123+
CharacterWidth ( 0.029 0.060 )
124+
CharacterHeight ( 0.061 0.083 )
125+
CharacterSpacing ( 0.0011 0.011 )
126+
LineSpacing ( 0.0000 0.0075 )
127+
Alignment ( RIGHT CENTER )
128+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
129+
MaxStringLength ( 1 )
130+
)
131+
SubObject (
132+
SubID ( 7 )
133+
Skip ( "расстояние до сигнала" )
134+
Type ( LABEL )
135+
Area ( 0.678 0.464 0.799 0.525 )
136+
UV ( 0.0 0.0 0.5 1.0 )
137+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
138+
NamedShader ( BlendATex )
139+
CharacterWidth ( 0.029 0.060 )
140+
CharacterHeight ( 0.061 0.083 )
141+
CharacterSpacing ( 0.0011 0.011 )
142+
LineSpacing ( 0.0000 0.0075 )
143+
Alignment ( RIGHT CENTER )
144+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
145+
MaxStringLength ( 4 )
146+
)
147+
SubObject (
148+
SubID ( 8 )
149+
Skip ( "звезда опоздания" )
150+
Type ( LABEL )
151+
Area ( 0.667 0.315 0.707 0.376 )
152+
UV ( 0.0 0.0 0.5 1.0 )
153+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
154+
NamedShader ( BlendATex )
155+
CharacterWidth ( 0.029 0.060 )
156+
CharacterHeight ( 0.061 0.083 )
157+
CharacterSpacing ( 0.0011 0.011 )
158+
LineSpacing ( 0.0000 0.0075 )
159+
Alignment ( RIGHT CENTER )
160+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
161+
MaxStringLength ( 1 )
162+
)
163+
SubObject (
164+
SubID ( 9 )
165+
Skip ( "время по графику" )
166+
Type ( LABEL )
167+
Area ( 0.195 0.320 0.376 0.381 )
168+
UV ( 0.0 0.0 0.5 1.0 )
169+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
170+
NamedShader ( BlendATex )
171+
CharacterWidth ( 0.029 0.060 )
172+
CharacterHeight ( 0.061 0.083 )
173+
CharacterSpacing ( 0.0011 0.011 )
174+
LineSpacing ( 0.0000 0.0075 )
175+
Alignment ( LEFT CENTER )
176+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
177+
MaxStringLength ( 6 )
178+
)
179+
SubObject (
180+
SubID ( 10 )
181+
Skip ( "скорость по графику" )
182+
Type ( LABEL )
183+
Area ( 0.709 0.315 0.799 0.376 )
184+
UV ( 0.0 0.0 0.5 1.0 )
185+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
186+
NamedShader ( BlendATex )
187+
CharacterWidth ( 0.029 0.060 )
188+
CharacterHeight ( 0.061 0.083 )
189+
CharacterSpacing ( 0.0011 0.011 )
190+
LineSpacing ( 0.0000 0.0075 )
191+
Alignment ( RIGHT CENTER )
192+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
193+
MaxStringLength ( 3 )
194+
)
195+
SubObject (
196+
SubID ( 11 )
197+
Skip ( "1 строка на 16 символов" )
198+
Type ( LABEL )
199+
Area ( 0.196 0.320 0.677 0.381 )
200+
UV ( 0.0 0.0 0.5 1.0 )
201+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
202+
NamedShader ( BlendATex )
203+
CharacterWidth ( 0.029 0.060 )
204+
CharacterHeight ( 0.061 0.083 )
205+
CharacterSpacing ( 0.0011 0.011 )
206+
LineSpacing ( 0.0000 0.0075 )
207+
Alignment ( LEFT CENTER )
208+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
209+
MaxStringLength ( 16 )
210+
)
211+
SubObject (
212+
SubID ( 12 )
213+
Skip ( "2 строка на 16 символов" )
214+
Type ( LABEL )
215+
Area ( 0.196 0.391 0.677 0.452 )
216+
UV ( 0.0 0.0 0.5 1.0 )
217+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
218+
NamedShader ( BlendATex )
219+
CharacterWidth ( 0.029 0.060 )
220+
CharacterHeight ( 0.061 0.083 )
221+
CharacterSpacing ( 0.0011 0.011 )
222+
LineSpacing ( 0.0000 0.0075 )
223+
Alignment ( LEFT CENTER )
224+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
225+
MaxStringLength ( 16 )
226+
)
227+
SubObject (
228+
SubID ( 13 )
229+
Skip ( "3 строка на 16 символов" )
230+
Type ( LABEL )
231+
Area ( 0.196 0.464 0.677 0.525 )
232+
UV ( 0.0 0.0 0.5 1.0 )
233+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
234+
NamedShader ( BlendATex )
235+
CharacterWidth ( 0.029 0.060 )
236+
CharacterHeight ( 0.061 0.083 )
237+
CharacterSpacing ( 0.0011 0.011 )
238+
LineSpacing ( 0.0000 0.0075 )
239+
Alignment ( LEFT CENTER )
240+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
241+
MaxStringLength ( 16 )
242+
)
243+
SubObject (
244+
SubID ( 14 )
245+
Skip ( "4 строка на 16 символов" )
246+
Type ( LABEL )
247+
Area ( 0.196 0.537 0.677 0.598 )
248+
UV ( 0.0 0.0 0.5 1.0 )
249+
Textures ( 1 "..\..\mdd_Libraries\Usavp\usavp_sym.ace" )
250+
NamedShader ( BlendATex )
251+
CharacterWidth ( 0.029 0.060 )
252+
CharacterHeight ( 0.061 0.083 )
253+
CharacterSpacing ( 0.0011 0.011 )
254+
LineSpacing ( 0.0000 0.0075 )
255+
Alignment ( LEFT CENTER )
256+
Alphabet ( "0123456789.:*-абвгдежзийклмнопрстуфхцчшщъыьэюяХVT+W>" )
257+
MaxStringLength ( 16 )
258+
)
259+
)
260+
)
261+
)
262+
)
7263
ESD_Interior (
8264
VolumeCurve (
9265
SpeedControlled
@@ -50,7 +306,22 @@ shape ( vl10k-1641a.s
50306
1.5 3.15 -9.58 1.0 Skip (окна)
51307
-1.5 3.15 -9.58 1.0
52308
)
53-
309+
SubObject (
310+
SubID ( 26 )
311+
Skip ( "Время" )
312+
Type ( LABEL )
313+
Area ( 0.588 0.183 0.766 0.206 )
314+
UV ( 0.0 0.0 1.0 1.0 )
315+
Textures ( 1 stanc.ace )
316+
NamedShader ( BlendATex )
317+
CharacterWidth ( 0.016 0.04595 )
318+
CharacterHeight ( 0.023 0.15683 )
319+
CharacterSpacing ( 0.006 0.05394 )
320+
LineSpacing ( 0.0000 0.05279 )
321+
Alignment ( RIGHT BOTTOM )
322+
Alphabet ( "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789.,-ІЇЄҐ" )
323+
MaxStringLength ( 8 )
324+
)
54325
Switches ( 139
55326
Switch (
56327
ID ( 0 )

src/main/java/net/unixcode/rts/parser/compiler/antlr/stf/STF2XMLListener.java

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import net.unixcode.rts.parser.api.compiler.antlr.stf.ISTF2XMLListenerCtxt;
77
import net.unixcode.rts.parser.compiler.antlr.CountableListenerStackFrame;
88
import org.jetbrains.annotations.NotNull;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
911
import org.springframework.beans.factory.BeanFactory;
1012
import org.springframework.beans.factory.config.BeanDefinition;
1113
import org.springframework.context.annotation.Scope;
@@ -22,6 +24,8 @@
2224
@Component
2325
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
2426
public class STF2XMLListener extends StackableSTFListener<Node, CountableListenerStackFrame<Node>> {
27+
final protected Logger log = LoggerFactory.getLogger(getClass());
28+
2529
protected static class Frame extends CountableListenerStackFrame<Node> {
2630
public Frame(CountableListenerStackFrame<Node> prevFrame) {
2731
super(prevFrame);

src/main/java/net/unixcode/rts/parser/services/FileEmitter.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.io.FileWriter;
1212
import java.io.IOException;
1313
import java.io.OutputStreamWriter;
14+
import java.nio.charset.StandardCharsets;
1415

1516
@Component
1617
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
@@ -26,7 +27,7 @@ protected OutputStreamWriter getOutputStreamWriter(ISourceItem sourceItem) {
2627
sourceItem.setOutPath(targetPath);
2728
log.info("compiled file: " + targetPath);
2829

29-
return new FileWriter(file);
30+
return new FileWriter(file, StandardCharsets.UTF_8);
3031
}
3132
catch (IOException e) {
3233
log.error("Unable to write output file.");

0 commit comments

Comments
 (0)