Доброго времени суток!
Написал вот это вот... Хотелось бы услышать конструктивную критику -
можно ли сделать это как-то
более "фортово"? Или просто более понятно?
\ Расширить макровыражение
\ c-addr1 u1 - Полная строка
\ c-addr2 u2 - Подстрока в пространстве c-addr1 u1,
\ которая является выражением
\ c-addr1 u3 - Результат работы
: expand ( c-addr1 u1 c-addr2 u2 -- c-addr1 u3 )
{ c1 u1 c2 u2 | ce ue diff }
\ Вычисляем выражение
c2 u2 EVALUATE TO ue TO ce
\ Расширяем зону выражения, чтобы включала '$'
c2 CHAR- TO c2
u2 2 + TO u2
\ Разница длин новой строки и выражения
ue u2 - TO diff
\ Перенос правой подстроки
c2 u2 CHARS +
DUP diff CHARS +
OVER c1 - 1 CHARS / u1 SWAP -
diff 0< IF CMOVE ELSE CMOVE> THEN
\ Перенос вычисленного выражения
ce c2 ue CMOVE
\ Конечный результат
c1 u1 diff +
;
--
Алексей Царегородцев.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>
http://get.splunk.com/_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev