// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::post_bracket_process(exprtk::lexer::token::token_type const&, exprtk::details::expression_node<double>*&)
inline bool post_bracket_process(const typename token_t::token_type& token, expression_node_ptr& branch)
      {
         bool implied_mul = false;

         if (details::is_generally_string_node(branch))
            return true;

         if (details::is_ivector_node(branch))
            return true;

         const lexer::parser_helper::token_advance_mode hold = prsrhlpr_t::e_hold;

         switch (token)
         {
            case token_t::e_lcrlbracket : implied_mul = token_is(token_t::e_lbracket   , hold) ||
                                                        token_is(token_t::e_lcrlbracket, hold) ||
                                                        token_is(token_t::e_lsqrbracket, hold) ;
                                          break;

            case token_t::e_lbracket    : implied_mul = token_is(token_t::e_lbracket   , hold) ||
                                                        token_is(token_t::e_lcrlbracket, hold) ||
                                                        token_is(token_t::e_lsqrbracket, hold) ;
                                          break;

            case token_t::e_lsqrbracket : implied_mul = token_is(token_t::e_lbracket   , hold) ||
                                                        token_is(token_t::e_lcrlbracket, hold) ||
                                                        token_is(token_t::e_lsqrbracket, hold) ;
                                          break;

            default                     : return true;
         }

         if (implied_mul)
         {
            if (!settings_.commutative_check_enabled())
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR230 - Invalid sequence of brackets",
                  exprtk_error_location));

               return false;
            }
            else if (token_t::e_eof != current_token().type)
            {
               lexer().insert_front(current_token().type);
               lexer().insert_front(token_t::e_mul);
               next_token();
            }
         }

         return true;
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdx), %rdi
callq 0x20b691
movb $0x1, %bpl
testb %al, %al
jne 0x1fd629
movq (%r15), %rdi
callq 0x208d51
testb %al, %al
jne 0x1fd629
movl (%r14), %eax
cmpl $0x28, %eax
je 0x1fd511
cmpl $0x5b, %eax
je 0x1fd511
cmpl $0x7b, %eax
jne 0x1fd629
leaq 0x70(%rsp), %rsi
movl $0x28, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
jne 0x1fd560
leaq 0x30(%rsp), %rsi
movl $0x7b, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
jne 0x1fd560
leaq 0x10(%rsp), %rsi
movl $0x5b, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
je 0x1fd629
cmpb $0x0, 0xd5(%rbx)
je 0x1fd595
movl 0x70(%rbx), %esi
cmpl $0x6, %esi
je 0x1fd629
movq %rbx, %rdi
callq 0x2a5d5e
pushq $0x2a
popq %rsi
movq %rbx, %rdi
callq 0x2a5d5e
movq %rbx, %rdi
callq 0x1f6d68
jmp 0x1fd629
leaq 0xe0785(%rip), %rsi     # 0x2ddd21
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x127016
leaq 0x50(%rsp), %rdi
movl $0x78b0, %esi           # imm = 0x78B0
callq 0x1f7a3c
leaq 0xdc63a(%rip), %rsi     # 0x2d9bfb
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x30(%rsp), %rcx
leaq 0x10(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0x70(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
leaq 0x10(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x30(%rsp), %rdi
callq 0x118648
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1f5c4c
jmp 0x1fd64b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x118648
jmp 0x1fd65a
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x1fd669
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x118648
movq %rbx, %rdi
callq 0x118360
nop