2013-02-16 72 views
0

随着antlr4 TestRig你可以用它来生成的PostScript -ps树。我看不到我的树ANTLR树

后记:

%!PS-Adobe-3.0 EPSF-3.0 
%%BoundingBox: 0 0 54 48 

0.3 setlinewidth 
%% x y w h highlight 
/highlight { 
     4 dict begin 
     /h exch def 
     /w exch def 
     /y exch def 
     /x exch def 
     gsave 
     newpath 
     x y moveto 
     0 h rlineto  % up to left corner 
     w 0 rlineto  % to upper right corner 
     0 h neg rlineto % to lower right corner 
     w neg 0 rlineto % back home to lower left corner 
     closepath 
     .95 .83 .82 setrgbcolor 
     fill 
     grestore 
     end 
} def 
/ArialMT findfont 11 scalefont setfont 
27,662 32,395 moveto 
12,616 15,395 lineto 
27,662 32,395 moveto 
42,709 15,395 lineto 
25,831 37,395 moveto 
(r) show 
stroke 
1,000 5,000 moveto 
(hello) show 
stroke 
33,232 5,000 moveto 
(part) show 
stroke 
%%Trailer 

错误Ghostview工具:

GSview 5.0 2012-01-17 
Unknown in Prolog section at line 5: 
    %% x y w h highlight 


GPL Ghostscript 9.07 (2013-02-14) 
Copyright (C) 2012 Artifex Software, Inc. All rights reserved. 
This software comes with NO WARRANTY: see the file PUBLIC for details. 
Displaying DSC file C:/develop/libro/test/arbol.ps without pages 
Scanning c:\psfonts for fonts... 0 files, 0 scanned, 0 new fonts. 
Can't find (or can't open) font file %rom%Resource/Font/ArialMT. 
Can't find (or can't open) font file ArialMT. 
Querying operating system for font files... 
Didn't find this font on the system! 
Substituting font Helvetica for ArialMT. 
Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 3168784 1824261 3249480 1962181 2 done. 
Error: /undefined in 27,662 
Operand stack: 

Execution stack: 
    %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- false 1 %stopped_push 1932 1 3 %oparray_pop 1931 1 3 %oparray_pop 1915 1 3 %oparray_pop 1803 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 
Dictionary stack: 
    --dict:1182/1684(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)-- 
Current allocation mode is local 
Last OS error: No such file or directory 

--- Begin offending input --- 
0.3 setlinewidth 
%% x y w h highlight 
/highlight { 
     4 dict begin 
     /h exch def 
     /w exch def 
     /y exch def 
     /x exch def 
     gsave 
     newpath 
     x y moveto 
     0 h rlineto  % up to left corner 
     w 0 rlineto  % to upper right corner 
     0 h neg rlineto % to lower right corner 
     w neg 0 rlineto % back home to lower left corner 
     closepath 
     .95 .83 .82 setrgbcolor 
     fill 
     grestore 
     end 
} def 
/ArialMT findfont 11 scalefont setfont 
27,662 32,395 moveto 
12,616 15,395 lineto 
27,662 32,395 moveto 
42,709 15,395 lineto 
25,831 37,395 moveto 
(r) show 
stroke 
1,000 5,000 moveto 
(hello) show 
stroke 
33,232 5,000 moveto 
(part) show 
stroke 

--- End offending input --- 
file offset = 784 
gsapi_run_string_continue returns -101 

回答

1

嗯,这很简单,似乎ANTLR产生4位数字取决于当地的,也就是用法语说:用逗号。这是一个耻辱,因为在这种情况下,PostScript只是被剥离。

的解决方案是一个简单的问题给你。看来ANTLR 4一般数字使用当地法语,即用法语,用逗号。这很遗憾,因为PostScript不理解法语(拉丁语?)浮动数字。

您填写不宜目标进行ANTLR 4

在Unix上,你可以暂时改变当地一个庆典

export LANG=C 
+0

谢谢!我改变了格式,它工作正常,我会报告错误。 – 2013-02-17 03:46:48

+0

补充bug https://github.com/antlr/antlr4/issues/158 – 2013-02-17 16:53:22