Fixed: NameError: name 'locale_encoding' is not defined
File /bin/rst2html.py, line 17, in <module>
from docutils.core import publish_cmdline, default_description
File /usr/lib/python2.7/site-packages/docutils/core.py, line 20, in <module>
from docutils import frontend, io, utils, readers, writers
File /usr/lib/python2.7/site-packages/docutils/frontend.py, line 41, in <module>
import docutils.utils
File /usr/lib/python2.7/site-packages/docutils/utils/__init__.py, line 20, in <module>
import docutils.io
File /usr/lib/python2.7/site-packages/docutils/io.py, line 18, in <module>
from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
File /usr/lib/python2.7/site-packages/docutils/utils/error_reporting.py, line 60, in <module>
codecs.lookup(locale_encoding or '') # None -> ''
NameError: name 'locale_encoding' is not defined
.. -*- coding: utf-8; -*-
=====
BNF
=====
What is BNF?
============
.. contents::
:local:
BNF is an acronym for "Backus Naur Form". John Backus and Peter Naur introduced
for the first time a formal notation to describe the syntax of a given language
(ALGOL 60 programming language).
See: :rfc:`2234`.
BNF syntax
==========
The meta-symbols of BNF are:
``::=``
Meaning "is defined as".
``|``
Meaning "or".
``<``, ``>``
Angle brackets used to surround category names (some times skipped).
``[``, ``]``
Optional items are enclosed in.
``{``, ``}``
Repetitive items (zero or more times) are enclosed in.
``"abc..."``
Terminals are enclosed in to distinguish them from meta-symbols.
BNF in BNF
==========
::
syntax ::= { rule }
rule ::= identifier "::=" expression
expression ::= term { "|" term }
term ::= factor { factor }
factor ::= identifier |
quoted_symbol |
"(" expression ")" |
"[" expression "]" |
"{" expression "}"
identifier ::= letter { letter | digit }
quoted_symbol ::= """ { any_character } """