百科问答小站 logo
百科问答小站 font logo



如何使用 python 写一个简单的表达式解释器? 第1页

  

user avatar   liu-ji-27-94 网友的相关建议: 
      

eval只支持解析Python的表达式语法,并且存在注入式攻击漏洞。如果想要快速构建任意表达式语法的解释器,推荐使用pyparsing库。下面摘自它的GitHub Wiki

Combined with a fear/dismay at using regular expressions, I wanted an object-assembly model for building up parsers. Since then, tools of this style have come to be called PEG's, orParsing Expression Grammars. I also related to Python's operator overloading features, and so pyparsing has become an embedded DSL within Python, making heavy use of operators for grammar construction and call syntax for grammar element naming.

翻译过来就是:「由于使用正则表达式让我恐惧/沮丧,我希望能有一个用于构建解释器的面向对象的框架。从那时起,这种类型的工具逐渐被称做PEG(Parsing Expression Grammars,即解析表达式语法)。PyParasing已经成为嵌入在Python语法中的领域专用语言,并且引入了Python的运算符重载特性。通过它,你可以方便地使用运算符进行语法构造,并可以为可调用的语法产生式符号进行命名。」可以参考一下我的这篇文章:




  

相关话题

  如何入门 Python 爬虫? 
  其他程序员有像我一样遇到编程技术落伍的情况吗?一般一门技术多久会落伍? 
  VS2013如何在不使用插件的情况下显示引用数量? 
  如何更通俗地讲解Python的装饰器? 
  上网时,为什么感觉现代人除了我全都很懂编程或计算机? 
  用母语写代码是什么体验? 
  汉语编程语言意义何在? 
  tkinter可以做出多复杂的界面? 
  如何理解「由于脚本在服务器上执行,因此浏览器在不支持脚本的情况下就可以显示服务器端的文件」? 
  为什么大学C语言课不用linux的gcc编译器上,而是用vs呢? 

前一个讨论
《失控玩家》中的游戏有可能实现出来吗?
下一个讨论
读硕/博期间你积累了哪些重要的科研经验?





© 2025-04-15 - tinynew.org. All Rights Reserved.
© 2025-04-15 - tinynew.org. 保留所有权利