This PR reapply https://github.com/llvm/llvm-project/pull/157726. Depends: https://github.com/llvm/llvm-project/pull/107168 This patch handle `@import` as a preprocessing directive, and since this patch, the following import directive will be ill-formed: ``` @import Foo\n; ``` --------- Signed-off-by: yronglin <yronglin777@gmail.com>