お忙しいのにこちらばかり盛り上がって申し訳ない。
まだ学校が始まっていないので,超絶ヒマしてます。
その一方で畑仕事のエンジンはかからないままです。
週末以降に次の 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 は?
わたしはキーワードに束縛されないように組んでいるけど,気になる。
関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)
返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
- 以下のフォームから自分の投稿記事を修正・削除することができます -