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
- Run tox tests

python setup.py sdist

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>`. 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 setup.py sdist upload` 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
