fn parse(gpa: Allocator, source: [:0]const u8, mode: Mode) Allocator.Error!Ast
Result should be freed with tree.deinit() when there are no more references to any of the tokens or nodes.
gpa: Allocator,
source: [:0]const u8,
mode: Mode,