LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Я, конечно, мало что понял из твоих ссылок, но мне кажется, там речь о макросах, а не на макро-буквах. С помощью макро-букв можно сделать, к примеру, такое:

> (set-macro-character #\^ (lambda (stream char) (reverse (read-line stream))))

> ^a " b

"b \" a"
Здесь мы говорим, что если в исходнике попалась буква ^, нужно читать все буквы до конца строки, перевернуть считанное и вставить её в читаемый объект на то место, где встретилась ^. Можно, естественно, вместо такой шалости вставить нормальный лексер любого синтаксиса.

Исходная версия den73, :

Я, конечно, мало что понял из твоих ссылок, но мне кажется, это похоже на макросы, а не макро-буквы. С помощью макро-букв можно сделать, к примеру, такое:

> (set-macro-character #\^ (lambda (stream char) (reverse (read-line stream))))

> ^a " b

"b \" a"
Здесь мы говорим, что если в исходнике попалась буква ^, нужно читать все буквы до конца строки, перевернуть считанное и вставить её в читаемый объект на то место, где встретилась ^. Можно, естественно, вместо такой шалости вставить нормальный лексер любого синтаксиса.