CPP: Performance is better as a single regexp.

This commit is contained in:
Geoffrey White
2019-01-14 19:24:04 +00:00
parent e3056ca96c
commit 91c736229c

View File

@@ -9,24 +9,27 @@ import semmle.code.cpp.Preprocessor
private predicate autogeneratedComment(Comment c) {
// ?s = include newlines in anything (`.`)
// ?i = ignore case
c.getContents().regexpMatch("(?si).*(" +
// auto-generated, automatically generated etc.
c.getContents().regexpMatch("(?si).*(auto[\\w-]*\\s*?generated).*") or
// auto-generated, automatically generated etc.
"(auto[\\w-]*\\s*?generated)|" +
// generated by (not used mid-sentence)
c.getContents().regexpMatch("(?si).*[^a-zA-Z\\s\\*\\r\\n][\\s\\*\\r\\n]*(generated by).*") or
// generated by (at beginning of sentence)
"([^a-z\\s\\*\\r\\n][\\s\\*\\r\\n]*(generated by)[^a-z])|" +
// generated file
c.getContents().regexpMatch("(?si).*(generated file).*") or
// generated file
"(generated file)|" +
// file [is] generated
c.getContents().regexpMatch("(?si).*(file( is)? generated).*") or
// file [is] generated
"(file( is)? generated)|" +
// changes made in this file will be lost
c.getContents().regexpMatch("(?si).*(changes made in this file will be lost).*") or
// changes made in this file will be lost
"(changes made in this file will be lost)|" +
// do not edit/modify
c.getContents().regexpMatch("(?si).*(do(n't|nt| not) (edit|modify)).*")
// do not edit/modify
"(do(n't|nt| not) (edit|modify))" +
").*")
}
/**