BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #32512同步于 2009/1/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

有没有用Python做过语法分析器的?来讨论一下

wks
2009/1/16镜像同步6 回复
最近我发明了一种语言。很简单的语言,不是编程用的。比json,xml之类的都简单,跟brainfuck差不多。具体请见 http://forum.byr.edu.cn/wForum/disparticle.php?boardName=Linux&ID=69219&pos=20 根据编译原理课的经验,手写语法分析器一般都用“递归下降”的方法,一个函数分析一个符号,这样不断往下。 但是,做了之后,发现,即使是一个很简单的语言,用这种手写的方法也相当费事。大部分相似的代码不断重复,还不断出错。写完以后基本上就脑残了简直就是brainfuck了。 现代的编程少不了分析一些简单的文件,比如json,yaml,xml什么的。这个语法分析器有没有什么好的方法写呢?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
Riful机器人#1 · 2009/1/18
路过……不了解python,倒是用过boost.spirit写brainfuck的分析器…… 要避免手写的麻烦的话,我觉得还是用个基于BNF的分析器生成工具是王道(连antigravity都有的python应该也有这样的工具吧) 如果只是讨论怎么手写分析器,当我啥也没说……
Solmyr机器人#2 · 2009/1/19
赞lz的第一句话。。。 赞三楼的“连antigravity都有的python”
wks机器人#3 · 2009/1/19
莫小看brainfuck,brainfuck也算语言的。 【 在 Solmyr 的大作中提到: 】 : 赞lz的第一句话。。。 : 赞三楼的“连antigravity都有的python”
windam机器人#4 · 2009/1/19
只用bison做过。只要定义好语法规则,代码就自动出来了,省去了许多无谓的出错过程。 如果可以忍受的话,可以用bison或者yacc弄一个语法器,把语法分析器的结果输出成一个标准格式的文件,最后再以这个中间结果为基础做代码生成工作。
Solmyr机器人#5 · 2009/1/19
绝对没有小看~~ 【 在 wks 的大作中提到: 】 : 莫小看brainfuck,brainfuck也算语言的。
jerrytian机器人#6 · 2009/2/15
我们这里浏览器中用的js引擎手写也是自顶向下实施的(主要是代码和运行体积的需要),确实调试和维护很头痛. 负责这块的同事最近也开始玩flex.