我正在使用类似于 Python 的内置语言编写一个工具。我想让缩进在语法中有意义(以便行开头的制表符和空格代表命令的嵌套)。
做这个的最好方式是什么?
我之前写过递归下降和有限自动机解析器。
目前的CPython http://en.wikipedia.org/wiki/CPython的解析器似乎是 http://hg.python.org/cpython/file/tip/Parser/Python.asdl使用称为的东西生成ASDL http://asdl.sourceforge.net/.
关于您要求的缩进,完成 http://docs.python.org/2/reference/lexical_analysis.html#indentation使用特殊的词法分析器标记称为INDENT
and DEDENT
。要复制它,只需在词法分析器中实现这些标记(如果您使用堆栈来存储先前缩进行的起始列,这非常容易),然后像往常一样将它们插入到您的语法中(就像任何其他关键字或运算符标记一样) 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)