Re: [PATCH v5] userdiff: add builtin diff driver for kotlin language.
- From
jaydeepjd.8914@gmail.com <jaydeepjd.8914@gmail.com>
- Date
- Mar 10, 2022, 10:52 UTC
- Message-ID
- <8d411f30-bfe9-ffbe-5ec5-1ae7b5c9588f@gmail.com>
- In-Reply-To
- <72aca675-4c65-36bf-1337-34b2d1f40bb4@kdbg.org>
Sorry for the late reply.
On 3/9/22 12:02 AM, Johannes Sixt <j6t@kdbg.org> wrote:
Show 16 quoted lines
> Am 08.03.22 um 17:54 schrieb jaydeepjd.8914@gmail.com: > > So, the final regexes are these, right?: > > Not quite. > > > > > "[a-zA-Z_][a-zA-Z0-9_]*" > > /* hexadecimal and binary numbers */ > > "|0[xXbB][0-9a-fA-F_]+[lLuU]*" > > /* integers and floats */ > > "|[0-9][.]?[0-9_]+([Ee][-+]?[0-9]+)?[fFlLuU]*" > > This would not match 12.5 because you allow only a single digit before > the decimal point. Perhaps > > "|[0-9][.0-9_]*([Ee][-+]?[0-9]+)?[fFlLuU]*"
Okay.
Show 15 quoted lines
> > /* floating point numbers beginning with decimal point */ > > "|[.][0-9][0-9_]*([Ee][-+]?[0-9]+)?[fFlL]?" > > /* unary and binary operators */ > > > > "|[-+*/<>%&^|=!]?==?|--|\\+\\+|<<=|>>=|&&|[||]|->|\\.\\*|!!|::|[?:.][.:]"), > > [||] does not work as you intend. A new suggestion: do not start with an > initial optional character in order to reduce the number of > backtrackings that the regular expression evaluation has to do. I would > write this line as > > "|[-+*/<>%&^|=!]==?|--|\\+\\+|<<=|>>=|&&|\\|\\||->|\\.\\*|!!|::|[?:.][.:]"), > > BTW which operators are handled by "[?:.][.:]"? I'm asking because you > list :: separatly that would also be matched by this sub-expression.
It matches the following operators: `?:`, `?.`, `..` `::`. Although matching `::` is unnecessary since its matched before.
https://kotlinlang.org/docs/keyword-reference.html#operators-and-special-symbols