!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/usr/share/doc/re2c/examples/c/submatch/   drwxr-xr-x
Free 29.21 GB of 117.98 GB (24.76%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     parse_records.c (17.4 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -i
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <vector>

struct mtag_t
{
    int pred;
    const char *tag;
};

typedef std::vector<mtag_t> mtagpool_t;

static void mtag(int *pt, const char *t, mtagpool_t *tp) {
    mtag_t l = {*pt, t};
    *pt = (int) tp->size();
    tp->push_back(l);
}

static void print_channels(const mtagpool_t &tp, int x, int y) {
    if (x == -1) return;
    print_channels(tp, tp[x].pred, tp[y].pred);
    const char *px = tp[x].tag, *py = tp[y].tag;
    fprintf(stderr, "    %.*s\n", (int) (py - px), px);
}

#define YYMTAGP(t) mtag(&t, YYCURSOR, &tp)
#define YYMTAGN(t) mtag(&t, NULL,     &tp)

static int lex(const char *YYCURSOR) {
    const char *YYMARKER, *n1, *n2, *a1, *a2, *c1, *c2;
    mtagpool_t tp;
    int h1, h2;
    const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;const char *yyt6;
    int yytm7;int yytm8;

    for (;;) {
        tp.clear();
    yytm7 = -1;yytm8 = -1;
    
{
    char yych;
    yych = *YYCURSOR;
    switch (yych) {
        case 0x00: goto yy1;
        case '\t':
        case ' ': goto yy4;
        case '\n': goto yy6;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '_':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            yyt1 = YYCURSOR;
            goto yy7;
        default: goto yy2;
    }
yy1:
    ++YYCURSOR;
    { return 0; }
yy2:
    ++YYCURSOR;
yy3:
    { fprintf(stderr, "error: %s\n", YYCURSOR); return 1; }
yy4:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy4;
        default: goto yy5;
    }
yy5:
    { continue; }
yy6:
    ++YYCURSOR;
    goto yy5;
yy7:
    yych = *(YYMARKER = ++YYCURSOR);
    switch (yych) {
        case '\t':
        case ' ':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '_':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
        case '{': goto yy11;
        default: goto yy3;
    }
yy8:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy8;
        case '{': goto yy12;
        default: goto yy9;
    }
yy9:
    YYCURSOR = YYMARKER;
    goto yy3;
yy10:
    yych = *++YYCURSOR;
yy11:
    switch (yych) {
        case '\t':
        case ' ':
            yyt2 = YYCURSOR;
            goto yy8;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '_':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy10;
        case '{':
            yyt2 = YYCURSOR;
            goto yy12;
        default: goto yy9;
    }
yy12:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy12;
        case '\n': goto yy13;
        default: goto yy9;
    }
yy13:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy13;
        case 'n': goto yy14;
        default: goto yy9;
    }
yy14:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'a': goto yy15;
        default: goto yy9;
    }
yy15:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'm': goto yy16;
        default: goto yy9;
    }
yy16:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'e': goto yy17;
        default: goto yy9;
    }
yy17:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy17;
        case '=': goto yy18;
        default: goto yy9;
    }
yy18:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy18;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
            yyt3 = YYCURSOR;
            goto yy19;
        default: goto yy9;
    }
yy19:
    yych = *++YYCURSOR;
    switch (yych) {
        case '.': goto yy20;
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy21;
        default: goto yy9;
    }
yy20:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ':
            yyt4 = YYCURSOR;
            goto yy22;
        case '\n':
            yyt4 = YYCURSOR;
            goto yy23;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z': goto yy19;
        default: goto yy9;
    }
yy21:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ':
            yyt4 = YYCURSOR;
            goto yy22;
        case '\n':
            yyt4 = YYCURSOR;
            goto yy23;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z': goto yy19;
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy21;
        default: goto yy9;
    }
yy22:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy22;
        case '\n': goto yy23;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z': goto yy19;
        default: goto yy9;
    }
yy23:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy23;
        case 'c': goto yy24;
        default: goto yy9;
    }
yy24:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'o': goto yy25;
        default: goto yy9;
    }
yy25:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'u': goto yy26;
        default: goto yy9;
    }
yy26:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'n': goto yy27;
        default: goto yy9;
    }
yy27:
    yych = *++YYCURSOR;
    switch (yych) {
        case 't': goto yy28;
        default: goto yy9;
    }
yy28:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'r': goto yy29;
        default: goto yy9;
    }
yy29:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'y': goto yy30;
        default: goto yy9;
    }
yy30:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy30;
        case '=': goto yy31;
        default: goto yy9;
    }
yy31:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t': goto yy31;
        case ' ':
            yyt5 = YYCURSOR;
            goto yy32;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            yyt5 = YYCURSOR;
            goto yy33;
        default: goto yy9;
    }
yy32:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
            yyt6 = YYCURSOR;
            goto yy34;
        case '\n':
            yyt6 = YYCURSOR;
            goto yy35;
        case ' ':
            yyt5 = YYCURSOR;
            goto yy32;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            yyt5 = YYCURSOR;
            goto yy33;
        default: goto yy9;
    }
yy33:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
            yyt6 = YYCURSOR;
            goto yy36;
        case '\n':
            yyt6 = YYCURSOR;
            goto yy35;
        case ' ':
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy33;
        default: goto yy9;
    }
yy34:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t': goto yy34;
        case '\n': goto yy35;
        case ' ':
            yyt5 = YYCURSOR;
            goto yy32;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            yyt5 = YYCURSOR;
            goto yy33;
        default: goto yy9;
    }
yy35:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy35;
        case 'c': goto yy37;
        default: goto yy9;
    }
yy36:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy36;
        case '\n': goto yy35;
        default: goto yy9;
    }
yy37:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'h': goto yy38;
        default: goto yy9;
    }
yy38:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'a': goto yy39;
        default: goto yy9;
    }
yy39:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'n': goto yy40;
        default: goto yy9;
    }
yy40:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'n': goto yy41;
        default: goto yy9;
    }
yy41:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'e': goto yy42;
        default: goto yy9;
    }
yy42:
    yych = *++YYCURSOR;
    switch (yych) {
        case 'l': goto yy43;
        default: goto yy9;
    }
yy43:
    yych = *++YYCURSOR;
    switch (yych) {
        case 's': goto yy44;
        default: goto yy9;
    }
yy44:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy44;
        case '=': goto yy45;
        default: goto yy9;
    }
yy45:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy45;
        case '\n':
            YYMTAGN(yytm8);
            YYMTAGN(yytm7);
            goto yy46;
        case '#':
            YYMTAGP(yytm7);
            goto yy47;
        case '-':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            YYMTAGP(yytm7);
            goto yy48;
        default: goto yy9;
    }
yy46:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy46;
        case '}': goto yy49;
        default: goto yy9;
    }
yy47:
    yych = *++YYCURSOR;
    switch (yych) {
        case '-':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy50;
        default: goto yy9;
    }
yy48:
    yych = *++YYCURSOR;
    switch (yych) {
        case '-':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy48;
        case '/': goto yy51;
        default: goto yy9;
    }
yy49:
    ++YYCURSOR;
    n1 = yyt1;
    n2 = yyt2;
    a1 = yyt3;
    a2 = yyt4;
    c1 = yyt5;
    c2 = yyt6;
    h1 = yytm7;
    h2 = yytm8;
    {
            fprintf(stderr, "\n%.*s\n", (int) (n2 - n1), n1);
            fprintf(stderr, "  name:     %.*s\n", (int) (a2 - a1), a1);
            fprintf(stderr, "  country:  %.*s\n", (int) (c2 - c1), c1);
            fprintf(stderr, "  channels:\n");
            print_channels(tp, h1, h2);
            continue;
        }
yy50:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ':
            YYMTAGP(yytm8);
            goto yy52;
        case '-':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z': goto yy50;
        case ';':
            YYMTAGP(yytm8);
            goto yy53;
        default: goto yy9;
    }
yy51:
    yych = *++YYCURSOR;
    switch (yych) {
        case '#': goto yy47;
        default: goto yy9;
    }
yy52:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy52;
        case ';': goto yy53;
        default: goto yy9;
    }
yy53:
    yych = *++YYCURSOR;
    switch (yych) {
        case '\t':
        case ' ': goto yy53;
        case '\n': goto yy46;
        case '#':
            YYMTAGP(yytm7);
            goto yy47;
        case '-':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            YYMTAGP(yytm7);
            goto yy48;
        default: goto yy9;
    }
}

    }
}

int main() {
    const char *fname = "etc_passwd";
    FILE *f;

    // prepare input file
    f = fopen(fname, "w");
    fprintf(f,
        "h4cker1970 {\n"
        "    name     = Jon Smith\n"
        "    country  = UK\n"
        "    channels = freenode/#gentoo-dev; freenode/#gentoo-arch; freenode/#alpha;\n"
        "}\n"
        "\n"
        "mitek {\n"
        "    name     = Mitrofan Rygoravich\n"
        "    country  = Belarus\n"
        "    channels = bynets/#haskell; freenode/#unix;\n"
        "}\n"
        "\n");
    fclose(f);

    // read input file into buffer
    f = fopen(fname, "r");
    fseek(f, 0, SEEK_END);
    const size_t fsize = (size_t) ftell(f);
    fseek(f, 0, SEEK_SET);
    char *buffer = (char*) malloc(fsize + 1);
    fread(buffer, 1, fsize, f);
    buffer[fsize] = 0;
    fclose(f);

    assert(lex(buffer) == 0);

    // cleanup
    remove(fname);
    free(buffer);
    return 0;
}
c/submatch/parse_records.re:58:18: warning: rule matches empty string [-Wmatch-empty-string]
c/submatch/parse_records.re:64:16: warning: tag 'a2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
c/submatch/parse_records.re:64:16: warning: tag 'c1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
c/submatch/parse_records.re:64:16: warning: tag 'c2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0071 ]--