Thread (44 messages) 44 messages, 4 authors, 2022-03-13

Re: [PATCH v5] userdiff: add builtin diff driver for kotlin language.

From: Johannes Sixt <hidden>
Date: 2022-03-08 18:32:48

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]*"
     /* 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.

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help