Or tell the compiler #operator async disable. Since the legacy code didn't use async as a reserved word, this works.
My background was programming in multiple languages cobol fortran c basic various job control languages and a pile of assemblers ibm 360, icl 1900, pdp 8, pdp 11, 8086, 6502, z80, pic 8 bit, avr 8 bit and a few more that I've forgotten. Language is pretty much irrelevant, like human languages. Can express a concept in any of them. For fun I've written programs using subleq, just to satisfy this thought. It doesn't take a lot to come up with a set of macros that look like instructions in a higher language, then use them.
So I am much more interested in what the proposed language can do rather than how it is expressed. Good documentation offsets most of the obfuscation present in any language, and more importantly, what the programmer was trying to achieve (which often is not obvious from the code regardless of how clear the language). Let's move on from this syntax discussion. Let the OP have a language with no reserved words, we can live with that anomaly even if we don't want it. Finish the entree, move on to the main meal.