FORTRAN77モードNo.21522
colder さん 06/06/28 23:45
 
FORTRAN77モードで文字列定数が色付けされないのは、仕様でしょうか?

[ ]
RE:21522 FORTRAN77モードNo.21523
秀丸担当 さん 06/06/29 13:25
 

>FORTRAN77モードで文字列定数が色付けされないのは、仕様でしょうか?

FORTRAN77のカラー表示は、行頭の*と行頭のCで始まる行をコメントとして認識
しているのみです。
ちょっと調べてみたところ、'〜'で囲まれたものが文字列としていけそうですが、
それでいいでしょうか。
そのように対応してみようと思います。

[ ]
RE:21523 FORTRAN77モードNo.21524
colder さん 06/06/29 17:39
 
>ちょっと調べてみたところ、'〜'で囲まれたものが文字列としていけそうですが、
>それでいいでしょうか。

それ以外に、"〜"で囲まれた部分も文字列として欲しいです。(規格外ですが、多く
のコンパイラが文字列として扱っています。)

以下は、チラシのうら(私が必要としない規格の細部)
・7桁目から〜72桁目以外でクォートが現れても文字列の開始/終了ではない。
・6桁目が空白、又は、0のとき、その行は継続行
・文字列が複数行にわたることがある。


C23456789
      '←このクォートで文字列の始まり、次行に続く
C 途中にコメント行が入ることもある
     '←このクォートは継続行を表す このクォートで文字列の終わり→'    
     

[ ]
RE:21524 FORTRAN77モードNo.21525
秀丸担当 さん 06/06/29 18:30
 

>それ以外に、"〜"で囲まれた部分も文字列として欲しいです。(規格外ですが、多く
>のコンパイラが文字列として扱っています。)

そうなのですか。
規格外なのであれば、強調表示で指定したほうがいいかもしれません。
強調表示で指定する場合、正規表現で「".*?"」という感じでできます。

>以下は、チラシのうら(私が必要としない規格の細部)
>・7桁目から〜72桁目以外でクォートが現れても文字列の開始/終了ではない。
>・6桁目が空白、又は、0のとき、その行は継続行
>・文字列が複数行にわたることがある。
>
>例
>C23456789
>      '←このクォートで文字列の始まり、次行に続く
>C 途中にコメント行が入ることもある
>     '←このクォートは継続行を表す このクォートで文字列の終わり→'    
>      

そうだったのですか。
なんだか昔に勉強したこともあったような気もしますが。
とりあえずV6.00β33でやってしまったのですが、もっと厳密にしたほうがいい
かもしれないですね。

[ ]
RE:21525 FORTRAN77モードNo.21527
Arimac さん 06/06/29 21:37
 
3HABCとかっていう感じの文字列定数(ホレリス定数)もあったような気が…(^^;

[ ]
RE:21527 FORTRAN77モードNo.21528
秀丸担当 さん 06/06/30 12:54
 

>3HABCとかっていう感じの文字列定数(ホレリス定数)もあったような気が…(^^;

そんなものもありましたね…
ここまでやると複雑になりすぎるので、特に需要がなければやらないでおこうと
思います。

[ ]
RE:21525 FORTRAN77モードNo.21532
colder さん 06/07/01 14:42
 
素早い対応、ありがとうございまず。

>>      '←このクォートで文字列の始まり、次行に続く
>>C 途中にコメント行が入ることもある
>>     '←このクォートは継続行を表す このクォートで文字列の終わり→'    
>>      
>
>そうだったのですか。
>なんだか昔に勉強したこともあったような気もしますが。
>とりあえずV6.00β33でやってしまったのですが、もっと厳密にしたほうがいい
>かもしれないですね。

これらの例は、極めて希ですので、これを必要とする人はいないと思います。
他の言語モードでもあまり厳密に判別していませんし。


Pascal/Delphi モード
// 行コメントはDelphiの独自仕様

・標準Pascalでは、2種類のコメント{、}及び(*、*)をチャンポンに使うことができる。
{    *)
ここがコメントなのは、Delphi(Borland)の独自仕様
(*    }


C言語/Java モード
// 行コメントは、標準C言語(C89)には、存在しない。

・Javaでは、/、*、'、"の代わりに、\u002f、\u002a、\u0027、\u0022と表記できる。
\u002f\u002a ここはコメント \u002a\u002f
\u0022 ここは文字列 \u0022

・C/C++には、トライグラフがある。
??'、??/は、文字列、コメント内も含めて、常に、^、\と同様に扱う。
5 ??' 4 ??' 3;  /* この行内に文字定数はない */
"文字列定数 ??/" ここもまだ文字列定数 "

・C/C++では、行の最後に\がある場合、次行に連結される(コメント内であっても、)
" 文字列 \
ここもまだ文字列"

// コメント \
  ここもまだコメント

/\
*  コメントの開始/終了を表す/*等の間にあるときでさえも、連結行として扱われる */


Perl モード
qr(文字列)   この形式に、未対応
print $r /2; #除算の/をマッチ式の/と誤認識
print 3+ / /; #逆のパターン:マッチ式の/を除算の/と誤認識

s(検索文字列)(置換文字列)では、秀丸V6.00β33では対応する閉じ括弧が2回現れる
までを文字列(私の推測)としているが、
s((検索文字列))(置換文字列) #検索文字列の終端は、正規表現の文法に従って、対
応する括弧を捜さないといけない。
s(検索文字列){置換文字列} #置換文字列に異なる括弧を使用してもよい。
s(検索文字列)      #間にコメントが入ることもある
 !置換文字列!   #置換文字列が括弧以外の記号で囲まれることがある。
s(検索文字列)#置換文字列#  #閉じ括弧のあとに空白なしで#があるときはコメント
ではなく、置換文字列の始まり

[ ]
RE:21532 FORTRAN77モードNo.21535
秀丸担当 さん 06/07/03 15:06
 

>これらの例は、極めて希ですので、これを必要とする人はいないと思います。
>他の言語モードでもあまり厳密に判別していませんし。

そうですか。ならあまりウエイトをかけるのもなんなのでこのままとしておこう
と思います。
他の言語の例はとても参考になります。
全部厳密にやったらきりが無いですが。
Perlのqrだけできないのは変なのでやろうと思います。

[ ]