こういちさん、ご記帳そして純正培養データをありがとうございます。 お陰様でご指摘の件、よく理解できました。
実は、私もブロックコメント「!」とダブルコーテーション「W」の関係は 本当に現仕様でいいのだろうかと、以前からちょっと気になっていました。 現在のMuseはブロックコメントの開始を検出した場合、 ブロックコメントのエリアから脱出するまでは、ダブルコーテーションの入れ子関係を検知せず、 とにかくブロックコメントの終了を示す文字「!」を探します。 このルールだとプログラムのシーケンスは簡単なのですが、 その代償として以下の様に少々違和感のある仕様になってしまいます。
■現仕様■ ・ダブルコーテーション内の!記号は、ブロックコメントの「開始」として認識せず、文字「!」として解釈。 ・ただし、ダブルコーテーション内であっても、ブロックコメント「終了」の!記号は認識する。
この現仕様では、ダブルコーテーション「W」とブロックコメント「!」が交錯する場合、 以下の様な解釈になります。
<その1>
W @ ! A W B ! └───────┘ └──→以降ブロックコメント
<その2>
! C W D ! E W └───────┘ └──→以降スルーコマンド
今回こういちさんにご指摘頂いたのは、こういった仕様によるものです。
現仕様を尊重し、運用で回避する方法をいろいろ捻出していただき、本当に恐縮しています。 あまりに心苦しく感じたので、次回のバージョンで以下の様に仕様変更してはどうかと考えています。
■新仕様■ ・ダブルコーテーション内の!記号は、ブロックコメント記号(開始終了とも)として認識せず、文字「!」として扱う。
→★この新仕様で、気になるところがありましたら、皆さんお気軽にご記帳下さい。
この仕様ならば、上記の例は以下の様になります。
<その1> 変更なし
W @ ! A W B ! └───────┘ └──→以降ブロックコメント
<その2> 変更あり
! C W D ! E W └───────┘ └──────────────→以降ブロックコメント
新仕様では、 ブロックコメントに突入してもダブルコーテーションの内外関係を常にチェックし続ける必要があるため、 ちょっとプログラムが面倒ですし、マクロだのコードなど他の構造レベルの文法の絡みがあるので、 不具合を誘発しないかドキドキものなんですが(苦笑)、ちょっとトライしてみようと思います。
また、 まだ改良版の作成に着手していませんが、 この仕様変更は厳密に言うとデータの互換性を崩しますので 試作版が出来たら、現在手元にある8,500曲でチェックしてみようとも考えています。
|