Todo
----

Version Update
--------------

setup.py, __init__.py, README, CHANGES
- Make sure _build_tables was run in pycparser/
- If PLY version changes, note it in README and ply/LICENSE

python setup.py sdist bdist_wheel

Copy the newly created tarball and untar it; check that the permissions of
Python files in the pycparser/ directory are OK. Check to see that lextab.py and
yacctab.py are there.

Now create a new virtualenv and in it install the tarball with
`pip install <tarballname>`. May need to install `wheel` first if seeing errors
about `bdist_wheel`.

See that pycparser is importable in the Python interpreter of this virtualenv;
run pycparser tests from this virtualenv.

After this it's OK to rerun `python3.6 -m twine upload dist/*` to push to PyPI
(older Pythons use a deprecated API for PyPI uploading).

- Tag in git. When pushing to GitHub, git push --tags

Misc
----

yacc optimization:
- If parsetab.py/pyc doesn't exist in the path, the table will be reconstructed
  anyway, regardless of the optimize parameter
- If it does exist:
  - If optimize=True, the table will be loaded unconditionally
  - If optimize=False, the table will be loaded only if it's older than the
    grammar

lex optimization:
- If optimize=False, the lexical table is re-computed and is not saved to a
  lextab file
- If optimize=True:
  - If lextab.py/pyc exists in the path, it will be loaded unconditionally
  - If lextab.py/pyc doesn't exist, it will be created and loaded
