用python演示一个简单的AST(抽象语法树)
2014-10-06 12:25
218 查看
如果对'a + 3 * b'进行解释,当中a=2,b=5
代码非常easy,就不再进行具体的解释了。
输出结果为17
代码非常easy,就不再进行具体的解释了。
Num = lambda env, n: n Var = lambda env, x: env[x] Add = lambda env, a, b:_eval(env, a) + _eval(env, b) Mul = lambda env, a, b:_eval(env, a) * _eval(env, b) _eval = lambda env, expr:expr[0](env, *expr[1:]) env = {'a':2, 'b':5} tree = (Add, (Var, 'a'), (Mul, (Num, 3), (Var, 'b'))) print _eval(env, tree)
输出结果为17
相关文章推荐
- 飘逸的python - 一个简单的AST(抽象语法树)
- 用一个简单示例演示在python中调用C及C++
- javascript编写一个简单的编译器(理解抽象语法树AST)
- 一个非常简单完整的聊天室演示程序,推荐初学者下载
- 一个简单的python代理服务器源码分析
- Python源码分析2 - 一个简单的Python程序的执行
- 制作演示的福音,推荐屏幕录制软件:Adobe Captivate 2,特意使用这个录制一个简单的录制使用过程,让大家有直观印象
- C#事件演示程序1)——一个最简单的C#事件处理程序
- 搭建一个简单的Python的Web环境
- 一个简单的PYTHON代码
- 用Python写的一个简单的小说下载器
- VB面向对象编程的一个简单的演示程序
- 一个简单的演示SQL2005的查询通知的例子
- 用python的cmd模块写一个简单的shell
- 一个简单Anti演示代码
- 一个简单的注册c函数到python的包装器
- 一个简单的UrlRewrite示例[演示用,写给同事看的,VS2003环境]
- 一个简单的态机模式工作流演示
- IronPython for ASP.NET:使用IronPython创建一个简单的Web页面
- 一个简单的DFS(深度优先搜索)算法加剪枝技术的程序演示