Я хочу написать C в s-выражениях и использовать макросы времени компиляции. Кто-нибудь знает что-нибудь, что делает это? Он должен перевести S-выражение в стандартный С.Запись C как s-выражения
ответ
Похожие:
Ссылка scexp больше не работает. Используйте http://super.para.media.kyoto-u.ac.jp/~tasuku/sc/index.html – whoplisp
francogrex на #lisp советует использовать http://www.isi.edu/isd/LOOM/Stella/ – whoplisp
Ссылка на kyoto-u.ac.jp не совпадает с проектом scexp (он также генерирует C и довольно большой). Это ссылка на scexp: http://tenkan.org/~tim/scexp-0.9.tar.gz – whoplisp
Как вы имеете в виду? Что-то в строках:
(c-expression (int main ((int argc) ((array (pointer char)) argv) (block (printf "%d arguments\n" argc) (if (argc >= 1) (printf "The first arg is %s\n" (ref argv 1))) (return 0)))) => "int main (int argc, char *argv[]) { printf("%d arguments\n", argc); if (argc >= 1) printf(The first arg is %s\n", argv[1]); return 0; }
Если да, то это определенно выполнимо. Однако это не совсем тривиально.
Вот как. Хотя я не думаю, что версия s-выражения выглядела бы так же, как некоторые из вещей, которые вы там делали. –
Может быть, вы хотите что-то вроде ECL, который компилирует Common Lisp к C.
Посмотрите SC Tasuku Хираиши в. Его международные документы Лиспской конференции от 2005 и 2007 архивируются в архиве.org.
См. Его source repo, в частности examples.
Насколько я знаю, это лучшая из многих попыток привнести методы кодирования стиля S-Expression в другой проект Vanilla C.
Почему? ............ –
Не могли бы вы привести пример того, какие s-выражения вы хотите, чтобы код находился? ватина привела пример, но вы сказали, что это не совсем то, что вы хотели. Если формат не имеет значения, вы могли бы объяснить, почему вы хотите записать его как s-выражения? –