マクロ行末のセミコロン省略No.00911
ENCODINGSHIFTJIS さん 99/12/14 15:16
 
// パラメータを取らない文を行末に寄せて置くときは
//  ; を書かなくてよい。
// ワードラップon 追い出し の禁則処理on の場合。
// 秀丸が表示行ベースの動作を基本にしているから?
//qq.mac
// これは よく知られてますか?  私はビックリしました。
                                                             dupline
//
                                                        insertreturn
// ちゃんとエラーにならず動きます。
endmacro;



[ ]
RE:00911 マクロ行末のセミコロン省略No.00914
杉浦 まさき さん 99/12/15 00:24
 
ENCODINGSHIFTJIS さん、こんばんは。
杉浦 まさき です。

>// パラメータを取らない文を行末に寄せて置くときは
>//  ; を書かなくてよい。

…秀丸マクロの構文解析ルーチンは
割とよく意味不明な解釈をしますよね、確かに(^^;。
#しかも論理行ではなく表示行で動作が変わるとは…オソルベシ(^^;。

#さらにどうでもいい話ですが、
 秀丸マクロには明確な「構文規則」が存在しないんですよね(^^;。
 ヘルプにも「C言語に"似た"」という記述しかないし…
 と、(最近はストップしているm(_ _)m)
 マクロ道場の原稿を書いてて気付いたことでした。


[ ]
RE:00914 マクロ行末のセミコロン省略No.00916
ENCODINGSHIFTJIS さん 99/12/15 10:54
 
追加訂正します。

正しくは、
// パラメータを取らない文を置くときは ; を書かなくてよい。
でした。

beginsel left 4;cut insertreturn paste        dupline

動きます。文じゃなくて操作キーワードだ、BASICもビックリ。
それでも慣れれば悪くないか?エディタマクロらしいし

でもヘルプの説明では正しくない事になっている。

将来はどうなるか?
マクロ実行エンジンが現代化したら今の記法なんて全然通用しないで
しょうし。

行末;が無くてもエラーにならないのを偶然に発見したの巻でした。



[ ]
RE:00916 マクロ行末のセミコロン省略No.00917
ENCODINGSHIFTJIS さん 99/12/16 13:35
 
>さらに追加訂正します。
/ オマケにbreak等の普通は構文要素の物でも、ますますビックリ
// これでcontinueがネストを見ないでwhileの終わりで
// ひっかるのが理解できるような気がする。
// Cとは違うがCのように書いてもかまわない.

// マクロの書き方の説明では
// パラメータ(省略可能を含む)を持つ物は;で止める

// だけでいいのでは?すべて調べていないけれど
// ちゃんとエラーにならず動きます。

while(1){beep break}menu "pp";
if(1)beep else beep
menu "fh";
endmacro

[ ]