Python 3.6.3的完整语法规范如下:https://docs.python.org/3/reference/grammar.html
看起来EBNF附加了一些取自正则表达式的特殊结构,例如:()*
(重复零次或多次?)和()+
(重复一次或多次?)。
Python使用什么metasyntax以及可以找到其规范?
Python的语法在此file中定义(感谢@larsks)。但问题仍然存在 - 使用了什么符号?
答案 0 :(得分:2)
Python语法由源代码的Parser目录中的解析器解析。您可以在Makefile.pre中看到此信息。这会生成Include/graminit.[ch]
,例如Python/ast.c
以及Modules/parsermodule.c
。
语法的格式在bottom of pgen.c:
中描述输入是扩展BNF中的语法(使用*表示重复,+表示 至少重复一次,[]为可选部分,|替代品和 ()分组)。