it's not quite compiler directives but it'll do