Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Python中选择用于解析的子集_Python_Parsing_Bison_Subset_Openmodelica - Fatal编程技术网

如何从Python中选择用于解析的子集

如何从Python中选择用于解析的子集,python,parsing,bison,subset,openmodelica,Python,Parsing,Bison,Subset,Openmodelica,我正在做作业,需要开发一个python到openmodelica的翻译器。为此,我在初始阶段使用flex和bison。最初,我需要定义python语言的一个子集,在这个子集上我可以执行整个演示。我不熟悉Python语言,有人能建议我如何定义Python语言的子集吗?谢谢。既然您可能对用Python本身编写它不感兴趣,我想这是最好的起点。它定义了语言的整个语法。因此,这可能是一个很好的起点,可以找到您想要自己实现的语言的一些特性;然后你需要用你选择的语言编写你自己的语法和语法分析器 否则,您可以使

我正在做作业,需要开发一个python到openmodelica的翻译器。为此,我在初始阶段使用flex和bison。最初,我需要定义python语言的一个子集,在这个子集上我可以执行整个演示。我不熟悉Python语言,有人能建议我如何定义Python语言的子集吗?谢谢。

既然您可能对用Python本身编写它不感兴趣,我想这是最好的起点。它定义了语言的整个语法。因此,这可能是一个很好的起点,可以找到您想要自己实现的语言的一些特性;然后你需要用你选择的语言编写你自己的语法和语法分析器

否则,您可以使用内置函数来实际解析真实的Python代码,并将其提取到示例中


但是如果你只需要一个子集,我认为拥有完整的语言能力对你没有任何好处。所以你最好从真正的语法子集开始。了解您想要接管哪些功能的一个好方法可能是自己使用该语言。做一些教程等,看看基本语法是如何工作的。

这完全取决于您想要演示的内容。Python是一种功能齐全的语言(取决于您使用的版本)。因此,您应该实现的语法和语义子集完全取决于您想在
初始阶段演示的内容。您可能想看看示例,其中人们为各种不同的Python子集编写了解析器。这并不是因为pyparsing代码在bison中对您有很大的帮助,而是因为他们选择的子集可能是Python子集的一个不错的例子。另外,是否有一个很好的理由不只是用Python编写它,并依靠和相关的stdlib模块为您完成所有的艰苦工作?我使用的是版本3.3。最初,我需要对启动方式类似的程序进行采样(例如,所有程序都应该从“导入”开始)。所以,我需要在相同的start语句的基础上定义子集。