C++ bindings getting underway.
and now in_range works too. YEAH.
Many apparently requires a template specialization. This is absurd, but whatever. I'll ask stackoverflow.
C++ tests set up. They probably don't compile; need to write iostream ops for prettyprinting and set up C++ build in scons.
Revert "C++ tests set up. They probably don't compile; need to write iostream ops for prettyprinting and set up C++ build in scons." Should have branched it.

This reverts commit 6a29277db492eccfd3c2e9c75507352002c82d51.
We declared some functions that were never implemented. Implement them.
Add CFFI python bindings
Working python bindings
Added auto-construction, tidied h_ch a bit
Added a few tests
Finished writing unit tests. Fixed a few small bugs in hammer.py. Further issues:

 * "in_" and "not_in" should coerce their results to strings (i.e., chr(result))
 * TestLeftrec: success case 2 fails
 * TestChRange: success case segfaults
 * TestWhitespaceEnd: success case segfaults
 * TestAction: success case segfaults with "corrupted double-linked list"
 * TestButNotRange: segfaults, probably because of whatever's wrong with ch_range
 * TestXor: segfaults; failure case craps out with "malloc(): smallbin double linked list corrupted"
Ditch longs and long longs in favor of stdint.h types, which has cascading
effects throughout, including use of inttypes.h/PRI[ud]64 because printf() is
still stuck in a long world, conversion of %lu to %zu for printing values of
type size_t, and changing/renaming the g_check_cmp* family of functions.
Merge pull request #48 from pete-/master

Ditch longs and long longs in favor of stdint.h types, which has cascadi...
Add internal conditional to not use stdarg.h for SWIG use
Merge pull request #50 from thequux/conditional-varargs-in-header

Add internal conditional to not use stdarg.h for SWIG use
Merge branch 'master' of https://github.com/UpstandingHackers/hammer into swig
Import combinator and allocator APIs into SWIG. Next is glue. Need to fix unions in HParsedToken and HCaseResult.
fixed nested unions
invoke swig with relative path instead, -I../../
SWIG bindings build, compile, and appear to work for python. Will port over tests next.