没有合适的资源?快使用搜索试试~ 我知道了~
首页Python Lex Yacc(python语法解析)
Python Lex Yacc(python语法解析)
需积分: 50 29 下载量 191 浏览量
更新于2023-03-16
评论 3
收藏 14.34MB PDF 举报
LY是纯粹由Python实现的Lex和yacc(流行的编译器构建工具)。PLY的设计目标是尽可能的沿袭传统lex和yacc工具的工作方式,包括支持LALR(1)分析法、提供丰富的输入验证、错误报告和诊断。因此,如果你曾经在其他编程语言下使用过yacc,你应该能够很容易的迁移到PLY上。
资源详情
资源评论
资源推荐
2016/7/10
【译】Python Lex Yacc手册
http://www.pchou.info/open-source/2014/01/18/52da47204d4cb.html 1/67
【
译
】
Python Lex Yacc
手
册
January 18th, 2014
本
文
是
PLY (http://www.dabeaz.com/ply/ply.html) (Python Lex-Yacc)
的
中
文
翻
译
版
。
转
载
请
注
明
出处
。
如
果
你
从
事
编
译
器
或解
析
器
的
开
发
工
作
,
你
可
能
对
lex
和
yacc
不
会
陌
生
,
PLY
(http://www.dabeaz.com/ply/)
是
David Beazley
实
现
的
基
于
Python
的
lex
和
yacc
。
作
者
最著
名
的
成
就可
能
是
其
撰
写
的
Python Cookbook, 3rd Edition
。
我
因
为
偶
然
的
原
因
接
触
了
PLY
,
觉
得
是
个
好
东
西
,
但
是似
乎国
内
没
有
相
关
的
资
料
。
于
是
萌
生
了
翻
译
的
想
法
,
虽
然
内
容
不
算
多
,
但
是
由于
能
力
有
限
,
很
多概
念
不
了
解
,
还
专
门
补
习
了
编
译
原
理
,
这
对
我
有
很
大
帮
助
。
为
了
完
成
翻
译
,
经
过
初
译
,
复
审
,
排
版
等
,
花
费
我
很
多
时
间
,
最
终
还
是
坚
持
下
来
了
,
希
望
对
需
要
的
人
有
所
帮
助
。
另
外
,
第
一
次大
规
模
翻
译英
文
,
由于
水
平
有
限
,
如
果
错
误
或
者
不
妥
的地
方
还
请
指正
,
非
常
感
谢
。
0
一
些
翻
译
约
定
token
标
记
context free grammar
上
下
文无
关
文
法
syntax directed translation
语
法
制
导的
翻
译
ambiguity
二
义
terminals
终
结
符
non-terminals
非
终
结
符
2016/7/10
【译】Python Lex Yacc手册
http://www.pchou.info/open-source/2014/01/18/52da47204d4cb.html 2/67
documentation string
文
档
字
符
串
(
python
中
的
_docstring_
)
shift-reduce
移
进
-
归
约
Empty Productions
空
产
生式
Panic mode recovery
悲
观恢
复
模
式
1
前
言
和
预
备
本
文
指
导
你
使
用
PLY
进
行
词
法分
析
和
语
法
解
析
的
,
鉴
于
解
析
本
身是
个复
杂
性
的
事
情
,
在
你
使
用
PLY
投
入
大
规
模
的
开
发
前
,
我
强
烈
建
议
你
完
整
地
阅
读
或
者
浏
览
本
文
档
。
PLY-3.0
能
同
时
兼
容
Python2
和
Python3
。
需
要
注
意
的
是
,
对
于
Python3
的
支
持
是
新
加
入
的
,
还
没
有
广
泛
的
测
试
(
尽
管
所
有
的
例
子
和
单
元
测
试
都
能
够
在
Pythone3
下
通
过
)
。
如
果
你
使
用
的
是
Python2
,
应
该
使
用
Python2.4
以
上
版
本
,
虽
然
,
PLY
最
低
能
够
支
持
到
Python2.2
,
不
过
一
些
可
选
的
功
能
需
要
新
版
本
模
块
的
支
持
。
2
介
绍
PLY
是
纯粹
由
Python
实
现
的
Lex
和
yacc
(
流
行
的
编
译
器
构
建
工
具
)
。
PLY
的
设
计
目
标
是
尽
可
能
的
沿
袭
传
统
lex
和
yacc
工
具
的
工
作
方
式
,
包
括
支
持
LALR(1)
分
析
法
、
提
供
丰
富
的
输
入
验
证
、
错
误
报
告
和
诊
断
。
因
此
,
如
果
你
曾
经
在
其
他
编程
语言
下
使
用
过
yacc
,
你
应
该
能
够很
容
易
的
迁
移
到
PLY
上
。
2001
年
,
我
在芝
加
哥
大
学
教
授
“
编
译
器
简介
”
课
程
时
开
发
了
的
早
期
的
PLY
。
学
生
们
使
用
Python
和
PLY
构
建
了
一
个
类
似
Pascal
的
语言
的
完
整
编
译
器
,
其
中
的
语言
特
性
包
括
:
词
法分
析
、
语
法分
析
、
类
型
检
查
、
类
型
推
断
、
嵌
套
作
用域
,
并
针
对
SPARC
处
理
器
生
成
目
标
代
码
等
。
最
终
他
们
大
约
实
现
了
30
种
不
同
的
编
译
器
!
PLY
在
接
口
设
计
上
影
响
使
用
的
问题
也
被
学
生
们
所
提
出
。
从
2001
年
以
来
,
PLY
继
续
从
用
户
的
反
馈
中
不
断改
进
。
为
了
适
应
对
未
来
的
改
进
需
求
,
PLY3.0
在原
来
基
础
上
进
行
了
重
大的
重
构
。
2016/7/10
【译】Python Lex Yacc手册
http://www.pchou.info/open-source/2014/01/18/52da47204d4cb.html 3/67
由于
PLY
是
作
为
教
学
工
具来开
发
的
,
你
会
发
现
它
对
于
标
记
和
语
法
规
则
是
相
当
严
谨
的
,
这
一
定
程
度
上是
为
了
帮
助
新
手
用
户
找
出
常
见
的
编程
错
误
。
不
过
,
高
级
用
户
也
会
发
现
这
有
助
于
处
理
真
实
编程
语言
的
复
杂
语
法
。
还
需
要
注
意
的
是
,
PLY
没
有
提
供
太
多
花
哨
的东
西
(
例
如
,
自
动
构
建
抽
象
语
法
树
和
遍
历
树
),
我
也
不
认
为
它是
个分
析
框
架
。
相
反
,
你
会
发
现
它是
一
个
用
Python
实
现
的
,
基
本
的
,
但
能
够
完
全
胜
任
的
lex/yacc
。
本
文
的
假
设
你
多
少熟
悉
分
析
理
论
、
语
法
制
导的
翻
译
、
基
于
其
他
编程
语言
使
用
过
类
似
lex
和
yacc
的
编
译
器
构
建
工
具
。
如
果
你
对
这
些
东
西
不
熟
悉
,
你
可
能
需
要
先
去
一
些
书
籍
中
学习
一
些
基
础
,
比
如
:
Aho, Sethi
和
Ullman
的
《
Compilers: Principles,
Techniques, and Tools
》
(
《
编
译
原
理
》
),
和
O’Reilly’
出
版
的
John Levine
的
《
lex
and yacc
》。
事实上
,
《
lex and yacc
》
和
PLY
使
用
的
概
念
几
乎
相
同
。
3 PLY
概
要
PLY
包
含
两
个独
立
的
模
块
:
lex.py
和
yacc.py
,
都
定
义
在
ply
包
下
。
lex.py
模
块
用
来
将
输
入
字
符
通
过
一
系
列
的
正则
表
达
式
分
解
成标
记
序
列
,
yacc.py
通
过
一
些
上
下
文无
关
的
文
法
来
识
别编程
语言语
法
。
yacc.py
使
用
LR
解
析
法
,
并
使
用
LALR(1)
算
法
(
默
认
)
或
者
SLR
算
法
生
成
分
析
表
。
这
两
个
工
具
是
为
了
一
起
工
作
的
。
lex.py
通
过
向
外
部
提
供
token()
方法
作
为
接
口
,
方
法
每
次
会
从
输
入
中
返
回
下
一
个
有
效
的
标
记
。
yacc.py
将
会
不
断
的调
用
这
个方法
来
获
取
标
记
并
匹配
语
法
规
则
。
yacc.py
的的
功
能
通
常
是生
成
抽
象
语
法
树
(AST)
,
不
过
,
这
完
全取
决
于用
户
,
如
果
需
要
,
yacc.py
可
以
直
接
用
来
完
成
简
单的
翻
译
。
就
像相
应
的
unix
工
具
,
yacc.py
提
供
了
大
多
数
你
期
望
的
特
性
,
其
中
包
括
:
丰富
的错
误
检
查
、
语
法
验
证
、
支
持
空
产
生式
、
错
误
的
标
记
、
通
过
优
先
级
规
则
解
决
二
义
性
。
事实
上
,
传
统
yacc
能
够
做
到的
PLY
都
应
该
支
持
。
yacc.py
与
Unix
下
的
yacc
的
主
要
不
同
之
处
在
于
,
yacc.py
没
有
包
含
一
个独
立
的代
码
生
成
器
,
而
是
在
PLY
中
依
赖
反
射
来
构
建
词
法分
析
器
和
语
法
解
析
器
。
不
像
传
统
的
lex/yacc
工
具
需
要一
个独
立
的
输
入
文
件
,
并
将
之
转
化
成
一
个
源
文
件
,
Python
程
序
必
须
是
一
个
2016/7/10
【译】Python Lex Yacc手册
http://www.pchou.info/open-source/2014/01/18/52da47204d4cb.html 4/67
可
直
接
可
用
的
程
序
,
这
意
味
着
不
能
有
额
外
的
源
文
件
和
特
殊
的创
建
步
骤
(
像
是
那
种执
行
yacc
命
令
来
生
成
Python
代
码
)
。
又由于
生
成
分
析
表
开
销
较
大
,
PLY
会缓
存
生
成
的
分
析
表
,
并
将
它
们
保
存
在
独
立
的
文
件
中
,
除
非
源
文
件
有
变
化
,
会
重
新
生
成
分
析
表
,
否
则
将
从
缓
存
中直
接
读
取
。
4 Lex
lex.py
是
用
来
将
输
入
字
符
串
标
记
化
。
例
如
,
假
设
你
正在
设
计
一
个
编程
语言
,
用
户
的
输
入
字
符
串
如
下
:
x = 3 + 42 * (s - t)
标
记
器
将
字
符
串
分割
成
独
立
的
标
记
:
'x','=', '3', '+', '42', '*', '(', 's', '-', 't', ')'
标
记
通
常
用一
组
名
字
来
命名
和
表
示
:
'ID','EQUALS','NUMBER','PLUS','NUMBER','TIMES','LPAREN','ID','MINU
S','ID','RPAREN'
将
标
记
名
和
标
记
值
本
身
组
合
起
来
:
('ID','x'), ('EQUALS','='), ('NUMBER','3'),('PLUS','+'), ('NUMBER','4
2), ('TIMES','*'),('LPAREN','('), ('ID','s'),('MINUS','-'),('I
D','t'), ('RPAREN',')
正则
表
达
式是
描
述
标
记
规
则
的典
型
方法
,
下
一
节
展
示
如
何
用
lex.py
实
现
。
4.1 Lex
的
例
子
2016/7/10
【译】Python Lex Yacc手册
http://www.pchou.info/open-source/2014/01/18/52da47204d4cb.html 5/67
下
面
的
例
子
展
示
了
如
何
使
用
lex.py
对
输
入
进
行
标
记
剩余66页未读,继续阅读
gyl0511
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0