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 -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
