需要一个例子来说明赋值运算符的 Go 语法如何使用使用 EBNF 指定的语法规则

Need an example for how Go syntax for assignment operator uses the grammar rules specified using EBNF

如文档中所述,Go 中的语法是使用扩展巴科斯-瑙尔格式 (EBNF) 指定的:

1
2
3
4
5
6
7
Production  = production_name"=" [ Expression ]"." .
Expression  = Alternative {"|" Alternative } .
Alternative = Term { Term } .
Term        = production_name | token ["a€|" token ] | Group | Option | Repetition .
Group       ="(" Expression")" .
Option      ="[" Expression"]" .
Repetition  ="{" Expression"}" .

我试图了解 Go 语法语法是如何定义的,如何使用这些语法规则分解/推导/理解表达式 i++i+=1。为了说明的目的,如何逐步替换这些生产规则?


表达式 i++ 使用 IncDec 语句的语法规则:

1
IncDecStmt = Expression ("++" |"--" ) .

这里,production_name 将是 IncDecStmtTerm 将是 "++""--"