作为一项教育活动,我着手用Python编写Python词法分析器.
最终,我想实现一个可以自行运行的简单Python子集,因此我希望将此词法分析器用尽可能简单的Python子集编写,并尽可能少地导入.
我发现的与词法学习有关的教程(例如kaleidoscope)会向前看一个字符以确定接下来要使用的令牌,但是恐怕这对于Python来说是不够的(一方面,仅查看一个字符就无法区分分隔符或运算符,或者在标识符和关键字之间;此外,对我来说,处理缩进看起来像是一种新的野兽;等等).
我发现这个link非常有帮助,但是,当我尝试实现它时,我的代码很快就开始看起来很丑陋,并且带有许多if语句和个案工作,而且似乎这不是“正确”的方法它.
有没有什么好的资源可以帮助/教我lex这种代码(我也想完全解析它,但是首先要正确吗?)?
我上面没有使用解析器生成器,但我希望生成的Python代码使用Python的简单子集,并且还应合理地自我包含,这样我至少可以梦想拥有一种能够自我解释的语言. (例如,根据我对example的了解,如果我使用ply,我将需要我的语言来解释ply包以及自己解释,这会使事情变得更加复杂).
解决方法:
看一下http://pyparsing.wikispaces.com/,也许您发现它对您的任务很有用.
标签:lexical-analysis,python 来源: https://codeday.me/bug/20191201/2079782.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。