如何翻译成antlr4语法ObjectLiteral[Yield]?

How to translate to antlr4 grammar ObjectLiteral[Yield]?

我正在尝试翻译来自:

的 es6 语法

我的问题是很多声明都包含这样的内容:

ObjectLiteral[Yield] :
 { }
 { PropertyDefinitionList[?Yield] }
 { PropertyDefinitionList[?Yield] , }

我想知道前面几行有没有翻译成antlr4的。

一种方法是遵循规范 Grammar Notation 部分中的定义。也就是说,左侧有一个参数的产生式是两个无参数产生式的缩写,一个代表每个可能的 'setting' 参数。

例如,

ObjectLiteral[Yield] :
  { }
  { PropertyDefinitionList[?Yield] }
  { PropertyDefinitionList[?Yield] , }

是两个作品的缩写:

ObjectLiteral :
  { }
  { PropertyDefinitionList }
  { PropertyDefinitionList , }

ObjectLiteral_Yield :
  { }
  { PropertyDefinitionList_Yield }
  { PropertyDefinitionList_Yield , }