fixed AST walker to safely handle NULL child nodes that can occur with syntax errors
modified parser API to allow outside syntax error detection after the parse

parser_parse() returns a Boolean = False if there was a syntax error,
or True if parsed successfully
added ast_dispose()
added assert.h to test.h
added AST manipulation functions and made AstNode opaque
wrote additional test cases and improved parser for statements