~groovestomp/c-parser

Massive update that fixes parse tree generation
Fix #define ordering
Re-indent parser.c
Extract allocator from ParseTreeNode

- Change __parser_typedef_names to be static.
- Make a global static __parse_tree_allocator that is shared across all parse tree nodes.
Many changes!

- Remove dependency on stdio.h in lexer.c
- Update 'Updated' metadata for each file.
- Set 'Created' metadata for each file.
- Conditionally define booleans in gs.h
- Add gs_MemSet to gs.h
- Update lexer to handle errors in a C-like way.
- Update Lex() function to return a tokenized stream.
- Update main.c to handle Lex() returning a stream, print parse tree without cli option.
- Change ParseTree to use enums instead of strings for type info.
- Update parser to use new ParseTree interface.
- Simplify Parse() function implementation by removing the loop.
Add fixed with numerical compiler test
Complete style overhaul

- Added STYLEGUIDE to illustrate
A few leftovers for style normalization in gs.h
Normalize coding style for gs.h
Clean up dependencies
Remove unicode support from TODO and update README
Updated license info
Various fixes

- Proper release and debug builds.
- Make tests pass.
- Fix a couple of warnings.
Remove GCC-specific check and fix bugs found by tcc
Remove parens around returns and fix missing return in GSHashMapAllocSize
More C-style normalization. I apparently missed this file.
Clean up parse tree naming
Normalize primitive typenames
File layout/directory structure reorganization
Normalize coding style
Next