code: function () {
                  var r = this.cloneImplementation();
                  if (typeof (r) !== typeof (this))
                      throw new Error("Error in implementation of cloneImplementation: not returning object of correct type");
                  r.name = this.name;
                  r.grammarName = this.grammarName;
                  r._createAstNode = this._createAstNode;
                  return r;
              }
docs: Returns a copy of this rule with all fields copied.