// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/parser.c
// Function: setup_parser
void setup_parser(void) {
    Integer = mpc_new("integer");
    FPoint = mpc_new("fpoint");
    Number = mpc_new("number");
    Bool = mpc_new("bool");
    String = mpc_new("string");
    Comment = mpc_new("comment");
    Symbol = mpc_new("symbol");
    QSymbol = mpc_new("qsymbol");
    Sexpr = mpc_new("sexpr");
    Qexpr = mpc_new("qexpr");
    Dict = mpc_new("dict");
    EExpr = mpc_new("eexpr");
    CExpr = mpc_new("cexpr");
    Expr = mpc_new("expr");
    Awl = mpc_new("awl");

    mpca_lang(MPCA_LANG_DEFAULT,
        "                                                                   \
        integer : /[+-]?[0-9]+/ ;                                           \
        fpoint  : /[+-]?[0-9]+\\.[0-9]*/ | /[+-]?[0-9]*\\.[0-9]+/ ;         \
        number  : <fpoint> | <integer> ;                                    \
        bool    : \"true\" | \"false\" ;                                    \
        string  : /\"(\\\\.|[^\"])*\"/ | /'(\\\\.|[^'])*'/ ;                \
        comment : /;[^\\r\\n]*/ ;                                           \
        symbol  : /[a-zA-Z0-9_+\\-*\\/=<>!\\?&%^$]+/ ;                      \
        qsymbol : ':' <string> | ':' <symbol> ;                             \
        sexpr   : '(' <expr>* ')' ;                                         \
        qexpr   : '{' <expr>* '}' ;                                         \
        dict    : '[' (<qsymbol> <expr>)* ']' ;                             \
        eexpr   : '\\\\' <expr> ;                                           \
        cexpr   : '@' <expr> ;                                              \
        expr    : <number> | <bool> | <string> | <symbol> | <qsymbol> |     \
                  <comment> | <sexpr> | <qexpr> | <dict> |                  \
                  <eexpr> | <cexpr> ;                                       \
        awl     : /^/ <expr>* /$/ ;                                         \
        ",
        Integer, FPoint, Number, Bool, String, Comment, Symbol, QSymbol, Sexpr, Qexpr, Dict, EExpr, CExpr, Expr, Awl);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
leaq 0x6429(%rip), %rdi      # 0x1b001
callq 0xdb00
movq %rax, 0xd76c(%rip)      # 0x22350
leaq 0x66d2(%rip), %rdi      # 0x1b2bd
callq 0xdb00
movq %rax, 0xd761(%rip)      # 0x22358
leaq 0x6423(%rip), %rdi      # 0x1b021
callq 0xdb00
movq %rax, 0xd756(%rip)      # 0x22360
leaq 0x66b3(%rip), %rdi      # 0x1b2c4
callq 0xdb00
movq %rax, 0xd74b(%rip)      # 0x22368
leaq 0x641a(%rip), %rdi      # 0x1b03e
callq 0xdb00
movq %rax, 0xd740(%rip)      # 0x22370
leaq 0x6692(%rip), %rdi      # 0x1b2c9
callq 0xdb00
movq %rax, 0xd735(%rip)      # 0x22378
leaq 0x5acc(%rip), %rdi      # 0x1a716
callq 0xdb00
movq %rax, 0xd72a(%rip)      # 0x22380
leaq 0x6674(%rip), %rdi      # 0x1b2d1
callq 0xdb00
movq %rax, 0xd71f(%rip)      # 0x22388
leaq 0x6669(%rip), %rdi      # 0x1b2d9
callq 0xdb00
movq %rax, 0xd714(%rip)      # 0x22390
leaq 0x665c(%rip), %rdi      # 0x1b2df
callq 0xdb00
movq %rax, 0xd709(%rip)      # 0x22398
leaq 0x664f(%rip), %rdi      # 0x1b2e5
callq 0xdb00
movq %rax, 0xd6fe(%rip)      # 0x223a0
leaq 0x6641(%rip), %rdi      # 0x1b2ea
callq 0xdb00
movq %rax, 0xd6f3(%rip)      # 0x223a8
leaq 0x6634(%rip), %rdi      # 0x1b2f0
callq 0xdb00
movq %rax, 0xd6e8(%rip)      # 0x223b0
leaq 0x6622(%rip), %rdi      # 0x1b2f1
callq 0xdb00
movq %rax, 0xd6dd(%rip)      # 0x223b8
leaq 0x585a(%rip), %rdi      # 0x1a53c
callq 0xdb00
movq %rax, 0xd6d2(%rip)      # 0x223c0
movq 0xd65b(%rip), %rdx      # 0x22350
movq 0xd65c(%rip), %rcx      # 0x22358
movq 0xd65d(%rip), %r8       # 0x22360
movq 0xd65e(%rip), %r9       # 0x22368
movq 0xd65f(%rip), %rax      # 0x22370
movq 0xd660(%rip), %rsi      # 0x22378
movq %rsi, -0x40(%rbp)
movq 0xd65d(%rip), %rsi      # 0x22380
movq %rsi, -0x38(%rbp)
movq 0xd65a(%rip), %r13      # 0x22388
movq 0xd65b(%rip), %r12      # 0x22390
movq 0xd65c(%rip), %r15      # 0x22398
movq 0xd65d(%rip), %r14      # 0x223a0
movq 0xd65e(%rip), %rbx      # 0x223a8
movq 0xd65f(%rip), %r11      # 0x223b0
movq 0xd660(%rip), %r10      # 0x223b8
movq 0xd661(%rip), %rsi      # 0x223c0
movq %rsi, -0x30(%rbp)
xorl %edi, %edi
leaq 0x658a(%rip), %rsi      # 0x1b2f6
movq %rax, (%rsp)
movq -0x40(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0x38(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0x30(%rbp), %rax
movq %r13, 0x18(%rsp)
movq %r12, 0x20(%rsp)
movq %r15, 0x28(%rsp)
movq %r14, 0x30(%rsp)
movq %rbx, 0x38(%rsp)
movq %r11, 0x40(%rsp)
movq %r10, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movb $0x0, %al
callq 0x13250
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)