Handle \l separately because a string literal can be in code like "string\\literal" with the \l inside. Also on Windows macros FILE produces specific delimiters \ and a directory or file may starts with the letter l.
Fix: Use regex on for replacing all \l (like ,\l, }\l, [\l) except \\l, because a literal as a rule containes multiple \ before \l.
I still wouldn't mind testing the actual output.