Added initial abstract syntax tree implementation

There are still some functions that need to be added to the
implementation. There also need to be tests written, and memory leak
testing.