summaryrefslogtreecommitdiffstats
path: root/src/log_level_re.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/log_level_re.cc')
-rw-r--r--src/log_level_re.cc718
1 files changed, 718 insertions, 0 deletions
diff --git a/src/log_level_re.cc b/src/log_level_re.cc
new file mode 100644
index 0000000..d6fbeef
--- /dev/null
+++ b/src/log_level_re.cc
@@ -0,0 +1,718 @@
+/* Generated by re2c 2.0.3 on Wed Jan 27 16:33:33 2021 */
+#line 1 "../../lnav/src/log_level_re.re"
+/**
+ * Copyright (c) 2018, Timothy Stack
+ *
+ * All rights reserved.
+ *
+ * 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 Timothy Stack 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 REGENTS 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 REGENTS 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.
+ */
+
+#include "log_level.hh"
+
+#include <string.h>
+
+#include "config.h"
+
+log_level_t
+string2level(const char* levelstr, ssize_t len, bool exact)
+{
+ log_level_t retval = LEVEL_UNKNOWN;
+
+ if (len == (ssize_t) -1) {
+ len = strlen(levelstr);
+ }
+
+ if (((len == 1) || ((len > 1) && (levelstr[1] == ' ')))
+ && (retval = abbrev2level(levelstr, 1)) != LEVEL_UNKNOWN)
+ {
+ return retval;
+ }
+
+#define YYCTYPE unsigned char
+#define RET(tok) \
+ { \
+ return tok; \
+ }
+
+ const YYCTYPE* YYCURSOR = (const unsigned char*) levelstr;
+ const YYCTYPE* YYLIMIT = (const unsigned char*) levelstr + len;
+ const YYCTYPE* YYMARKER = YYCURSOR;
+ const YYCTYPE* debug_level = nullptr;
+
+#define YYPEEK() (YYCURSOR < YYLIMIT ? *YYCURSOR : 0)
+#define YYSKIP() ++YYCURSOR
+#define YYBACKUP() YYMARKER = YYCURSOR
+#define YYRESTORE() YYCURSOR = YYMARKER
+#define YYSTAGP(x) x = YYCURSOR - 1
+
+loop
+ :
+#line 71 "../../lnav/src/log_level_re.cc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ yych = YYPEEK();
+ switch (yych) {
+ case 0x00:
+ goto yy2;
+ case 'C':
+ case 'c':
+ goto yy6;
+ case 'D':
+ case 'd':
+ goto yy7;
+ case 'E':
+ case 'e':
+ goto yy8;
+ case 'F':
+ case 'f':
+ goto yy9;
+ case 'I':
+ case 'i':
+ goto yy10;
+ case 'N':
+ case 'n':
+ goto yy11;
+ case 'S':
+ case 's':
+ goto yy12;
+ case 'T':
+ case 't':
+ goto yy13;
+ case 'W':
+ case 'w':
+ goto yy14;
+ default:
+ goto yy4;
+ }
+yy2:
+ YYSKIP();
+#line 73 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_UNKNOWN);
+ }
+#line 102 "../../lnav/src/log_level_re.cc"
+yy4:
+ YYSKIP();
+yy5
+ :
+#line 100 "../../lnav/src/log_level_re.re"
+{
+ goto loop;
+}
+#line 108 "../../lnav/src/log_level_re.cc"
+yy6:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy15;
+ default:
+ goto yy5;
+ }
+yy7:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'E':
+ case 'e':
+ goto yy17;
+ default:
+ goto yy5;
+ }
+yy8:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy18;
+ default:
+ goto yy5;
+ }
+yy9:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'A':
+ case 'a':
+ goto yy19;
+ default:
+ goto yy5;
+ }
+yy10:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'N':
+ case 'n':
+ goto yy20;
+ default:
+ goto yy5;
+ }
+yy11:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'O':
+ case 'o':
+ goto yy21;
+ default:
+ goto yy5;
+ }
+yy12:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'E':
+ case 'e':
+ goto yy22;
+ case 'T':
+ case 't':
+ goto yy23;
+ default:
+ goto yy5;
+ }
+yy13:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy24;
+ default:
+ goto yy5;
+ }
+yy14:
+ yyaccept = 0;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'A':
+ case 'a':
+ goto yy25;
+ default:
+ goto yy5;
+ }
+yy15:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'I':
+ case 'i':
+ goto yy26;
+ default:
+ goto yy16;
+ }
+yy16:
+ YYRESTORE();
+ switch (yyaccept) {
+ case 0:
+ goto yy5;
+ case 1:
+ goto yy29;
+ default:
+ goto yy48;
+ }
+yy17:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'B':
+ case 'b':
+ goto yy27;
+ default:
+ goto yy16;
+ }
+yy18:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy28;
+ default:
+ goto yy16;
+ }
+yy19:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'T':
+ case 't':
+ goto yy30;
+ default:
+ goto yy16;
+ }
+yy20:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'F':
+ case 'f':
+ goto yy31;
+ default:
+ goto yy16;
+ }
+yy21:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'T':
+ case 't':
+ goto yy32;
+ default:
+ goto yy16;
+ }
+yy22:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'V':
+ case 'v':
+ goto yy33;
+ default:
+ goto yy16;
+ }
+yy23:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'A':
+ case 'a':
+ goto yy34;
+ default:
+ goto yy16;
+ }
+yy24:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'A':
+ case 'a':
+ goto yy35;
+ default:
+ goto yy16;
+ }
+yy25:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy36;
+ default:
+ goto yy16;
+ }
+yy26:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'T':
+ case 't':
+ goto yy37;
+ default:
+ goto yy16;
+ }
+yy27:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'U':
+ case 'u':
+ goto yy38;
+ default:
+ goto yy16;
+ }
+yy28:
+ yyaccept = 1;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'O':
+ case 'o':
+ goto yy39;
+ default:
+ goto yy29;
+ }
+yy29
+ :
+#line 96 "../../lnav/src/log_level_re.re"
+{
+ RET(LEVEL_ERROR);
+}
+#line 320 "../../lnav/src/log_level_re.cc"
+yy30:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'A':
+ case 'a':
+ goto yy40;
+ default:
+ goto yy16;
+ }
+yy31:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'O':
+ case 'o':
+ goto yy41;
+ default:
+ goto yy16;
+ }
+yy32:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'I':
+ case 'i':
+ goto yy43;
+ default:
+ goto yy16;
+ }
+yy33:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'E':
+ case 'e':
+ goto yy44;
+ default:
+ goto yy16;
+ }
+yy34:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'T':
+ case 't':
+ goto yy45;
+ default:
+ goto yy16;
+ }
+yy35:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'C':
+ case 'c':
+ goto yy46;
+ default:
+ goto yy16;
+ }
+yy36:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'N':
+ case 'n':
+ goto yy47;
+ default:
+ goto yy16;
+ }
+yy37:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'I':
+ case 'i':
+ goto yy49;
+ default:
+ goto yy16;
+ }
+yy38:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'G':
+ case 'g':
+ goto yy50;
+ default:
+ goto yy16;
+ }
+yy39:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy52;
+ default:
+ goto yy16;
+ }
+yy40:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'L':
+ case 'l':
+ goto yy53;
+ default:
+ goto yy16;
+ }
+yy41:
+ YYSKIP();
+#line 92 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_INFO);
+ }
+#line 413 "../../lnav/src/log_level_re.cc"
+yy43:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'C':
+ case 'c':
+ goto yy55;
+ default:
+ goto yy16;
+ }
+yy44:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'R':
+ case 'r':
+ goto yy56;
+ default:
+ goto yy16;
+ }
+yy45:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'S':
+ case 's':
+ goto yy57;
+ default:
+ goto yy16;
+ }
+yy46:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'E':
+ case 'e':
+ goto yy59;
+ default:
+ goto yy16;
+ }
+yy47:
+ yyaccept = 2;
+ YYSKIP();
+ YYBACKUP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'I':
+ case 'i':
+ goto yy61;
+ default:
+ goto yy48;
+ }
+yy48
+ :
+#line 95 "../../lnav/src/log_level_re.re"
+{
+ RET(LEVEL_WARNING);
+}
+#line 459 "../../lnav/src/log_level_re.cc"
+yy49:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'C':
+ case 'c':
+ goto yy62;
+ default:
+ goto yy16;
+ }
+yy50:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ goto yy63;
+ default:
+ goto yy51;
+ }
+yy51:
+ YYSTAGP(debug_level);
+#line 75 "../../lnav/src/log_level_re.re"
+ {
+ if (debug_level == nullptr) {
+ RET(LEVEL_DEBUG);
+ }
+ switch (*debug_level) {
+ case '2':
+ RET(LEVEL_DEBUG2);
+ case '3':
+ RET(LEVEL_DEBUG3);
+ case '4':
+ RET(LEVEL_DEBUG4);
+ case '5':
+ RET(LEVEL_DEBUG5);
+ default:
+ RET(LEVEL_DEBUG);
+ }
+ }
+#line 498 "../../lnav/src/log_level_re.cc"
+yy52:
+ YYSKIP();
+ goto yy29;
+yy53:
+ YYSKIP();
+#line 99 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_FATAL);
+ }
+#line 506 "../../lnav/src/log_level_re.cc"
+yy55:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'E':
+ case 'e':
+ goto yy64;
+ default:
+ goto yy16;
+ }
+yy56:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'E':
+ case 'e':
+ goto yy66;
+ default:
+ goto yy16;
+ }
+yy57:
+ YYSKIP();
+#line 94 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_STATS);
+ }
+#line 527 "../../lnav/src/log_level_re.cc"
+yy59:
+ YYSKIP();
+#line 74 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_TRACE);
+ }
+#line 532 "../../lnav/src/log_level_re.cc"
+yy61:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'N':
+ case 'n':
+ goto yy68;
+ default:
+ goto yy16;
+ }
+yy62:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'A':
+ case 'a':
+ goto yy69;
+ default:
+ goto yy16;
+ }
+yy63:
+ YYSKIP();
+ goto yy51;
+yy64:
+ YYSKIP();
+#line 93 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_NOTICE);
+ }
+#line 556 "../../lnav/src/log_level_re.cc"
+yy66:
+ YYSKIP();
+#line 98 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_CRITICAL);
+ }
+#line 561 "../../lnav/src/log_level_re.cc"
+yy68:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'G':
+ case 'g':
+ goto yy70;
+ default:
+ goto yy16;
+ }
+yy69:
+ YYSKIP();
+ yych = YYPEEK();
+ switch (yych) {
+ case 'L':
+ case 'l':
+ goto yy71;
+ default:
+ goto yy16;
+ }
+yy70:
+ YYSKIP();
+ goto yy48;
+yy71:
+ YYSKIP();
+#line 97 "../../lnav/src/log_level_re.re"
+ {
+ RET(LEVEL_CRITICAL);
+ }
+#line 585 "../../lnav/src/log_level_re.cc"
+}
+#line 102 "../../lnav/src/log_level_re.re"
+}