Python使用什么metasyntax表示法?

时间:2017-11-06 15:48:22

标签: python parsing interpreter

Python 3.6.3的完整语法规范如下:https://docs.python.org/3/reference/grammar.html

看起来EBNF附加了一些取自正则表达式的特殊结构,例如:()*(重复零次或多次?)和()+(重复一次或多次?)。

Python使用什么metasyntax以及可以找到其规范?

更新

Python的语法在此file中定义(感谢@larsks)。但问题仍然存在 - 使用了什么符号?

1 个答案:

答案 0 :(得分:2)

Python语法由源代码的Parser目录中的解析器解析。您可以在Makefile.pre中看到此信息。这会生成Include/graminit.[ch],例如Python/ast.c以及Modules/parsermodule.c

语法的格式在bottom of pgen.c

中描述
  

输入是扩展BNF中的语法(使用*表示重复,+表示   至少重复一次,[]为可选部分,|替代品和   ()分组)。