This case statement is getting out of control. Especially this one. This code should be in a `parse_at_root` method. Ideally each of these clauses would be in a `parse_xxx_directive` method and we would simply use method dispatch instead of a giant case statement here.