// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/parser.c
// Function: rule_expr_assign
_RULE(expr_assign)
	_RULE_RETURNED_NODE(_RULE_NAME(expr_cond)(_RULE_PARSER_CTX))

	do {
		_RULE_PUSH_LEXCTX
		_RULE_NEXT_TOKEN
		if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_ADD_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_ADD_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_SUB_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_SUB_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_MUL_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_MUL_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_DIV_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_DIV_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_MOD_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_MOD_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_BAND_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_BAND_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_BOR_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_BOR_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_BXOR_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_BXOR_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_SHIFT_LEFT_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_SHIFT_LEFT_ASSIGN, expr)
		} else if (_RULE_TOKEN_TYPE == FE_TOKEN_PNCT_SHIFT_RIGHT_ASSIGN) {
			_EXPR_BINARY_ITEM(FE_NODE_EXPR_SHIFT_RIGHT_ASSIGN, expr)
		} else {
			_RULE_POP_LEXCTX
			break;
		}
		_RULE_ABANDON_LEXCTX
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x44308
jmp 0x44327
leaq 0x38245(%rip), %rdi     # 0x7c554
leaq 0x37b16(%rip), %rsi     # 0x7be2c
movl $0x632, %edx            # imm = 0x632
leaq 0x3836b(%rip), %rcx     # 0x7c68d
callq 0x30a0
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x44333
jmp 0x44352
leaq 0x3824d(%rip), %rdi     # 0x7c587
leaq 0x37aeb(%rip), %rsi     # 0x7be2c
movl $0x632, %edx            # imm = 0x632
leaq 0x38340(%rip), %rcx     # 0x7c68d
callq 0x30a0
movq $0x0, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4cc0
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44cd0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4cc0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4940
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
cmpq $0x0, -0x20(%rbp)
jne 0x443b7
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xd4(%rbp)
jmp 0x443c3
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xd4(%rbp)
movl -0xd4(%rbp), %eax
cmpl $0x4008, %eax           # imm = 0x4008
jne 0x44467
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x44451
movq -0x10(%rbp), %rdi
movl $0xe10, %esi            # imm = 0xE10
leaq 0x382bf(%rip), %rdx     # 0x7c6bf
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44462
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c94
cmpq $0x0, -0x20(%rbp)
jne 0x4447b
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xd8(%rbp)
jmp 0x44487
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xd8(%rbp)
movl -0xd8(%rbp), %eax
cmpl $0x4009, %eax           # imm = 0x4009
jne 0x4452b
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x44515
movq -0x10(%rbp), %rdi
movl $0xe11, %esi            # imm = 0xE11
leaq 0x3127f(%rip), %rdx     # 0x75743
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44526
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c92
cmpq $0x0, -0x20(%rbp)
jne 0x4453f
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xdc(%rbp)
jmp 0x4454b
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xdc(%rbp)
movl -0xdc(%rbp), %eax
cmpl $0x400a, %eax           # imm = 0x400A
jne 0x445ef
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x445d9
movq -0x10(%rbp), %rdi
movl $0xe12, %esi            # imm = 0xE12
leaq 0x31271(%rip), %rdx     # 0x757f9
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x445ea
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c90
cmpq $0x0, -0x20(%rbp)
jne 0x44603
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xe0(%rbp)
jmp 0x4460f
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xe0(%rbp)
movl -0xe0(%rbp), %eax
cmpl $0x400b, %eax           # imm = 0x400B
jne 0x446b3
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0x4469d
movq -0x10(%rbp), %rdi
movl $0xe13, %esi            # imm = 0xE13
leaq 0x30e42(%rip), %rdx     # 0x7548e
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x446ae
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c8e
cmpq $0x0, -0x20(%rbp)
jne 0x446c7
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xe4(%rbp)
jmp 0x446d3
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xe4(%rbp)
movl -0xe4(%rbp), %eax
cmpl $0x400c, %eax           # imm = 0x400C
jne 0x44777
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
je 0x44761
movq -0x10(%rbp), %rdi
movl $0xe14, %esi            # imm = 0xE14
leaq 0x30e45(%rip), %rdx     # 0x75555
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x70(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44772
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c8c
cmpq $0x0, -0x20(%rbp)
jne 0x4478b
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xe8(%rbp)
jmp 0x44797
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xe8(%rbp)
movl -0xe8(%rbp), %eax
cmpl $0x400d, %eax           # imm = 0x400D
jne 0x4483b
movq -0x18(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
je 0x44825
movq -0x10(%rbp), %rdi
movl $0xe15, %esi            # imm = 0xE15
leaq 0x30e48(%rip), %rdx     # 0x7561c
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x78(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x80(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44836
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c8a
cmpq $0x0, -0x20(%rbp)
jne 0x4484f
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xec(%rbp)
jmp 0x4485b
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xec(%rbp)
movl -0xec(%rbp), %eax
cmpl $0x400e, %eax           # imm = 0x400E
jne 0x44914
movq -0x18(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0x90(%rbp)
cmpq $0x0, -0x90(%rbp)
je 0x448fe
movq -0x10(%rbp), %rdi
movl $0xe16, %esi            # imm = 0xE16
leaq 0x37e32(%rip), %rdx     # 0x7c6d3
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x88(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x88(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x90(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x90(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x4490f
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c88
cmpq $0x0, -0x20(%rbp)
jne 0x44928
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xf0(%rbp)
jmp 0x44934
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xf0(%rbp)
movl -0xf0(%rbp), %eax
cmpl $0x400f, %eax           # imm = 0x400F
jne 0x449ed
movq -0x18(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0xa0(%rbp)
cmpq $0x0, -0xa0(%rbp)
je 0x449d7
movq -0x10(%rbp), %rdi
movl $0xe17, %esi            # imm = 0xE17
leaq 0x31317(%rip), %rdx     # 0x75c91
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x98(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x98(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xa0(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x449e8
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c86
cmpq $0x0, -0x20(%rbp)
jne 0x44a01
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xf4(%rbp)
jmp 0x44a0d
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xf4(%rbp)
movl -0xf4(%rbp), %eax
cmpl $0x4010, %eax           # imm = 0x4010
jne 0x44ac6
movq -0x18(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0xb0(%rbp)
cmpq $0x0, -0xb0(%rbp)
je 0x44ab0
movq -0x10(%rbp), %rdi
movl $0xe18, %esi            # imm = 0xE18
leaq 0x37c99(%rip), %rdx     # 0x7c6ec
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xa8(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xa8(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xb0(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xb0(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44ac1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c84
cmpq $0x0, -0x20(%rbp)
jne 0x44ada
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xf8(%rbp)
jmp 0x44ae6
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xf8(%rbp)
movl -0xf8(%rbp), %eax
cmpl $0x4011, %eax           # imm = 0x4011
jne 0x44b9f
movq -0x18(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0xc0(%rbp)
cmpq $0x0, -0xc0(%rbp)
je 0x44b89
movq -0x10(%rbp), %rdi
movl $0xe19, %esi            # imm = 0xE19
leaq 0x30e00(%rip), %rdx     # 0x7592c
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xb8(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xb8(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xc0(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xc0(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44b9a
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c82
cmpq $0x0, -0x20(%rbp)
jne 0x44bb3
movl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0xfc(%rbp)
jmp 0x44bbf
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xfc(%rbp)
movl -0xfc(%rbp), %eax
cmpl $0x4012, %eax           # imm = 0x4012
jne 0x44c72
movq -0x18(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x44140
movq %rax, -0xd0(%rbp)
cmpq $0x0, -0xd0(%rbp)
je 0x44c62
movq -0x10(%rbp), %rdi
movl $0xe1a, %esi            # imm = 0xE1A
leaq 0x30e05(%rip), %rdx     # 0x75a0a
xorl %eax, %eax
movl %eax, %ecx
callq 0x42060
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xc8(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xc8(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0xd0(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xd0(%rbp), %rdx
callq 0x7e20
movq %rax, -0x18(%rbp)
jmp 0x44c70
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c80
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4d50
jmp 0x44ca0
jmp 0x44c82
jmp 0x44c84
jmp 0x44c86
jmp 0x44c88
jmp 0x44c8a
jmp 0x44c8c
jmp 0x44c8e
jmp 0x44c90
jmp 0x44c92
jmp 0x44c94
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4de0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4de0
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopw %cs:(%rax,%rax)