Basic AST

% and unary minus are missing (at least add a TODO)