scanner, parser, ast compilin wheeeee