作者dozer (piercing buddy?)
看板LinuxDev
标题Re: [问题] 引用直译语言的parser?
时间Fri Jan 9 16:22:21 2009
※ 引述《dozer (rezod)》之铭言:
: 比如说 我想要在一个类似resource file里面给expression
: e.g.
: [resource.rc]
: alpha = foo
: beta = alpha*10+300
: EOF
: 我希望我的程式在读这个input的时候
: 可以evaluate这个expression
: 也就是beta最後应该是 'foo*10+300' 计算後的结果
: 但是如果要自己写parser又觉得像是重新发明轮子
: 有没有人知道怎麽把python之类的直译语言
: 的parser直接拿来用呀? 还是这样其实会更麻烦?
自己回。
现在是用embedded Python,非常的简单好用!!!
Python的C API非常完整(如果你用的是C Python,整个interpreter
本来就是用C写的,对C的支援度当然好)之前有试着自己用Flex/Bison
写parser,虽然写的出来,但改起来真的很花时间;加上本身没有实做
程式语言直译器/编译器的经验,几乎是蒙着眼睛在做。直接引用现成的
interpreter的好处就是弹性大,好学,而且extend起来也真的容易
很多(我现在整个app是C/Python混着写,超方便!)
有兴趣可以参考官方文件
Python/C API Reference Manual
http://docs.python.org/c-api/index.html
Extending and Embedding the Python Interpreter
http://docs.python.org/extending/index.html
--
Westheimer's Discovery:
A couple of months in the laboratory can frequently save a
couple of hours in the library.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.94.118
※ 编辑: dozer 来自: 140.114.94.118 (01/09 16:23)
1F:→ dozer:p.s. 这边的embed跟嵌入式系统的embed是不同低XD 01/09 19:54
2F:推 bondalin:应该是一样的意思吧.. 01/10 13:14
3F:→ bondalin:差别是对象不同而已? 01/10 13:14
4F:→ dozer:对低:P 01/10 22:36
5F:→ dozer:只是怕有人以为是嵌在嵌入式系统的Python^^;;; 01/10 22:37
6F:推 easy1:"internal DSL" 01/13 04:08
7F:→ dozer:感觉是很大的学问................ 01/14 09:41