This test does not demonstrates that numbers do not end at an '_', because if it did end there, the change would be from the single token 100000 to two tokens 100 and _000, and the mark-up would look exactly the same as we see here, and would remain undiagnosed.
Yes but numbers ending in `_` would be illegal syntax in Kotlin so the regex assumes that user is writing correct code.
Instead, write the pre-image as 100_000 and the post image as 200_000. Then the correct mark-up would be <RED>100_000<RESET><GREEN>200_000<RESET> and a bogus markup (that the test wants to diagnose) would look like <RED>100<RESET><GREEN>200<RESET>_000
Right. I will add that test too.
What is this "0x0F"? Did you mean just "0x"?
`0x0F` indicates that its a hexadecimal literal in Kotlin.
And what about prefixes 0X and 0B? Are they not used as prefixes for hex and binary numbers? Moreover, I do not see how a hex number 0xff would be matched as a single token. > + /*match unary and binary operators*/ > + "|[-+*/<>%&^|=!]*"),
Yes. I would make the changes.
Do not do this. There is an implicit single-character match that need not be written down in the regex. List all multi-character operators (but not the single-character operators) like you did in earlier rounds. As written, the "++!=" in an expression such as "a++!=b++" (which is not unlikely to be seen in real code) would be regarded as a single token. The verb "match" in the comment does not match the style of the other comments (drop the word), and please insert blanks between the comment delimiters and the text. > PATTERNS("markdown", > "^ {0,3}#{1,6}[ \t].*", > /* -- */
Noted. Thanks, Jaydeep.