【 在 hgoldfish 的大作中提到: 】
: 瞄了一眼 c# 的博客。发现我也想过这个 source generator,
: 各种语言的宏,和 c++ 的 template 本质上都是在编译期生成代码。c 宏太过于简单,c++ template 则非常强大图灵完备。这两个办法都没有利用好语言本身的语法,而是生造了另外一套语法进去。而且 c++ 的 template<> 只拥有部分被描述代码的信息,qt 不得不搞了 moc 预编译分析 c++ 代码。无论怎么搞,C++ 的 template 都是半残,这条路走死了。
: lisp 以及各种函数式编程语言的宏运行在语法解析阶段,好处是灵活容易学习,坏处是太过于灵活. 每个人的 DSL 各不一样,很难看懂。
: ...................
你说的这个特性Scala里面就有,可以在代码里面直接拿到语法树做操作。
--
FROM 1.91.32.*