あー今月中の 2.20 きつくなったかな。またこれからしばらく吉里吉里いじれなさそうな予感がするので、思い切ってアーカイブデリミタを '#' から '>' に変えました。たぶんそれなりにきつい仕様変更かもしれませんが、将来的には安心です。
TJS2 の string 演算子使おうと string(a).length を書きました。やりたかったことは (strin(a)).length なんですけど解釈された結果は string(a.length) と等価でした。
string(a).length の string(a) は関数呼び出しに見ますし、 (string(a)).length と同じ意味にしたいなーとおもって、演算子の優先順位を変えることまで考えましたが、結局現行のままで行きます。
というのは C 言語の sizeof 演算子も、たとえば sizeof(a).b と書くと sizeof(a.b) の意味なんですね。これいままで知りませんでした。C 言語の sizeof 演算子がその優先順位ならば string 演算子もそれでいいや、ということで。
優先順位の関係でたとえば sizeof(a)+b は (sizeof a) + b と解釈されます。これは TJS2 も同じです。
TJS2のstring,int,real は元々単項演算子です。string(a) とかいて string 型のオブジェクトを生成する訳ではありません。
って今月には出したいんですけどねえ…。