aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/hyperscan/src/parser/control_verbs.rl6
diff options
context:
space:
mode:
authorIvan Blinkov <ivan@blinkov.ru>2022-02-10 16:47:10 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:10 +0300
commit1aeb9a455974457866f78722ad98114bafc84e8a (patch)
treee4340eaf1668684d83a0a58c36947c5def5350ad /contrib/libs/hyperscan/src/parser/control_verbs.rl6
parentbd5ef432f5cfb1e18851381329d94665a4c22470 (diff)
downloadydb-1aeb9a455974457866f78722ad98114bafc84e8a.tar.gz
Restoring authorship annotation for Ivan Blinkov <ivan@blinkov.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/hyperscan/src/parser/control_verbs.rl6')
-rw-r--r--contrib/libs/hyperscan/src/parser/control_verbs.rl6242
1 files changed, 121 insertions, 121 deletions
diff --git a/contrib/libs/hyperscan/src/parser/control_verbs.rl6 b/contrib/libs/hyperscan/src/parser/control_verbs.rl6
index 1d3e33a9aa..46a0bfd000 100644
--- a/contrib/libs/hyperscan/src/parser/control_verbs.rl6
+++ b/contrib/libs/hyperscan/src/parser/control_verbs.rl6
@@ -1,121 +1,121 @@
-/*
- * Copyright (c) 2017, Intel Corporation
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Intel Corporation nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * \file
- * \brief Parser for control verbs that can occur at the beginning of a pattern.
- */
-
-#include "parser/control_verbs.h"
-
-#include "parser/Parser.h"
-#include "parser/parse_error.h"
-
-#include <cstring>
-#include <sstream>
-
-using namespace std;
-
-namespace ue2 {
-
-const char *read_control_verbs(const char *ptr, const char *end, size_t start,
- ParseMode &mode) {
- const char *p = ptr;
- const char *pe = end;
- const char *eof = pe;
- const char *ts, *te;
- int cs;
- UNUSED int act;
-
- %%{
- machine ControlVerbs;
-
- # Verbs that we recognise but do not support.
- unhandledVerbs = '(*' (
- 'LIMIT_MATCH=' [0-9]+ |
- 'LIMIT_RECURSION=' [0-9]+ |
- 'NO_AUTO_POSSESS' |
- 'NO_START_OPT' |
- 'UTF16' |
- 'UTF32' |
- 'CR' |
- 'LF' |
- 'CRLF' |
- 'ANYCRLF' |
- 'ANY' |
- 'BSR_ANYCRLF' |
- 'BSR_UNICODE'
- ) . ')';
-
- main := |*
- '(*UTF8)' | '(*UTF)' => {
- mode.utf8 = true;
- };
-
- '(*UCP)' => {
- mode.ucp = true;
- };
-
- unhandledVerbs => {
- ostringstream str;
- str << "Unsupported control verb " << string(ts, te - ts);
- throw LocatedParseError(str.str());
- };
-
- '(*' [^)]+ ')' => {
- ostringstream str;
- str << "Unknown control verb " << string(ts, te - ts);
- throw LocatedParseError(str.str());
- };
-
- # Anything else means we're done.
- any => {
- fhold;
- fbreak;
- };
- *|;
-
- write data;
- write init;
- }%%
-
- try {
- %% write exec;
- } catch (LocatedParseError &error) {
- if (ts >= ptr && ts <= pe) {
- error.locate(ts - ptr + start);
- } else {
- error.locate(0);
- }
- throw;
- }
-
- return p;
-}
-
-} // namespace ue2
+/*
+ * Copyright (c) 2017, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * \file
+ * \brief Parser for control verbs that can occur at the beginning of a pattern.
+ */
+
+#include "parser/control_verbs.h"
+
+#include "parser/Parser.h"
+#include "parser/parse_error.h"
+
+#include <cstring>
+#include <sstream>
+
+using namespace std;
+
+namespace ue2 {
+
+const char *read_control_verbs(const char *ptr, const char *end, size_t start,
+ ParseMode &mode) {
+ const char *p = ptr;
+ const char *pe = end;
+ const char *eof = pe;
+ const char *ts, *te;
+ int cs;
+ UNUSED int act;
+
+ %%{
+ machine ControlVerbs;
+
+ # Verbs that we recognise but do not support.
+ unhandledVerbs = '(*' (
+ 'LIMIT_MATCH=' [0-9]+ |
+ 'LIMIT_RECURSION=' [0-9]+ |
+ 'NO_AUTO_POSSESS' |
+ 'NO_START_OPT' |
+ 'UTF16' |
+ 'UTF32' |
+ 'CR' |
+ 'LF' |
+ 'CRLF' |
+ 'ANYCRLF' |
+ 'ANY' |
+ 'BSR_ANYCRLF' |
+ 'BSR_UNICODE'
+ ) . ')';
+
+ main := |*
+ '(*UTF8)' | '(*UTF)' => {
+ mode.utf8 = true;
+ };
+
+ '(*UCP)' => {
+ mode.ucp = true;
+ };
+
+ unhandledVerbs => {
+ ostringstream str;
+ str << "Unsupported control verb " << string(ts, te - ts);
+ throw LocatedParseError(str.str());
+ };
+
+ '(*' [^)]+ ')' => {
+ ostringstream str;
+ str << "Unknown control verb " << string(ts, te - ts);
+ throw LocatedParseError(str.str());
+ };
+
+ # Anything else means we're done.
+ any => {
+ fhold;
+ fbreak;
+ };
+ *|;
+
+ write data;
+ write init;
+ }%%
+
+ try {
+ %% write exec;
+ } catch (LocatedParseError &error) {
+ if (ts >= ptr && ts <= pe) {
+ error.locate(ts - ptr + start);
+ } else {
+ error.locate(0);
+ }
+ throw;
+ }
+
+ return p;
+}
+
+} // namespace ue2