Am 18.07.26 um 20:11 schrieb Johannes Sixt:
Am 17.07.26 um 16:02 schrieb Shlok Kulshreshtha:
quoted
+PATTERNS("swift",
+ "^[ \t]*((@[A-Za-z_][A-Za-z0-9_]*(\\([^()]*\\))?[ \t]+)*([a-z]+[ \t]+)*(func|init|deinit|subscript|class|struct|enum|protocol|extension|actor)[ \t(?!<].*)$",
This looks good.
Notice, however, how the regular expression matcher has to backtrack on
even simple lines such as
[...]
It may be worth considering to enumerate all keywords and permit any run
of them:
Let me back-paddle on this one. As I said, the original RE is good. I am
making up a problem here without providing evidence. Modern RE matchers
may be clever enough that there is no problem. If it turns out there is
a problem, we can improve later something that already works.
-- Hannes