[Lazarus] TMask revisited
joshyfun at gmail.com
Sun Oct 17 19:37:10 CEST 2021
El 17/10/2021 a las 9:08, Juha Manninen via lazarus escribió:
> What does eMaskOpcodeOptionalChar do?
> It's not very clear to me from the comments in the code.
> Good question. It is the one syntax I don't fully understand yet.
> Below is an explanation from José himself. I will study this syntax
> later and add more unit test cases.
> eMaskOpcodeOptionalChar is the set "1[ab]2" matches "1a2" and "ab2" but
> not "1c2".
> I am not sure if it is correct. I will return to this later...
OpcodeOptionalChar (maybe the name should be OptionChar) works in the
compiled stream as CheckMatch and if match go to next char; if not match
continue checking without advance in the target string.
Most people are familiar with ranges "[a-z]", optional chars use the
same "[" syntax but without the dash "-", so "[abcde]" matches one
position with any of those chars or if you negate the set "[!abcde]" it
will match any char *except* any of those.
Have a nice day.
More information about the lazarus