'Given a rule name, creates an optional ply.yacc rule
for it. The name of the optional rule is
<rulename>_opt'

def _create_opt_rule(self, rulename):

    optname = (rulename + '_opt')
    def optrule(self, p):
        p[0] = p[1]
    optrule.__doc__ = ('%s    :    empty\n|    %s' % (optname, rulename))
    optrule.__name__ = ('p_%s' % optname)
    setattr(self.__class__, optrule.__name__, optrule)
