cmm

просыпаясь

Sep 17, 2007 13:33

(для памяти, ничего интересного ( Read more... )

другие места, дыбр, выхлопы, прекрасное

Leave a comment

Comments 34

dejavit September 18 2007, 00:42:24 UTC
Привет тебе, расслабленному! Завидую.

Reply

cmm September 18 2007, 10:09:15 UTC
это ничего, вот теперь зато у меня ломка.

Reply


raptor_r September 18 2007, 10:00:08 UTC
Отрываесся?

Reply

cmm September 18 2007, 10:05:14 UTC
вернулся уже. :(

Reply


во всех ресторациях и кофейнях можно курить aburachil September 18 2007, 12:17:54 UTC
увы

Reply

Re: во всех ресторациях и кофейнях можно курить cmm September 18 2007, 12:40:34 UTC
недолго осталось, я понимаю.

Reply

недолго осталось aburachil September 18 2007, 13:05:41 UTC
почему?

Reply

Re: недолго осталось cmm September 18 2007, 13:15:10 UTC
ну Европарламент-то, поди, не дремлет.
хотя с берлинцев станется в любом случае наплевать. :)

Reply


Off gianthare September 23 2007, 17:00:47 UTC
Скажи мне, как фанат Лиспа, есть какой-нибудь вменяемый способ прочитать файл, который состоит как бы из s-exp, но при этом относится к точкам, запятым и прочей лабуде как к обычным буквам, т.е. считать точку как символ, а не конструктор dotted pair и т.п.

Reply

Re: Off cmm September 23 2007, 18:54:56 UTC
можно, в определённых пределах.

например, так:

(defvar *my-readtable* (copy-readtable))

(defun read-as-is (stream char)
(declare (ignore stream))
char)

(set-macro-character #\. #'read-as-is t *rt*)
(set-macro-character #\: #'read-as-is t *rt*)
(set-macro-character #\# #'read-as-is t *rt*)
(setf (readtable-case *rt*) :preserve)

(defun read-almost-but-not-quite-sexp (stream)
(let ((*read-eval* nil)
(*readtable* *rt*))
(read stream)))
"определённые пределы" заданы прискорбной негибкостью стандартного ридера.  к примеру ( ... )

Reply

Re: Off gianthare October 7 2007, 11:38:52 UTC
Спасибо,
почти идеально, основная неувязка с пунктом 1) разрывает n't на два слова и сдвоенные одинарные кавычки.
А чем плохо, то, что все интернируется? То что сборщик мусора их потом не удаляет? Зато каждое слово только один раз в памяти сохраняется. А в строки мне вроде и не надо их обращать.

А парсить ручками, или есть снандартные средства?

Reply

Re: Off cmm October 7 2007, 12:56:41 UTC
разрывает n't на два слова

угу, на #\' тоже надо read-as-is повесить.

А парсить ручками, или есть снандартные средства?

есть всякие генераторы парсеров, усё как у людёв.
я ими никакими не пользовался, правда, так что ничего умного сказать не могу.
cl-yacc должен выглядеть достаточно привычно, наверно.

Reply


Leave a comment

Up