Comment detail
コメントの削除 (Nested Flatten)修正版... 文字列中に%を書けたとは...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | %!PS
/Decomment { % (filename) Decomment -
true exch
0 exch
(r) file
{
% outputflag file
dup read
not { exit } if
dup 40 eq {
3 -1 roll 1 add 3 1 roll
} if
dup 41 eq {
3 -1 roll 1 sub 3 1 roll
} if
dup 37 eq {
2 index 0 eq {
4 -1 roll pop false 4 1 roll
} if
} if
dup dup 10 eq exch 13 eq or {
4 -2 roll pop pop true 0 4 2 roll
} if
3 index {
( ) dup 0 4 -1 roll put
print
} {
pop
} ifelse
} loop
pop pop pop
} bind def
%---- Test Code ----
(====%===) pop % ==
(decomment.ps) Decomment
|




Nemo
#6545()
[
PostScript
]
Rating-1/1=-1.00
言語仕様的には PostScript では%以降がコメントになります。 ただしプリンタや処理系によってはコメント中の情報を用いて処理をする場合があります...
%!PS /Decomment { % (filename) Decomment - true exch (r) file { % outputflag file dup read not { exit } if dup 37 eq { 3 -1 roll pop false 3 1 roll } if dup dup 10 eq exch 13 eq or { 3 -1 roll pop true 3 1 roll } if 2 index { ( ) dup 0 4 -1 roll put print } { pop } ifelse } loop pop pop } bind def %---- Test Code ---- (decomment.ps) DecommentRating-1/1=-1.00-0+
1 reply [ reply ]