So I check the source code of macro BUILDFMT, and I found the reaon. The author missed two semicolons. Right here:
These two missed semicolons cause the error above. Just like Lora D. Delwiche and Susan J. Slaughter writed in the Little SAS Book: "Even the most experienced SAS programmer will at least occasionally forget the semicolon."
So, next I am wondering the error jsut in my SAS? Or in all of the SAS? So I check my colleague's SAS which is SAS 9.3, mine is SAS 9.4. His also has the error. So, is there this error in your SAS?