outline of a parser
fixed a strange bug in the lexer that was causing tokens to be dropped intermittently

in this example: self.Dog(7) = new Dog("Fido", 3)
"Fido" was being dropped
implemented parsing of "new" and wrote some test cases
added io_user pointer to the AST walker functionality
added the ast_string_walker()

allows AST to be exported as a string
made AST string output formatting consistent
completed first set of parser tests
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
created draft test case methodology for statement parsing
updated test methodology with a large array of additional test cases
updated test case methodology and added a file-based test runner module test.c
added test file parser.tests that uses the new testing handler in test.c
improved test code in parser.c to aid in setting up the next bunch of tests
begun setup of next bunch of tests for parser.c; not currently passing, lexer needs work
fixed bug in lexer parsing text keyword tokens followed by numbers, eg. Class1