■掲示板に戻る■
全部
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
最新50
レス数が1000を超えています。残念ながら全部は表示しません。
SKK専用スレッド
639 :
名無しさん@お腹いっぱい。
:01/12/26 13:25
とても面白そうだったのでコード拡張(?)してみました。
ちなみに looking-at を加えて lambda 対応は省きました。
# これってどういうメリットがあったんでしょうか?
# よく分らなかったのと、変数でも関数でもあるシンボル
# への対応が面倒だったので無くしちゃいました。
my-skk-dynamic-insert-rule-list の形式も変えてみました。
'((INPUT-STATE NEXT-STATE
(;; looking-at が nil なら re-search-backward()
;; (- (point) limit) を re-search-backward の
;; LIMIT に渡す
(REGEXP looking-at ignore-lf limit S-EXP . VAL)
;; looking-at が non-nil なら looking-at()
;; b-regexp が指定されていれば、その条件で
;; re-search-backward してから looking-at する
;; limit は re-search-backward の際に使われる
(REGEXP looking-at b-regexp limit S-EXP . VAL)
;; 上以外
(S-EXP . VAL))))
looking-at, ignore-lf, limit, S-EXP は不要であれば
書かずにすみます。つまり
(REGEXP looking-at ignore-lf limit . VAL)
(REGEXP looking-at ignore-lf . VAL)
(REGEXP looking-at . VAL)
(REGEXP . VAL)
これら全て ok です。指定されてなければ nil として扱います。
# 一番下の形式だと re-search-backward となります。
ignore-lf が明示的に指定された時には、
my-skk-dynamic-insert-ignore-CRLF を上書きします。
VAL は 文字列 or 関数のシンボル(arg付きで呼ばれる) or 変数 etc.
>>616
とは変えて、nil だと S-EXP の評価値になるようにしました。
looking-at の際に re-search-backward できるのは、こっちのほうが
context を考慮しやすいだろうと判断したからです。
# skip-chars-backward と迷ったのですが、こっちのほうが
# 柔軟に対処できそうなので。あまりオプション増すと
# 大変なので、これ以上の事がしたければ REGEXP でなく
# S-EXP のほうで対処してもらうという事で。
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver5.26+ (01/10/21-)