記事閲覧

− 野ざらし言 −

5769 Re^14: N88-BASICのRENUMのようなマクロ

めざら 2025/04/09(Wed) 13:38 [5764]へのコメント
http://mezala.la.coocan.jp/
お忙しいのにこちらばかり盛り上がって申し訳ない。
まだ学校が始まっていないので,超絶ヒマしてます。
その一方で畑仕事のエンジンはかからないままです。

週末以降に次の v0.20 を試してみてください。初版は破棄します。

= likereno v0.20 = by H_ear
#if 0
Like RENUM
#endif
* mad for vz!
1 ^\ "" ?.
        #^ #<
        a=10,                           ;増分値 (a)
        &n b=c=r,                       ;番号付開始値を取得 (b/c) 可変
        (r+1)??{ &m(41) . }             ;準備ができていないなら終了
        mp[=2, ps[, RX[+,               ;検索モード,正規表現有効
        &01 ps=r,
        mi[-,                           ;挿入有効
 :L     ; ---- main loop ----
        #t &?("%u",b)
        &#M(1)                          ;戻る位置をマーク
        ; ---- 飛び先の処理
        ; #56 &?("[\s\t]%u",c) #m &?("♭%u",b) #m "ay" ; v0.10 ×
        ; \x は \w を無効化するため マッチした番号を &n で都度確認
        #F &?("[\s\t]%u",c) #m
        #^ #<
 :J     #c
        (r)?{                           ;見つからなければ
                &#U(1) >N               ;戻って次行へ
        }?{                             ;見つかったら
                #f &n                   ;番号の照合
                (r==c)?{                ;一致すれば
                        #t &?("♯%u",b) ;飛び先に書き換える+処理印
                }
                >J                      ;次を探す
        }
 :N     #> #d                           ;通常は r==-1 なら停止だが
        &n c=r,                         ;旧行番号を取得 (c)
        (r+1)?{ b+=a, >L }              ;&n の値が不正になるので無視
 :Q     ; ---- 飛び先有効化 ----
        #56 "♯" #m "" #m "ay"
 :z     ; ---- exit ----
        mi], RX], ps], mp],
        &d #] .
01:     ; ---- buffer ----
        (5+$)."$(10,0)$[16]"
*

> 単にGOTOやGOSUBの頭にフラグという意味で"F"をつけるだけでもいい

このあたりは好きずきでしょうね。わたしは昔から一時文字使用派です。
確か,最初の実用仕事マクロでも使った手でした。骨身に染みてる。
FGO(Fateか)なんてキーワードがなきゃいいですが……でも,
カーソル移動とか発生しませんか?

> アルゴリズムを見るといずれも、旧行番号と新行番号の対応表を作る

最初はそうするものかなぁ……と思って,旧番号抽出マクロを作っては
みたのですが,ひどく面倒だったので付け替え単位にしました。


あと,ひとつ。重要な仕様の再確認なのですが……
goto gosub だけでよいのですか? then とか else は?
わたしはキーワードに束縛されないように組んでいるけど,気になる。

関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)

- 5731.N88-BASICのRENUMのようなマクロ - としき 25/03/29-14:22

返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

おなまえ :
Eメール :
タイトル :
メッセージ: 通常モード(推奨)  整形モード(非推奨)  preモード(空白再現)
※ プログラムコード等を含まない場合は,できるだけ通常モードをご利用ください。

参照先 :
暗証キー: (英数字で8文字以内) プレビューなし


- 以下のフォームから自分の投稿記事を修正・削除することができます -

処理 記事No. 暗証キー