博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tinypy 语法分析过程
阅读量:4294 次
发布时间:2019-05-27

本文共 489 字,大约阅读时间需要 1 分钟。

   tinypy的文档真的很难找(也许是我搜索技术太烂了。。。),官方说它是一个python的子集,支持的功能如下:

1.类和单继承

2.可变参数和关键字参数的函数

3.字符串,列表,字典,数字

4.模块,列表解析

5.异常的回溯

6.一些内建函数

实现语法分析的源文件是parse.py

tinypy采用了自顶向下算符优先分析法(Top Down Operator Precedence),虽然官方文档很少,但是关于算符优先分析法的描述网上却有很大很好的资料

自顶向下算符优先分析法适合做函数式语言的语法分析,是由1973年波士顿Vaughan Pratt发表的,它是一种结合了递归下降和算符优先方法的解析技术。

详细资料可以参考一篇翻译的文章

parse.py在完成语法分析之后会形成一个抽象语法树,然后将工作将给代码生成的程序完成。

下面是一个抽象语法数的截图:

源文件:

import aclass T(d):  def __init__(self):passdef t2(a,b=2,*c,**d):  c[0]=[a,b]  d['name']=ca=t2()-t1()

你可能感兴趣的文章
JVM理论
查看>>
JVM内存模型简述
查看>>
从一个Java对象看JVM内存模型及对象生命周期
查看>>
为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?
查看>>
JDK常用监控指令和监控工具分析及OutOfMemory异常分析
查看>>
使用线程池注意事项
查看>>
java线程池理论知识拾遗
查看>>
原码反码补码,位运算,或与非
查看>>
IntelliJ IDEA普通项目添加pom.xml,转变为Maven项目
查看>>
ThreadPoolExecutor部分方法解读
查看>>
Java8 新特性 lambda表达式
查看>>
ArrayList与LinkedList的性能差别
查看>>
Tomcat类加载机制
查看>>
for(;;) and while(true)
查看>>
CountDownLatch:闭锁
查看>>
关于系统与系统间调用时的逻辑健壮性
查看>>
notepad++的使用
查看>>
Spring使用@Value注解各种类型的值(Map,List,Set,数组,基本数据类型)
查看>>
搞懂Java ArrayList原码
查看>>
时间复杂度到底怎么算
查看>>