Wouldn't a missing multi-line comment end go through the end of the document?
If so, the thing is that token readers will generally filter out comments from ever reaching the parser. That being said, you could store the text range in the token reader of the last multi-line comment that was found in GetNextToken. Then in your custom parser class, override InitializeParseData and look at the state.TokenReader.LastCommentTextRange (or whatever you named the property) and see if it aligns with the end of the snapshot that was passed in state.Snapshot. If so, use the snapshot to see the last couple characters of the text range and if they don't match the expected delimiter based on the starting delimiter, then report an error in the state. That might work.