2024-10-08  rocky <rb@dustyfeet.com>

	* MANIFEST.in, THANKS: Add a THANKS file

2024-10-08  rocky <rb@dustyfeet.com>

	* .editorconfig, .isort.cfg, .pre-commit-config.yaml, .travis.yml,
	NEW-FEATURES.rst, README.rst, README2.rst, setup.cfg: Administrivia
	...  Add usual set of checking tools Remove TravisCI config Fold
	README2.rst into README

2024-10-08  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst Go over grammar

2024-10-08  R. Bernstein <rocky@users.noreply.github.com>

	* README.rst: Update README.rst Go over grammar.

2024-10-08  rocky <rb@dustyfeet.com>

	* NEW-FEATURES.rst, README.rst,
	admin-tools/how-to-make-a-release.md: Go over documentation portion
	of code.

2024-10-07  rocky <rb@dustyfeet.com>

	* admin-tools/pyenv-2.4-2.7-versions: Drop minor off of PyPy for 2.7

2024-10-07  rocky <rb@dustyfeet.com>

	* admin-tools/how-to-make-a-release.md: Note one more step

2024-10-07  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #19 from rocky/add-github-CI Try workflows CI

2024-10-07  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #18 from rocky/add-pyproject.toml Add rudimentary pytoml setup and ...

2024-10-07  rocky <rb@dustyfeet.com>

	* .circleci/config.yml: Merge hell

2024-10-07  rocky <rb@dustyfeet.com>

	* : commit b12a4ab11bf4d3d8633ae818ebdaedbe195f84fc Author: R.
	Bernstein <rocky@users.noreply.github.com> Date:   Mon Oct 7
	11:32:57 2024 -0400

2024-10-07  R. Bernstein <rocky@users.noreply.github.com>

	* .circleci/config.yml: Add .circleci/config.yml

2024-10-07  rocky <rb@dustyfeet.com>

	* .circleci/config.yml: Correct CircleCI config

2024-10-07  rocky <rb@dustyfeet.com>

	* LICENSE, Makefile, appveyor.yml, appveyor/install.ps1,
	appveyor/run_with_env.cmd, pyproject.toml, requirements-dev.txt,
	requirements.txt, setup.py, {example =>
	spark_parser/example}/README.md, {example =>
	spark_parser/example}/expr/README.md, {example =>
	spark_parser/example}/expr/expr.py, {example =>
	spark_parser/example}/expr/expr1.txt, {example =>
	spark_parser/example}/expr/expr2.txt, {example =>
	spark_parser/example}/expr2/README.md, {example =>
	spark_parser/example}/expr2/__init__.py, {example =>
	spark_parser/example}/expr2/eval.py, {example =>
	spark_parser/example}/expr2/expr_parser.py, {example =>
	spark_parser/example}/expr2/scanner.py, {example =>
	spark_parser/example}/expr2/test_grammar.py, {example =>
	spark_parser/example}/gdb-loc/.gitignore, {example =>
	spark_parser/example}/gdb-loc/Makefile, {example =>
	spark_parser/example}/gdb-loc/README.md, {example =>
	spark_parser/example}/gdb-loc/gdbloc/__init__.py, {example =>
	spark_parser/example}/gdb-loc/gdbloc/parser.py, {example =>
	spark_parser/example}/gdb-loc/gdbloc/scanner.py, {example =>
	spark_parser/example}/gdb-loc/gdbloc/semantics.py, {example =>
	spark_parser/example}/gdb-loc/gdbloc/tok.py, {example =>
	spark_parser/example}/gdb-loc/pytest/test_parser.py, {example =>
	spark_parser/example}/gdb-loc/pytest/test_scanner.py, {example =>
	spark_parser/example}/gdb-loc/pytest/test_semantics.py, {example =>
	spark_parser/example}/gdb-loc/setup.py, {example =>
	spark_parser/example}/python2/.gitignore, {example =>
	spark_parser/example}/python2/Makefile, {example =>
	spark_parser/example}/python2/README.md, {example =>
	spark_parser/example}/python2/__init__.py, {example =>
	spark_parser/example}/python2/format-python.py, {example =>
	spark_parser/example}/python2/py2_format.py, {example =>
	spark_parser/example}/python2/py2_parser.py, {example =>
	spark_parser/example}/python2/py2_scan.py, {example =>
	spark_parser/example}/python2/py2_token.py, {example =>
	spark_parser/example}/python2/python26.gr, {example =>
	spark_parser/example}/python2/reflow.py, {example =>
	spark_parser/example}/python2/test/Makefile, {example =>
	spark_parser/example}/python2/test/format/assert.py, {example =>
	spark_parser/example}/python2/test/format/assert.right, {example =>
	spark_parser/example}/python2/test/format/def.py, {example =>
	spark_parser/example}/python2/test/format/def.right, {example =>
	spark_parser/example}/python2/test/format/exec.py, {example =>
	spark_parser/example}/python2/test/format/exec.right, {example =>
	spark_parser/example}/python2/test/format/expr.py, {example =>
	spark_parser/example}/python2/test/format/expr.right, {example =>
	spark_parser/example}/python2/test/format/global.py, {example =>
	spark_parser/example}/python2/test/format/global.right, {example =>
	spark_parser/example}/python2/test/format/if.py, {example =>
	spark_parser/example}/python2/test/format/if.right, {example =>
	spark_parser/example}/python2/test/format/imports.py, {example =>
	spark_parser/example}/python2/test/format/imports.right, {example
	=> spark_parser/example}/python2/test/format/while.py, {example =>
	spark_parser/example}/python2/test/format/while.right, {example =>
	spark_parser/example}/python2/test/format/with.py, {example =>
	spark_parser/example}/python2/test/format/with.right, {example =>
	spark_parser/example}/python2/test/helper.py, {example =>
	spark_parser/example}/python2/test/parse/assert.py, {example =>
	spark_parser/example}/python2/test/parse/assert.right, {example =>
	spark_parser/example}/python2/test/parse/def.py, {example =>
	spark_parser/example}/python2/test/parse/def.right, {example =>
	spark_parser/example}/python2/test/parse/exec.py, {example =>
	spark_parser/example}/python2/test/parse/exec.right, {example =>
	spark_parser/example}/python2/test/parse/global.py, {example =>
	spark_parser/example}/python2/test/parse/global.right, {example =>
	spark_parser/example}/python2/test/parse/if.py, {example =>
	spark_parser/example}/python2/test/parse/if.right, {example =>
	spark_parser/example}/python2/test/parse/imports.py, {example =>
	spark_parser/example}/python2/test/parse/imports.right, {example =>
	spark_parser/example}/python2/test/parse/while.py, {example =>
	spark_parser/example}/python2/test/parse/while.right, {example =>
	spark_parser/example}/python2/test/scan/.gitignore, {example =>
	spark_parser/example}/python2/test/scan/expr1.py, {example =>
	spark_parser/example}/python2/test/scan/expr1.right, {example =>
	spark_parser/example}/python2/test/scan/indent1.py, {example =>
	spark_parser/example}/python2/test/scan/indent1.right, {example =>
	spark_parser/example}/python2/test/scan/syms.py, {example =>
	spark_parser/example}/python2/test/scan/syms.right, {example =>
	spark_parser/example}/python2/test/test_class.py, {example =>
	spark_parser/example}/python2/test/test_format.py, {example =>
	spark_parser/example}/python2/test/test_format_inline.py, {example
	=> spark_parser/example}/python2/test/test_parse.py, {example =>
	spark_parser/example}/python2/test/test_parse_inline.py, {example
	=> spark_parser/example}/python2/test/test_scan.py, {example =>
	spark_parser/example}/python2/test/test_scan_inline.py,
	spark_parser/version.py: Add rudimentary pytoml setup and ...  * remove appveyor stuff, and requirements*.txt * Need to move example into spark_parser now.  * Bump version

2024-10-05  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py: Remove illegal escape sequences

2024-10-05  rocky <rb@dustyfeet.com>

	* admin-tools/{check-older-versions.sh =>
	check-2.4-2.7-versions.sh}, admin-tools/check-3.3-3.5-versions.sh,
	admin-tools/check-3.6-3.10-versions.sh,
	admin-tools/{check-newer-versions.sh => check-newest-versions.sh}:
	Administrivia: Add check programs

2024-10-04  rocky <rb@dustyfeet.com>

	* admin-tools/check-3.0-3.2-versions.sh: Add 3.0-3.2 check program

2024-10-04  rocky <rb@dustyfeet.com>

	* admin-tools/.gitignore: More ignore

2024-10-03  rocky <rb@dustyfeet.com>

	* admin-tools/pyenv-newest-versions: Administriva ...  add Python test list for master

2024-10-03  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #17 from rocky/convert-to-pytest Use pytest for unit testing

2024-10-03  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #16 from gdesmar/iterative_buildTree Make GenericParser's buildTree iterative instead of recursive

2024-10-03  rocky <rb@dustyfeet.com>

	* admin-tools/merge-for-2.4.sh, admin-tools/merge-for-3.0.sh,
	admin-tools/merge-for-3.3.sh, admin-tools/merge-for-3.6.sh,
	admin-tools/pyenv-2.4-2.7-versions,
	admin-tools/pyenv-3.0-3.2-versions,
	admin-tools/pyenv-3.3-3.5-versions,
	admin-tools/pyenv-3.6-3.10-versions, admin-tools/setup-master.sh,
	admin-tools/setup-python-3.0.sh, admin-tools/setup-python-3.3.sh,
	admin-tools/setup-python-3.6.sh: Start separating code into version
	branches

2024-10-02  gdesmar <75089569+gdesmar@users.noreply.github.com>

	* spark_parser/spark.py: Make GenericParser's buildTree iterative
	instead of recursive

2024-07-21  rocky <rb@dustyfeet.com>

	* admin-tools/setup-master.sh: Bump and simplify default version

2024-07-21  rocky <rb@dustyfeet.com>

	* NEWS.md: Fix some typos

2024-07-17  rocky <rb@dustyfeet.com>

	* admin-tools/setup-python-2.4.sh: Administriva: branch name has
	changed

2023-12-17  rocky <rb@dustyfeet.com>

	* admin-tools/pyenv-newer-versions: Add some newer versions

2023-05-29  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: lint a little bit

2022-03-09  rocky <rb@dustyfeet.com>

	* spark_parser/__init__.py, test/test_grammar.py, test/test_misc.py:
	__init__.py lint

2022-02-11  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage: spark-parser-coverage --path is now an
	argument

2022-02-09  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage: Handle SPARK_PARSER_COVERAGE more
	gracefully

2022-01-03  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage, setup.py, spark_parser/__init__.py,
	spark_parser/version.py: VERSION -> __version__ align with modern practice.

2020-07-06  rocky <rocky@gnu.org>

	* admin-tools/setup-master.sh: Master default Python is 3.7

2020-07-04  rocky <rocky@gnu.org>

	* example/expr2/eval.py, example/expr2/expr_parser.py,
	example/expr2/scanner.py: Simplify and fill out expr2

2020-07-03  rocky <rocky@gnu.org>

	* example/expr2/__init__.py, example/expr2/eval.py,
	example/expr2/test_grammar.py: Small improvements to expr2 example.  * test_grammar.py: Fix for current API and be more descriptive about   what we are checking.  * eval.py: convert to int, float, complex as indicated by the
	literal * Blacken some buffers

2020-05-22  rocky <rocky@gnu.org>

	* setup.py: blacken an up date setup.py

2020-05-21  rocky <rocky@gnu.org>

	* appveyor.yml: Appveyor fixup

2020-05-21  rocky <rocky@gnu.org>

	* appveyor.yml: Appveyor try 2

2020-05-21  rocky <rocky@gnu.org>

	* appveyor.yml: Bump python version in appveyor

2020-05-21  rocky <rocky@gnu.org>

	* spark_parser/version.py: Update version.py info

2020-05-20  rocky <rocky@gnu.org>

	* spark_parser/spark.py: Lint crap. Fixes #15

2020-02-16  rocky <rocky@gnu.org>

	* spark_parser/__init__.py: Add export for rule2str

2020-01-07  rocky <rocky@gnu.org>

	* admin-tools/pyenv-newer-versions: Administrivia

2020-01-07  rocky <rocky@gnu.org>

	* admin-tools/setup-master.sh: Administrivia

2019-11-16  rocky <rocky@gnu.org>

	* admin-tools/pyenv-newer-versions, admin-tools/setup-master.sh:
	Administriva - bump testing versions

2019-11-16  rocky <rocky@gnu.org>

	* .travis.yml: Python-version testing with 3.7 and 3.8 TravisCI

2019-11-16  rocky <rocky@gnu.org>

	* .travis.yml: Python-version testing with 3.7 and 3.8 TravisCI

2019-11-16  rocky <rocky@gnu.org>

	* README.rst: More badges

2019-11-16  rocky <rocky@gnu.org>

	* setup.py: Administrivia

2019-10-19  rocky <rocky@gnu.org>

	* admin-tools/how-to-make-a-release.md: Add twine check in release
	process

2019-10-02  rocky <rocky@gnu.org>

	* .circleci/config.yml: CircleCI try 3

2019-10-02  rocky <rocky@gnu.org>

	* .circleci/config.yml: CircleCI try 2

2019-10-02  rocky <rocky@gnu.org>

	* .circleci/config.yml: CircleCI yet again

2019-10-02  rocky <rocky@gnu.org>

	* README.rst: Remove download badge

2019-10-02  rocky <rocky@gnu.org>

	* README.rst: Add downloads and package info

2019-07-28  rocky <rocky@gnu.org>

	* NEWS.md, admin-tools/how-to-make-a-release.md,
	spark_parser/ast.py, spark_parser/version.py: Get ready for release
	1.8.9

2019-07-28  rocky <rocky@gnu.org>

	* .travis.yml, admin-tools/how-to-make-a-release.md: Travis no
	longer does 3.3 or 2.6

2019-07-28  rocky <rocky@gnu.org>

	* admin-tools/how-to-make-a-release.md,
	admin-tools/pyenv-newer-versions: Get ready for release 1.8.8

2019-07-28  rocky <rocky@gnu.org>

	* NEWS, NEWS.md, spark_parser/version.py: Get ready for release
	1.8.8

2019-07-23  rocky <rocky@gnu.org>

	* bin/spark-parser-coverage, spark_parser/ast.py: Changes to make
	this work on Python 3.8

2018-06-26  rocky <rb@dustyfeet.com>

	* circle.yml: Remove CircleCI 1.1

2018-06-25  rocky <rb@dustyfeet.com>

	* .circleci/config.yml: Another CircleCI 2.0 attempt

2018-06-25  rocky <rb@dustyfeet.com>

	* .circleci/config.yml: Try CircleCI 2.0

2018-05-18  rocky <rb@dustyfeet.com>

	* NEWS, spark_parser/version.py: Get ready for release 1.8.7

2018-05-13  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Show LHS in error stack dump

2018-04-16  rocky <rb@dustyfeet.com>

	* admin-tools/how-to-make-a-release.md: Remove duplicate check

2018-04-16  rocky <rb@dustyfeet.com>

	* README.rst: Note deprecation of SPARK acronym

2018-04-16  rocky <rb@dustyfeet.com>

	* admin-tools/pyenv-newer-versions, setup.py: Update supported pyenv
	versions...  And change versions we build a release from

2018-04-16  rocky <rb@dustyfeet.com>

	* NEWS, spark_parser/version.py: Get ready for release 1.8.6

2018-04-16  rocky <rb@dustyfeet.com>

	* admin-tools/how-to-make-a-release.md: Update release instructions

2018-03-28  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage: Canonicalize to reduce false-positive
	unused rules Specifically we remove the epsilon transition marks.  Note we don't bother doing this for all rules, just the unused ones

2018-02-18  rocky <rb@dustyfeet.com>

	* example/expr/expr.py, example/expr2/expr_parser.py: Tweak some
	comments

2017-12-10  rocky <rb@dustyfeet.com>

	* .gitignore, ChangeLog, NEWS, spark_parser/version.py: Get ready
	for release 1.8.5

2017-12-10  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py, test/test_misc.py: Correct list_like_nt and
	add optional_nt sets

2017-12-07  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py: Pull constant out of nonterminal
	function

2017-12-07  rocky <rb@dustyfeet.com>

	* test/test_misc.py: Python 2.6 compatibility

2017-12-07  rocky <rb@dustyfeet.com>

	* example/gdb-loc/README.md, example/python2/README.md,
	example/python2/format-python.py, spark_parser/spark.py,
	test/test_misc.py: Create set of list-like nonterminals
	automatically

2017-11-27  rocky <rb@dustyfeet.com>

	* NEWS, spark_parser/spark.py, spark_parser/version.py: Get ready
	for release 1.8.4

2017-11-27  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, spark_parser/version.py: Get ready for release
	1.8.3

2017-11-27  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: deleting rule leaves remnants. Work around

2017-11-27  rocky <rb@dustyfeet.com>

	* admin-tools/how-to-make-a-release.md: Administrivia

2017-11-27  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, admin-tools/how-to-make-a-release.md,
	spark_parser/version.py: Get ready for release 1.8.2

2017-11-27  rocky <rb@dustyfeet.com>

	* test/test_grammar.py: assert -> assertEqual, assertTrue

2017-11-26  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, admin-tools/how-to-make-a-release.md,
	spark_parser/version.py: Get ready for release 1.8.1

2017-11-26  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: remove_rules() improvements...  * Allow comments in rules * Strip blank lines in rules * Remove rule from profiling

2017-11-26  rocky <rb@dustyfeet.com>

	* spark_parser/ast.py: Document postorder/preorder better

2017-11-23  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Note something might be amis

2017-11-18  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/expr/expr.py, example/expr2/eval.py,
	example/expr2/expr_parser.py, example/gdb-loc/gdbloc/semantics.py,
	spark_parser/version.py: Get ready for release 1.8.0

2017-11-17  rocky <rb@dustyfeet.com>

	* example/gdb-loc/gdbloc/semantics.py,
	example/python2/py2_format.py, spark_parser/spark.py,
	test/test_checker.py, test/test_grammar.py, test/test_spark.py:
	Check for rules with the same non-nul RHS

2017-11-16  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage: Secondary key in profile sort is the
	rule

2017-11-15  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: In profiling don't add epsilon rules

2017-11-14  rocky <rb@dustyfeet.com>

	* admin-tools/pyenv-newer-versions: Update pyenv versions tested

2017-11-14  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/expr2/eval.py, example/expr2/scanner.py,
	spark_parser/version.py: Get ready for release 1.7.2

2017-11-14  rocky <rb@dustyfeet.com>

	* example/gdb-loc/gdbloc/parser.py,
	example/gdb-loc/gdbloc/scanner.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, spark_parser/spark.py,
	test/test_checker.py, test/test_grammar.py, test/test_misc.py,
	test/test_spark.py: Lint crap

2017-11-14  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Fix bug when used with profiling...  reduce_string() should do the right thing if there is no token
	position which happens in profiling when recording which rule was
	used

2017-11-13  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py: Check nonterminal if present in
	template_engine

2017-10-24  rocky <rb@dustyfeet.com>

	* Makefile: To aggressive distclean

2017-10-24  rocky <rb@dustyfeet.com>

	* test/test_checker.py: Nuke 2.3 stuff in this branch

2017-10-24  rocky <rb@dustyfeet.com>

	* Makefile: Update clean targets in prep for release

2017-10-24  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/gdb-loc/gdbloc/semantics.py,
	example/gdb-loc/pytest/test_semantics.py, spark_parser/version.py:
	Get ready for release 1.7.1

2017-10-24  rocky <rb@dustyfeet.com>

	* example/gdb-loc/pytest/test_parser.py: Better gdbloc parser test

2017-10-24  rocky <rb@dustyfeet.com>

	* example/README.md, example/gdb-loc/gdbloc/parser.py,
	example/gdb-loc/gdbloc/scanner.py,
	example/gdb-loc/gdbloc/semantics.py,
	example/gdb-loc/pytest/test_parser.py,
	example/gdb-loc/pytest/test_semantics.py, spark_parser/spark.py:
	parser: handle errorstack better; better gdbloc

2017-10-12  rocky <rb@dustyfeet.com>

	* example/README.md, example/expr2/eval.py,
	example/expr2/{parser.py => expr_parser.py},
	example/expr2/test_grammar.py, example/python2/py2_format.py:
	Improve examples.

2017-10-12  rocky <rb@dustyfeet.com>

	* example/gdb-loc/pytest/test_semantics.py: Add gdbloc semantic test

2017-10-12  rocky <rb@dustyfeet.com>

	* admin-tools/README.md, admin-tools/check-newer-versions.sh,
	admin-tools/check-older-versions.sh,
	admin-tools/how-to-make-a-release.md,
	admin-tools/make-dist-newer.sh, admin-tools/make-dist-older.sh,
	admin-tools/pyenv-newer-versions, admin-tools/pyenv-older-versions,
	admin-tools/setup-master.sh, admin-tools/setup-python-2.4.sh: Add
	admin code for making a release

2017-10-12  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py: Start allowing node type checking
	in fmt strings

2017-10-10  rocky <rb@dustyfeet.com>

	* NEWS: Another typo

2017-10-10  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/README.md: Typo

2017-10-10  rocky <rb@dustyfeet.com>

	* : commit 0b00a93ea702835ce60bbec8f552ff3670dd21ce Author: rocky
	<rb@dustyfeet.com> Date:   Tue Oct 10 12:47:18 2017 -0400

2017-10-10  rocky <rb@dustyfeet.com>

	* README.rst, example/gdb-loc/gdbloc/semantics.py: Test gdb-loc
	semantics

2017-10-10  rocky <rb@dustyfeet.com>

	* example/README.md, example/expr2/README.md,
	example/gdb-loc/README.md: Update docs again

2017-10-09  rocky <rb@dustyfeet.com>

	* example/gdb-loc/README.md, example/gdb-loc/gdbloc/parser.py,
	example/gdb-loc/gdbloc/scanner.py,
	example/gdb-loc/gdbloc/semantics.py: Pretty much complete the gdbloc
	example Now I just need to add it to trepan2 and trepan3k...

2017-10-08  rocky <rb@dustyfeet.com>

	* example/gdb-loc/gdbloc/parser.py,
	example/gdb-loc/gdbloc/scanner.py,
	example/gdb-loc/gdbloc/semantics.py,
	example/gdb-loc/pytest/test_parser.py,
	example/gdb-loc/pytest/test_scanner.py, example/gdb-loc/setup.py,
	spark_parser/spark.py: Start gdbloc range parsing

2017-10-08  rocky <rb@dustyfeet.com>

	* Makefile: Back off gdb-loc testing in CI and toplevel Some environment thing, and Python pisses me off about its fragility
	too often for me to care here.

2017-10-08  rocky <rb@dustyfeet.com>

	* Makefile, example/gdb-loc/Makefile,
	example/gdb-loc/gdbloc/parser.py,
	example/gdb-loc/gdbloc/scanner.py,
	example/gdb-loc/{gdbloc/pytest/test-scanner.py =>
	pytest/test_scanner.py}: More gdb-loc testing

2017-10-08  rocky <rb@dustyfeet.com>

	* .gitignore, NEW-FEATURES.rst, example/expr2/parser.py,
	example/gdb-loc/.gitignore, example/{location =>
	gdb-loc}/README.md, example/gdb-loc/gdbloc/__init__.py,
	example/{location => gdb-loc/gdbloc}/parser.py,
	example/gdb-loc/gdbloc/pytest/test-scanner.py, example/{location =>
	gdb-loc/gdbloc}/scanner.py, example/{location =>
	gdb-loc/gdbloc}/semantics.py, example/{location =>
	gdb-loc/gdbloc}/tok.py, example/gdb-loc/setup.py,
	example/python2/py2_parser.py, spark_parser/spark.py,
	test/test_checker.py, test/test_grammar.py, test/test_misc.py,
	test/test_spark.py: Fill out example for gdb line ranges

2017-10-07  rocky <rb@dustyfeet.com>

	* example/location/parser.py, example/location/semantics.py,
	spark_parser/spark.py: Add semantic actions for location example...  Set tokens inside spark_parser

2017-10-07  rocky <rb@dustyfeet.com>

	* example/location/README.md, example/location/parser.py,
	example/location/scanner.py, example/location/tok.py: Start location
	parser

2017-10-07  rocky <rb@dustyfeet.com>

	* example/expr2/scanner.py, example/python2/py2_format.py,
	example/python2/py2_token.py, example/python2/test/test_class.py,
	spark_parser/ast.py, spark_parser/scanner.py,
	spark_parser/version.py: Start the breakpoint location parser

2017-10-05  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Fix bug in calling reduce_is_invalid

2017-10-03  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: always create an AST when check_reduce
	needs it...  We require however the cooperation of the subclass to set
	self.tokens

2017-10-03  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py: Go over table-semantics description
	yet again

2017-10-02  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Some simple but important changes...  Show the last token number in debugging grammar reductions Call check reduce even when we don't have a token stream Note: this puts responsibility on reduce routines to check for an
	null AST or no tokens, and this is an incompatible change.

2017-09-20  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2017-09-17  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py: engine -> template-engine

2017-09-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py: Simplify more

2017-09-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py: Simplify Python example

2017-08-31  rocky <rb@dustyfeet.com>

	* example/python2/README.md: More doc changes

2017-08-31  rocky <rb@dustyfeet.com>

	* example/expr/expr.py: Minor changes of a documentation nature

2017-08-10  rocky <rb@dustyfeet.com>

	* .travis.yml: Add Python 3.6 testing

2017-07-14  rocky <rb@dustyfeet.com>

	* NEW-FEATURES.rst: Mostly RsT formatting

2017-06-01  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2017-05-17  rocky <rb@dustyfeet.com>

	* appveyor.yml: Appveyor take 4

2017-05-17  rocky <rb@dustyfeet.com>

	* appveyor.yml: Appveyor take 3

2017-05-17  rocky <rb@dustyfeet.com>

	* appveyor.yml: Appveyor take 2

2017-05-17  rocky <rb@dustyfeet.com>

	* appveyor.yml, appveyor/install.ps1, appveyor/run_with_env.cmd: Try
	appveyor

2017-05-17  rocky <rb@dustyfeet.com>

	* Makefile, tox.ini: Make make test-full work

2017-05-17  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, spark_parser/spark.py, spark_parser/version.py,
	test/test_grammar.py: Get ready for release 1.6.1

2017-05-16  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: remove_rule: check to see if rule exists
	first

2017-01-31  rocky <rb@dustyfeet.com>

	* : commit 21fa172cc4010ba39cab8f2f4cbb5806bd78186e Author: rocky
	<rb@dustyfeet.com> Date:   Tue Jan 31 18:58:59 2017 -0500

2017-01-31  rocky <rb@dustyfeet.com>

	* ChangeLog: Get ready for release

2017-01-30  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2017-01-30  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2017-01-30  rocky <rb@dustyfeet.com>

	* NEW-FEATURES.rst, NEWS, spark_parser/spark.py,
	spark_parser/version.py: Add the ability to remove a rule Go over new features and over NEWS

2017-01-29  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Reinstate extra debug_reduce parameters

2017-01-29  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: function parameter mismatch

2017-01-29  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage, spark_parser/spark.py: Fix bugs in
	accumulating coverage counts

2017-01-29  rocky <rb@dustyfeet.com>

	* bin/spark-parser-coverage, setup.py, spark_parser/spark.py,
	test/test_spark.py: More coverage code

2017-01-28  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py, test/test_spark.py: Bang on coverage a
	little more

2017-01-28  rocky <rb@dustyfeet.com>

	* spark_parser/__init__.py, spark_parser/spark.py,
	test/test_spark.py: Start tracking grammar coverage

2017-01-27  rocky <rb@dustyfeet.com>

	* setup.py: Works on 3.6.0

2017-01-27  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/expr2/eval.py,
	example/python2/test/format/if.py,
	example/python2/test/parse/if.py,
	example/python2/test/parse/if.right, spark_parser/version.py: Get
	ready for release 1.5.2 Some lint changes

2017-01-27  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py, test/test_misc.py: Fix bug in dumpGrammar()

2016-12-08  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2016-12-08  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2016-12-08  rocky <rb@dustyfeet.com>

	* README.rst, setup.py: Correct Jay EarlEy's name

2016-11-28  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/expr2/eval.py,
	example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/test/scan/indent1.py,
	example/python2/test/scan/indent1.right, setup.py,
	spark_parser/version.py, test/test_misc.py: Get ready for release
	1.5.1 Lint some files

2016-11-28  R. Bernstein <rocky@users.noreply.github.com>

	* README.rst: Update README.rst

2016-11-28  R. Bernstein <rocky@users.noreply.github.com>

	* README.rst: Update README.rst

2016-11-28  rocky <rb@dustyfeet.com>

	* README.rst, README2.rst: Update docs

2016-11-28  rocky <rb@dustyfeet.com>

	* README.rst, example/python2/py2_parser.py: One last optional rule.  Note this was John's Ph.d thesis

2016-11-28  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py: NEWLINE* -> NEWLINE+ I think we need at least one.

2016-11-28  rocky <rb@dustyfeet.com>

	* example/expr2/parser.py, setup.py: Update short description Add 'dups' in expr2/parser.py

2016-11-28  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py, example/python2/test/format/if.py,
	example/python2/test/format/if.right,
	example/python2/test/parse/exec.py-notyet,
	example/python2/test/parse/if.py,
	example/python2/test/parse/if.py-notyet,
	example/python2/test/parse/if.right: Increase grammar coverage

2016-11-28  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py, test/test_misc.py: Test for an illegal
	start symbol

2016-11-28  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py: Recuce Python2 grammar

2016-11-27  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2016-11-27  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2016-11-27  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Update NEW-FEATURES.rst

2016-11-27  rocky <rb@dustyfeet.com>

	* NEW-FEATURES.rst, example/python2/py2_parser.py,
	spark_parser/spark.py, test/test_misc.py: Add optional ? ...  and for direct recursive rule, e.g.     foo ::= foo and test both.  Update NEW-FEATURES.rst

2016-11-27  R. Bernstein <rocky@users.noreply.github.com>

	* NEW-FEATURES.rst: Fix up rSt formatting

2016-11-27  rocky <rb@dustyfeet.com>

	* MANIFEST.in, NEW-FEATURES.rst: Describe new features

2016-11-27  rocky <rb@dustyfeet.com>

	* Makefile, TODO.rst, example/expr/expr.py,
	example/python2/py2_parser.py, spark_parser/spark.py,
	test/test_misc.py: Add simple + and * suffixes for grammar rules test this and dup rule TODO.rst: revise

2016-11-26  rocky <rb@dustyfeet.com>

	* example/python2/test/helper.py: Python 2.3 tolerance

2016-11-26  rocky <rb@dustyfeet.com>

	* : commit 7bfd0d3537704f37d983298c206261181526408f Author: rocky
	<rb@dustyfeet.com> Date:   Sat Nov 26 12:46:56 2016 -0500

2016-11-26  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #8 from rocky/reduce-checks Reduce checks

2016-11-26  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: 2 new features: - User-definable reduction check. This   allows one to specify an additional check before   a rediction is made. For example in uncompyle6 we   check whether a SETUP_LOOP target jumps to the last   token of the rule. Or that an augmented assignment statement   doesn't have inplace-binary operators - User defined reduce printing rule. For example, the uncompyle6
	  token class has line numbers and offsets associated with them. We
	  can show these as part of the reduction rule.

2016-11-23  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Fix up debug['dup'] test and output

2016-11-23  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, README2.rst, example/python2/py2_format.py,
	setup.py, spark_parser/spark.py, spark_parser/version.py,
	test/test_checker.py, tox.ini: Get ready for release 1.4.3

2016-11-22  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/python2/py2_scan.py,
	requirements-dev.txt, setup.py, spark_parser/spark.py,
	spark_parser/version.py: Get ready for release 1.4.2

2016-11-22  rocky <rb@dustyfeet.com>

	* example/python2/test/helper.py, spark_parser/spark.py: Fix bug
	introdoced in last release...  guard against self.debug == None Reinstate "with ..." will handle 2.4-2.5 in a branch

2016-11-21  rocky <rb@dustyfeet.com>

	* requirements-dev.txt: We don't need flake8

2016-11-21  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, setup.py, spark_parser/version.py: Get ready for
	release 1.4.1

2016-11-21  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, example/python2/test/helper.py,
	spark_parser/spark.py: Python 2.5 tolerance

2016-11-21  rocky <rb@dustyfeet.com>

	* circle.yml, requirements-dev.txt, requirements.txt, tox.ini: Try
	CircleCI

2016-11-21  rocky <rb@dustyfeet.com>

	* README.rst, setup.py, spark_parser/spark.py: dup rules, add python
	badges, fix setup.py...  * setup.py: test_requires->tests_require * spark.py:   - Eliminate duplicate grammar rules   - Allow hook for additional reduction testing * README.rst:   - Supported Python badges

2016-11-13  rocky <rb@dustyfeet.com>

	* : commit ce4789ad4259b7fe3c3376f686e73de7212f0693 Author: rocky
	<rb@dustyfeet.com> Date:   Sun Nov 13 13:23:12 2016 -0500

2016-10-26  rocky <rb@dustyfeet.com>

	* setup.py: Cut-n-paste artifact

2016-06-23  rocky <rb@dustyfeet.com>

	* example/python2/README.md: Update example doc

2016-06-22  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, example/python2/py2_format.py,
	example/python2/py2_parser.py, spark_parser/spark.py,
	spark_parser/version.py: Get ready for release 1.4.0

2016-06-18  rocky <rb@dustyfeet.com>

	* example/python2/test/parse/assert.right,
	example/python2/test/parse/def.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/global.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/imports.right,
	example/python2/test/parse/while.right, spark_parser/ast.py: Show
	child count and sibling index in AST

2016-06-16  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_scan.py,
	example/python2/reflow.py, example/python2/test/format/expr.right,
	example/python2/test/format/with.py,
	example/python2/test/format/with.right: improve Python 2 example Add with and subscript.  Add augassign operators

2016-06-16  rocky <rb@dustyfeet.com>

	* example/expr2/parser.py, example/python2/py2_parser.py,
	spark_parser/spark.py, test/test_checker.py, test/test_spark.py: Add
	grammar checker and use it on our grammars py2_parser.py: fill in more grammar

2016-06-13  rocky <rb@dustyfeet.com>

	* example/expr2/README.md, example/expr2/eval.py,
	example/expr2/parser.py, example/expr2/scanner.py,
	example/python2/.gitignore, example/python2/py2_format.py: Add expr2
	expression evaluator

2016-06-12  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py, example/python2/py2_scan.py,
	example/python2/test/format/if.py,
	example/python2/test/format/if.right,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/imports.right,
	example/python2/test/parse/while.right: Python 2 start Handling '=='
	and subscripts

2016-06-12  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, example/python2/reflow.py,
	example/python2/test/parse/def.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/imports.right,
	example/python2/test/parse/while.right: Python 2 example work * Start handling """ and ''' comments * Correct python 2 import_as_name.  * Add print statement rule

2016-06-12  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_scan.py,
	example/python2/reflow.py, example/python2/test/format/def.py,
	example/python2/test/format/def.right: Fix bugs in if/else
	formatting

2016-06-12  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py,
	example/python2/test/format/assert.right,
	example/python2/test/format/exec.right,
	example/python2/test/format/global.right,
	example/python2/test/format/imports.right,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/global.right,
	example/python2/test/parse/imports.right,
	example/python2/test/scan/syms.right: Preserve comments in output

2016-06-10  rocky <rb@dustyfeet.com>

	* example/README.md, example/expr/README.md,
	example/expr2/README.md, example/python2/README.md: improve example
	program README formatting

2016-06-10  rocky <rb@dustyfeet.com>

	* spark_parser/__init__.py, spark_parser/ast.py,
	spark_parser/spark.py: Move AST tree routines from parser to ast.py

2016-06-10  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, example/python2/test/format/expr.right:
	Almost all of the grammar added.  py2_scan.py: add "and" and "or" reserved words

2016-06-10  rocky <rb@dustyfeet.com>

	* example/python2/test/format/expr.right: Correct test output

2016-06-10  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, example/python2/test/format/expr.py,
	example/python2/test/format/expr.right,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/while.right,
	example/python2/test/scan/expr1.right: Bang on expressions. Not
	quite perfect

2016-06-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/reflow.py, example/python2/test/format/def.py,
	example/python2/test/format/def.right,
	example/python2/test/format/expr.py,
	example/python2/test/format/expr.right: Work on subroutine
	parameters. Add class Add standalone routine to reflow Python

2016-06-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py: Add expr_stmnt

2016-06-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/imports.right,
	example/python2/test/parse/while.right: Remove some epsilon nodes
	from AST tree

2016-06-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py: More grammar arglist, fix some grammar
	parser bugs

2016-06-09  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/while.right,
	example/python2/test/scan/expr1.right,
	example/python2/test/scan/syms.right,
	example/python2/test/scan/sys.right: Follow grammar closer - Start arith operations - Start using atom.  - testlist -> testlist1 - add backtick

2016-06-08  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py, example/python2/py2_scan.py,
	example/python2/test/helper.py,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/def.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/global.right,
	example/python2/test/parse/if.right,
	example/python2/test/parse/imports.right,
	example/python2/test/parse/while.right,
	example/python2/test/scan/expr1.right,
	example/python2/test/scan/indent1.right,
	example/python2/test/scan/syms.right,
	example/python2/test/test_parse_inline.py: ENDMARKER fixes

2016-06-08  rocky <rb@dustyfeet.com>

	* example/python2/py2_scan.py: DRY scanner and add ENDMARKER as per
	grammar

2016-06-08  rocky <rb@dustyfeet.com>

	* example/README.md: Another grammar typo

2016-06-08  rocky <rb@dustyfeet.com>

	* README.rst: Date correction

2016-06-08  rocky <rb@dustyfeet.com>

	* ChangeLog, example/python2/test/format/def.py,
	example/python2/test/format/def.right,
	example/python2/test/parse/def.py,
	example/python2/test/parse/def.right: Add python2 def tests

2016-06-08  rocky <rb@dustyfeet.com>

	* ChangeLog, MANIFEST.in, NEWS, TODO.rst,
	example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/test/test_format.py,
	example/python2/test/test_parse_inline.py,
	spark_parser/__init__.py, spark_parser/spark.py,
	spark_parser/version.py: Get ready for release 1.3.0 * TODO.rst: Add to do list * spark.py:  Document dumpGrammar * __init__.py:  use RsT formatting in docstrings * example/python2: add semnatic action for return stmt, NUMBER, and
	func_def

2016-06-07  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #5 from rocky/python2-parser Python2 parser

2016-06-07  rocky <rb@dustyfeet.com>

	* example/README.md, example/python2/README.md,
	example/python2/py2_format.py: Tidy a bit.

2016-06-07  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/test/Makefile,
	example/python2/test/format/while.py,
	example/python2/test/format/while.right,
	example/python2/test/parse/while.py,
	example/python2/test/parse/while.right,
	example/python2/test/test_format_inline.py,
	example/python2/test/test_parse_inline.py: Add while, break,
	continue

2016-06-07  rocky <rb@dustyfeet.com>

	* example/python2/py2_format.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, example/python2/test/format/assert.py,
	example/python2/test/format/assert.right,
	example/python2/test/format/exec.py,
	example/python2/test/format/exec.right,
	example/python2/test/format/global.py,
	example/python2/test/format/global.right,
	example/python2/test/format/if.py,
	example/python2/test/format/if.right,
	example/python2/test/format/imports.py,
	example/python2/test/format/imports.right,
	example/python2/test/parse/exec.py,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/if.py,
	example/python2/test/parse/if.right,
	example/python2/test/parse/imports.right,
	example/python2/test/test_format.py,
	example/python2/test/test_format_inline.py,
	example/python2/test/test_scan_inline.py: Start real format tests Correct some tree flattening routines

2016-06-05  rocky <rb@dustyfeet.com>

	* example/expr2/parser.py, example/python2/py2_parser.py,
	example/python2/test/helper.py,
	example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.right,
	example/python2/test/parse/global.right,
	example/python2/test/parse/imports.right: Flatten nested
	non-terminal lists

2016-06-05  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py: Python 2.7 compatibility

2016-06-05  rocky <rb@dustyfeet.com>

	* Makefile, example/expr/expr.py, example/expr2/parser.py,
	example/python2/Makefile, example/python2/py2_format.py,
	example/python2/py2_parser.py, example/python2/test/Makefile,
	example/python2/test/helper.py, example/python2/test/test_parse.py,
	example/python2/test/test_parse_inline.py,
	example/python2/test/test_scan.py, spark_parser/spark.py: Convert
	some tests to test-unit.  Some DRYING and parameter passing too.

2016-06-05  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py, example/python2/py2_scan.py,
	example/python2/test/helper.py, example/python2/test/{sample =>
	parse}/assert.py, example/python2/test/parse/assert.right,
	example/python2/test/parse/exec.py,
	example/python2/test/{sample/exec.py => parse/exec.py-notyet},
	example/python2/test/parse/exec.right, example/python2/test/{sample
	=> parse}/global.py, example/python2/test/parse/global.right,
	example/python2/test/{sample/if.py => parse/if.py-notyet},
	example/python2/test/parse/if.right, example/python2/test/{sample
	=> parse}/imports.py, example/python2/test/parse/imports.right,
	example/python2/test/scan/.gitignore,
	example/python2/test/scan/expr1.py,
	example/python2/test/scan/expr1.right,
	example/python2/test/scan/indent1.py,
	example/python2/test/scan/indent1.right,
	example/python2/test/scan/syms.py,
	example/python2/test/scan/syms.right,
	example/python2/test/scan/sys.right,
	example/python2/test/test_format.py,
	example/python2/test/test_parse.py,
	example/python2/test/test_scan.py: Start automating tests more

2016-06-05  rocky <rb@dustyfeet.com>

	* example/README.md, example/python2/py2_format.py,
	example/python2/py2_parser.py, example/python2/py2_scan.py,
	example/python2/test/sample/assert.py,
	example/python2/test/sample/exec.py,
	example/python2/test/sample/global.py,
	example/python2/test/sample/if.py,
	example/python2/test/sample/imports.py,
	example/python2/test/test_format.py,
	example/python2/test/test_parse.py, spark_parser/spark.py: Start
	handling compound statements * scanner needs handle indent/dedent * add some Python test programs * spark.py: allow token context to be shown

2016-06-04  rocky <rb@dustyfeet.com>

	* example/README.md, example/python2/py2_format.py,
	example/python2/test/test_format.py: Start format testing

2016-06-04  rocky <rb@dustyfeet.com>

	* : commit a4e258195c4e2b28809fb5ed887b9a3d9ca7d4bb Merge: aae0c9b
	2787c8b Author: rocky <rb@dustyfeet.com> Date:   Sat Jun 4 17:11:26
	2016 -0400

2016-06-04  rocky <rb@dustyfeet.com>

	* spark_parser/scanner.py: More useful GenericToken class Works with table-driven AST class better added:    __hash__ for comparison    __getitem__ for iterating

2016-06-04  rocky <rb@dustyfeet.com>

	* example/python2/README.md, example/python2/py2_format.py,
	example/python2/py2_parser.py, example/python2/{python.gr =>
	python26.gr}, example/python2/test/test_parse.py,
	example/python2/test/test_scan.py: WIP Start semantic actions

2016-06-04  rocky <rb@dustyfeet.com>

	* example/python2/py2_parser.py, example/python2/py2_scan.py,
	example/python2/test/test_parse.py,
	example/python2/test/test_scan.py: Fill in grammar more. Add tests tests as standalone for now.

2016-06-03  rocky <rb@dustyfeet.com>

	* example/expr2/__init__.py, example/python2/README.md,
	example/python2/__init__.py, example/python2/py2_parser.py,
	example/python2/py2_scan.py, example/python2/python.gr: WIP Parser
	for Python2 grammar

2016-06-03  rocky <rb@dustyfeet.com>

	* spark_parser/scanner.py: Note other kinds of error handlers

2016-05-24  R. Bernstein <rocky@users.noreply.github.com>

	* : Merge pull request #3 from killruana/patch-1 Fix a typo

2016-05-15  rocky <rb@dustyfeet.com>

	* spark_parser/spark.py: Add routine to dump grammar

2016-05-14  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, setup.py: Get ready for release 1.2.1

2016-05-14  rocky <rb@dustyfeet.com>

	* setup.py, spark_parser/__init__.py, spark_parser/spark.py,
	spark_parser/version.py: 2 kinds of stack dumping. Redo packaging if debug['errorstack'] == 'full' then show where dot is in state
	stack Redo setup.py;   pick up version automatically   correct "name" field

2016-05-10  rocky <rb@dustyfeet.com>

	* setup.py: Correct parser language class

2016-05-10  rocky <rb@dustyfeet.com>

	* setup.py: Get ready for release 1.2.0

2016-05-10  rocky <rb@dustyfeet.com>

	* ChangeLog, example/expr/expr.py, example/expr2/parser.py,
	test/test_spark.py: flake8

2016-05-10  rocky <rb@dustyfeet.com>

	* NEWS, README.rst, spark_parser/spark.py: Get ready for release
	1.2.0

2016-05-07  rocky <rb@dustyfeet.com>

	* test/test_spark.py: Fix up test

2016-05-07  rocky <rb@dustyfeet.com>

	* example/README.md, example/expr/README.md, example/expr/expr.py,
	example/expr2/README.md, example/expr2/__init__.py,
	example/expr2/parser.py, example/expr2/scanner.py,
	spark_parser/ast.py, spark_parser/scanner.py: Add another example.  ast.py: remove isNone scanner.py: * don't use "type" as a parameter name * add a __str__ routine

2016-05-06  rocky <rb@dustyfeet.com>

	* .travis.yml: Try travis on pypy and 3.3

2016-05-06  rocky <rb@dustyfeet.com>

	* .gitignore, spark_parser/ast.py, spark_parser/spark.py: More
	administriva

2016-05-06  rocky <rb@dustyfeet.com>

	* setup.py: don't need to import pkg_resources

2016-05-05  rocky <rb@dustyfeet.com>

	* .travis.yml, setup.py: Fix classifiers

2016-05-05  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, setup.py, spark_parser/ast.py: Get ready for
	release 1.1.2

2016-05-03  rocky <rb@dustyfeet.com>

	* README.rst: little grammar thing

2016-05-03  rocky <rb@dustyfeet.com>

	* ChangeLog, NEWS, setup.py: Get ready for release 1.1.1

2016-05-03  rocky <rb@dustyfeet.com>

	* MANIFEST.in, README.rst, setup.py: Add LICENSE. Go over
	README.rst; Administrivia

2016-05-02  rocky <rb@dustyfeet.com>

	* example/expr/README.md: Typo

2016-05-02  rocky <rb@dustyfeet.com>

	* .gitignore, ChangeLog, LICENSE, MANIFEST.in: Improve packaging

2016-05-02  rocky <rb@dustyfeet.com>

	* README.rst: Rework a little Cite where to find an example

2016-04-28  rocky <rb@dustyfeet.com>

	* spark_parser/__init__.py: Fix import

2016-04-28  rocky <rb@dustyfeet.com>

	* Makefile, spark_parser/__init__.py, spark_parser/ast.py,
	spark_parser/scanner.py, spark_parser/spark.py: spark ->
	spark_parser

2016-04-28  rocky <rb@dustyfeet.com>

	* NEWS, example/expr/expr.py, setup.py, spark/__init__.py,
	spark/ast.py, spark/scanner.py, spark/spark.py, test/test_spark.py:
	Get ready for release 1.0.2

2016-04-27  rocky <rb@dustyfeet.com>

	* NEWS: Get ready for release 1.0.2

2016-04-27  rocky <rb@dustyfeet.com>

	* .travis.yml: Build env typo

2016-04-27  rocky <rb@dustyfeet.com>

	* .gitignore, .travis.yml, __pkginfo__.py, setup.py: Remove
	__pkginfo__.py. Try pypy and pypy3

2016-04-27  rocky <rb@dustyfeet.com>

	* README.rst: A doc into tweak

2016-04-27  rocky <rb@dustyfeet.com>

	* NEWS, spark/__init__.py: Fix module exports and update NEWS

2016-04-27  rocky <rb@dustyfeet.com>

	* spark/__init__.py: Export GenericASTBuilder

2016-04-27  rocky <rb@dustyfeet.com>

	* README.rst, __pkginfo__.py, spark/spark.py, tox.ini: Small fixes spark.py: use new-style classes README.rst: note John Aycock
	tox.ini: py35->py34

2016-04-26  rocky <rb@dustyfeet.com>

	* __pkginfo__.py: Typo causing 3.5 wheel upload failure

2016-04-26  rocky <rb@dustyfeet.com>

	* .gitignore, NEWS, setup.py: Administrivia

2016-04-26  rocky <rb@dustyfeet.com>

	* Makefile, __pkginfo__.py, example/expr/expr.py, setup.py,
	spark/scanner.py, tox.ini: Get ready for release 1.0.0

2016-04-25  rocky <rb@dustyfeet.com>

	* .travis.yml: Try travis on 3.5

2016-04-25  rocky <rb@dustyfeet.com>

	* example/expr/expr.py, spark/ast.py, spark/scanner.py: Works on
	Python3: cmp -> __eq__ ast.py, scanner: small typo

2016-04-24  rocky <rb@dustyfeet.com>

	* README.rst: Add SPARK build status

2016-04-24  rocky <rb@dustyfeet.com>

	* .travis.yml, Makefile, __pkginfo__.py, example/expr/expr.py,
	spark/__init__.py, spark/ast.py, spark/scanner.py, spark/spark.py,
	test/test_spark.py, tox.ini: Add test and lots of other stuff - Go over example grammar - Add Makefile - spark - go over .travis.yml - scanner.py: remove old Python2 ism that isn't in Python3 - spark: make more Python3 compatible - start a tox file

2016-04-24  rocky <rb@dustyfeet.com>

	* example/expr/README.md, example/expr/expr.py, spark/__init__.py,
	spark/scanner.py: Refactor and Improve based on expr example Add generic scanner Start to document this shit better.

2016-04-21  rocky <rb@dustyfeet.com>

	* example/expr/expr.py, spark/__init__.py, spark/ast.py,
	spark/spark.py: Include semantic actions

2016-04-21  rocky <rb@dustyfeet.com>

	* example/expr/expr.py: WIP Start semantic routines

2016-04-21  rocky <rb@dustyfeet.com>

	* example/expr/expr.py, example/expr/expr1.txt,
	example/expr/expr2.txt, spark/__init__.py, spark/ast.py: Start
	arithmetic expression example also add generic AST routine

2016-04-20  rocky <rb@dustyfeet.com>

	* README.rst: Reduce README.rst

2016-04-20  rocky <rb@dustyfeet.com>

	* Initial guess at Spark package
