To aid in the debugging of code produced by program generators such as
Noweb, MLton supports comments with line directives of the form
(*#line line.col "file"*). Here,
line and
col are sequences of decimal digits and
file is the source file. The first character of a source file has the position 1.1. A line directive causes the front end to believe that the character following the right parenthesis is at the line and column of the specified file. A line directive only affects the reporting of error messages and does not affect program semantics (except for functions like
MLton.Exn.history that report source file positions). Syntactically invalid line directives are ignored. To prevent incompatibilities with SML, the file name may not contain the character sequence
*).