Perl/Rubyのコメント判定No.04492
綾乃介 さん 99/11/22 09:25
 
 綾乃介です。

 Perlのコメント判定で、

 s/#\s/ /g
 
のように、//で挟まれている#は、無視するようにしたほうが良いようです。

 あと、Rubyというスクリプト言語があるのですが、Rubyの普及の
ためにも、ぜひ、コメントの選択肢に入れてください。
 大体はPerlと同じ判定でいいのですが、すこしだけ、差があります。

 代表的なものに、#{変数名}というものがあります。
 変数名には、日本語も利用可能ですなので、
#{\s*[^\s]+\s*}
くらいの判定条件で良いと思います。これは、""で囲まれている場合と、囲まれてい
ない場合があります。
 これを、コメント判定条件から除外していただけると嬉しいです。

 この他に、違いがあったらまたレポートをしようと思います。

 対応よろしくお願いいたします。

[ ]
RE:04492 Perl/Rubyのコメント判定No.04503
秀丸担当 さん 99/11/22 18:17
 
> Perlのコメント判定で、
>
> s/#\s/ /g
> 
>のように、//で挟まれている#は、無視するようにしたほうが良いようです。

なるほど。了解しました。

> あと、Rubyというスクリプト言語があるのですが、Rubyの普及の
>ためにも、ぜひ、コメントの選択肢に入れてください。
> 大体はPerlと同じ判定でいいのですが、すこしだけ、差があります。

検討しておきます。

[ ]
RE:04503 Perl/Rubyのコメント判定No.04504
える さん 99/11/23 19:31
 
>> s/#\s/ /g
>>のように、//で挟まれている#は、無視するようにしたほうが良いようです。
>なるほど。了解しました。

これを言い出すとやっかいなことになるので、これは無視しない仕様のほうがありが
たいです。

s%#\s% %g;

ともかけますし

s{#\s}{ }g;

とも書けます、これらを判別しろと言うのと違いないですね ?
これらは、すべて # の前に \ を付けられるので、

\#

の場合、コメントとみなさない、というのが現実的ではないでしょうか。

p.s.
  以前指摘した =tag 〜 =cut のコメント化もよろしくおねがいします。


[ ]
RE:04504 Perl/Rubyのコメント判定No.04506
綾乃介 さん 99/11/24 09:16
 
>>> s/#\s/ /g
>>>のように、//で挟まれている#は、無視するようにしたほうが良いようです。
>>なるほど。了解しました。
>
>これを言い出すとやっかいなことになるので、これは無視しない仕様のほうがあり
>がたいです。
>
>s%#\s% %g;
>s{#\s}{ }g;
>
>とも書けます、これらを判別しろと言うのと違いないですね ?

 なるほど、確かにこれを言い始めると厄介なことになるかも
しれませんね。
 ただ、圧倒的に//が多いはずだし、//を特別扱いしておいても
良い気はします。
 それに加えて、

>\#
>
>の場合、コメントとみなさない、というのが現実的ではないでしょうか。

 この、2段構えのほうが、既存のスクリプトのカラー化
という点で優れていると思います。

>  以前指摘した =tag 〜 =cut のコメント化もよろしくおねがいします。

 Rubyにも、
=begin
=end
までがコメントという仕様があります。
 良かったらこちらも検討をお願いします。

[ ]
RE:04506 Perl/Rubyのコメント判定No.04509
える さん 99/11/24 21:10
 
>>>> s/#\s/ /g
>>>>のように、//で挟まれている#は、無視するようにしたほうが良いようです。
>>>なるほど。了解しました。
>>これを言い出すとやっかいなことになるので、これは無視しない仕様のほうがあり
>がたいです。
> なるほど、確かにこれを言い始めると厄介なことになるかも
>しれませんね。
> ただ、圧倒的に//が多いはずだし、//を特別扱いしておいても
>良い気はします。

世間的には CGI が用途に多く、 URL とか、よく / が入っているので m// はそれな
りに少ないと思っています。

他にも CGI 用途だと " の間が文字列として扱われるというのも欲を言えばちょっと
辛いことになります。
perl で文字列は、たとえば qq記号 から 記号 までの間です。
qq/ほげら/ という書き方や qq(ほげら) という書き方をします。
qq を省略できる唯一の記号が " であるというだけです。

記号をエスケープするので

print "<FONT SIZE=\"$size\">";

よりも

print qq{<FONT SIZE="$size">};

と書くほうが見やすい、というだけのことです。

// も、m// で省略できる唯一の記号であるという意味で特別扱いするってのも悪く
ないとは思うのですが、" と比べての仕様頻度の問題は前述の通りではないかと思い
ます。

個人的には

print qq{<FONT SIZE="$size">};

の時に " の内側が色が変わるのは、「これはこれでいいぢゃん」と思ってたりしま
す(^^;

[ ]
RE:04509 Perl/Rubyのコメント判定No.04521
秀丸担当 さん 99/11/26 17:44
 
>世間的には CGI が用途に多く、 URL とか、よく / が入っているので m// はそれ
>なりに少ないと思っています。
>
>他にも CGI 用途だと " の間が文字列として扱われるというのも欲を言えばちょっ
>と辛いことになります。
>perl で文字列は、たとえば qq記号 から 記号 までの間です。
>qq/ほげら/ という書き方や qq(ほげら) という書き方をします。
>qq を省略できる唯一の記号が " であるというだけです。

むー、これは、いろいろ考慮すると、かなり、複雑なのですね。
とりあえずメモしておきます。

[ ]