我想在s表达式中编写C并使用编译时宏。有人知道有什么事吗?它应该将s表达式转换为标准C。
答案 0 :(得分:7)
相关:
答案 1 :(得分:2)
你是什么意思?有点像:
(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; }
如果是的话,是的,这绝对可行。但是,这并非完全无足轻重。
答案 2 :(得分:2)
也许你想要像ECL这样的东西,它将Common Lisp编译为C。
答案 3 :(得分:1)
看看Tasuku Hiraishi的SC。他的2005和2007的国际Lisp会议论文存档于archive.org。
查看他的source repo,特别是examples。
据我所知,这是将S-Expression风格编码实践纳入其他香草C项目的众多尝试中最好的。
答案 4 :(得分:0)
我知道这是一篇旧文章,但据记录,我认为这是所要的。
This project将以s表达式样式编写的c程序转换为C。如果设置正确,它可以很好地工作,甚至可以为您编译代码。
我不知道目前它产生的可读性最高的C代码输出。