由于python支持某些代数形式,因此您可以执行以下 *** 作:
eval("1 + 1")
但是,这允许输入执行环境中定义的任何内容:
eval("__import__('sys').exit(1)")
另外,如果您想支持python不支持的功能,则该方法将失败:
x³ + y² + c----------- = 0 z
代替执行此 *** 作,您可以使用ply实现标记器和解析器。评估“ 1 +1”之类的内容不应超过十行。
您还可以手动实现令牌生成器和解析器。了解有关LL和LR解析器的信息。在尝试进行此 *** 作之前,最好先学习使用解析器生成器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)