// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: bool exprtk::parser<double>::expression_generator<double>::synthesize_sf4ext_expression::compile_left<double const&>(exprtk::parser<double>::expression_generator<double>&, double const&, exprtk::details::operator_type const&, exprtk::details::expression_node<double>*&, exprtk::details::expression_node<double>*&)
static inline bool compile_left(expression_generator<Type>& expr_gen,
                                            ExternalType t,
                                            const details::operator_type& operation,
                                            expression_node_ptr& sf3node,
                                            expression_node_ptr& result)
            {
               if (!details::is_sf3ext_node(sf3node))
                  return false;

               typedef details::T0oT1oT2_base_node<Type>* sf3ext_base_ptr;

               sf3ext_base_ptr n = static_cast<sf3ext_base_ptr>(sf3node);

               const std::string id = "(" + n->type_id() + ")" + expr_gen.to_str(operation) + "t";

               switch (n->type())
               {
                  case details::expression_node<Type>::e_covoc : return compile_left_impl
                                                                    <typename covoc_t::sf3_type_node,ExternalType, ctype, vtype, ctype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_covov : return compile_left_impl
                                                                    <typename covov_t::sf3_type_node,ExternalType, ctype, vtype, vtype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_vocov : return compile_left_impl
                                                                    <typename vocov_t::sf3_type_node,ExternalType, vtype, ctype, vtype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_vovoc : return compile_left_impl
                                                                    <typename vovoc_t::sf3_type_node,ExternalType, vtype, vtype, ctype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_vovov : return compile_left_impl
                                                                    <typename vovov_t::sf3_type_node,ExternalType, vtype, vtype, vtype>
                                                                       (expr_gen, id, t, sf3node, result);

                  default                                      : return false;
               }
            }

// Assembly:
subq $0x138, %rsp            # imm = 0x138
movq %rdi, 0x128(%rsp)
movq %rsi, 0x120(%rsp)
movq %rdx, 0x118(%rsp)
movq %rcx, 0x110(%rsp)
movq %r8, 0x108(%rsp)
movq 0x110(%rsp), %rax
movq (%rax), %rdi
callq 0x4858f0
testb $0x1, %al
jne 0x489440
movb $0x0, 0x137(%rsp)
jmp 0x4897c1
movq 0x110(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rsi
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq 0x60(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq *%rax
movq 0x20(%rsp), %rdx
leaq 0x11da73(%rip), %rsi    # 0x5a6eed
leaq 0x80(%rsp), %rdi
callq 0x29dd70
jmp 0x489489
leaq 0x12c16e(%rip), %rdx    # 0x5b55fe
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x29dc30
jmp 0x4894a7
movq 0x128(%rsp), %rsi
movq 0x118(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x29cc80
jmp 0x4894c3
leaq 0xc0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x29dc80
jmp 0x4894df
leaq 0x1290f6(%rip), %rdx    # 0x5b25dc
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x29dc30
jmp 0x4894fd
leaq 0xc0(%rsp), %rdi
callq 0x11b838
leaq 0x30(%rsp), %rdi
callq 0x11b838
leaq 0xa0(%rsp), %rdi
callq 0x11b838
leaq 0x80(%rsp), %rdi
callq 0x11b838
leaq 0x60(%rsp), %rdi
callq 0x11b838
movq 0x100(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, 0x1c(%rsp)
jmp 0x48954f
movl 0x1c(%rsp), %eax
addl $-0x6a, %eax
movl %eax, %ecx
movq %rcx, 0x10(%rsp)
subl $0x4, %eax
ja 0x4897a4
movq 0x10(%rsp), %rax
leaq 0x11688a(%rip), %rcx    # 0x59fdfc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x4895fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x4895ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x4895e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x4895d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x11b838
leaq 0x30(%rsp), %rdi
callq 0x11b838
leaq 0xa0(%rsp), %rdi
callq 0x11b838
leaq 0x80(%rsp), %rdi
callq 0x11b838
leaq 0x60(%rsp), %rdi
callq 0x11b838
jmp 0x4897d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x11b838
jmp 0x4897d2
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x48a200
movb %al, 0xf(%rsp)
jmp 0x48965c
movb 0xf(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x4897b4
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x48a2f0
movb %al, 0xe(%rsp)
jmp 0x4896a9
movb 0xe(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x4897b4
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x48a3d0
movb %al, 0xd(%rsp)
jmp 0x4896f6
movb 0xd(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x4897b4
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x48a4b0
movb %al, 0xc(%rsp)
jmp 0x489743
movb 0xc(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x4897b4
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x48a590
movb %al, 0xb(%rsp)
jmp 0x48978d
movb 0xb(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x4897b4
movb $0x0, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x11b838
movb 0x137(%rsp), %al
andb $0x1, %al
addq $0x138, %rsp            # imm = 0x138
retq
movq 0x58(%rsp), %rdi
callq 0x11b4e0
nopl (%rax)