user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<run_boolean_compound_tests>:
  endbr64
  push   %r15
  lea    D763(%rip),%rdi
  push   %r14
  push   %r13
  push   %r12
  mov    $0x1,%r12d
  push   %rbp
  lea    D436(%rip),%rbp
  sub    $0x10,%rsp
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <parse_expression@plt>
  mov    %rbp,%rsi
  lea    D487(%rip),%rbp
  xor    %eax,%eax
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  pxor   %xmm1,%xmm1
  subsd  0x8(%rsp),%xmm1
  movapd %xmm1,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L130
  lea    D406(%rip),%r13
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  mov    %r13,%rdi
  lea    D945(%rip),%r12
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L130:
  lea    D59(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm2
  subsd  0x8(%rsp),%xmm2
  movapd %xmm2,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L229
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L229:
  lea    D77(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm3
  subsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L239
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L239:
  lea    D192(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm4
  subsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L1
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L1:
  lea    D713(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm5
  subsd  0x8(%rsp),%xmm5
  movapd %xmm5,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L228
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L228:
  lea    D784(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  pxor   %xmm6,%xmm6
  subsd  0x8(%rsp),%xmm6
  movapd %xmm6,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L13
  lea    D406(%rip),%r13
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  mov    %r13,%rdi
  lea    D945(%rip),%r12
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L13:
  lea    D946(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm7
  subsd  0x8(%rsp),%xmm7
  movapd %xmm7,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L62
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L62:
  lea    D321(%rip),%r15
  mov    %r15,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r15,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D296(%rip),%xmm1
  subsd  0x8(%rsp),%xmm1
  movapd %xmm1,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L140
  mov    D296(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L140:
  lea    D706(%rip),%r14
  mov    %r14,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r14,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D559(%rip),%xmm2
  subsd  0x8(%rsp),%xmm2
  movapd %xmm2,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L213
  mov    D559(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L213:
  lea    D536(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm3
  subsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L198
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L198:
  lea    D220(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  pxor   %xmm4,%xmm4
  subsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L172
  lea    D406(%rip),%r13
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  mov    %r13,%rdi
  lea    D945(%rip),%r12
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L172:
  lea    D377(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm5
  subsd  0x8(%rsp),%xmm5
  movapd %xmm5,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L160
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L160:
  lea    D330(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  pxor   %xmm6,%xmm6
  subsd  0x8(%rsp),%xmm6
  movapd %xmm6,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L169
  lea    D406(%rip),%r13
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  mov    %r13,%rdi
  lea    D945(%rip),%r12
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L169:
  lea    D547(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm7
  subsd  0x8(%rsp),%xmm7
  movapd %xmm7,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L7
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L7:
  lea    D586(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D36(%rip),%xmm1
  subsd  0x8(%rsp),%xmm1
  movapd %xmm1,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L233
  mov    D36(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L233:
  lea    D792(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  pxor   %xmm2,%xmm2
  subsd  0x8(%rsp),%xmm2
  movapd %xmm2,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L200
  lea    D406(%rip),%r13
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  mov    %r13,%rdi
  lea    D945(%rip),%r12
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L200:
  mov    %r15,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r15,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D296(%rip),%xmm3
  subsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L112
  mov    D296(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L112:
  mov    %r14,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r14,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D559(%rip),%xmm4
  subsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jle    L203
  mov    D559(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  xor    %r12d,%r12d
  call   <printf@plt>
L203:
  lea    D942(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D559(%rip),%xmm5
  subsd  0x8(%rsp),%xmm5
  movapd %xmm5,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jg     L206
  lea    D833(%rip),%r13
  mov    %r13,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D296(%rip),%xmm2
  subsd  0x8(%rsp),%xmm2
  movapd %xmm2,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jg     L210
  lea    D403(%rip),%rsi
  test   %r12d,%r12d
  je     L101
L29:
  add    $0x10,%rsp
  lea    D101(%rip),%rdi
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1090 <printf@plt>
  nopl   (%rax)
L210:
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
L185:
  mov    D296(%rip),%rax
  mov    %r13,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D303(%rip),%rsi
  jmp    L29
  nopl   0x0(%rax,%rax,1)
L206:
  mov    D559(%rip),%rax
  lea    D406(%rip),%r13
  lea    D945(%rip),%r12
  mov    %r13,%rdi
  lea    D833(%rip),%r14
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    %r14,%rdi
  call   <parse_expression@plt>
  xor    %eax,%eax
  mov    %r14,%rsi
  mov    %rbp,%rdi
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D296(%rip),%xmm4
  subsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jg     L185
L101:
  lea    D303(%rip),%rsi
  jmp    L29
```

tool_calls: name: extract_symbolic_data
arguments: tag: D763
type_infered: string
name: extract_symbolic_data
arguments: tag: D436
type_infered: string
name: extract_symbolic_data
arguments: tag: D487
type_infered: string
name: extract_symbolic_data
arguments: tag: D406
type_infered: string
name: extract_symbolic_data
arguments: tag: D945
type_infered: string
name: extract_symbolic_data
arguments: tag: D59
type_infered: string
name: extract_symbolic_data
arguments: tag: D36
type_infered: f64
name: extract_symbolic_data
arguments: tag: D77
type_infered: string
name: extract_symbolic_data
arguments: tag: D192
type_infered: string
name: extract_symbolic_data
arguments: tag: D713
type_infered: string
name: extract_symbolic_data
arguments: tag: D784
type_infered: string
name: extract_symbolic_data
arguments: tag: D946
type_infered: string
name: extract_symbolic_data
arguments: tag: D321
type_infered: string
name: extract_symbolic_data
arguments: tag: D296
type_infered: f64
name: extract_symbolic_data
arguments: tag: D706
type_infered: string
name: extract_symbolic_data
arguments: tag: D559
type_infered: f64
name: extract_symbolic_data
arguments: tag: D536
type_infered: string
name: extract_symbolic_data
arguments: tag: D220
type_infered: string
name: extract_symbolic_data
arguments: tag: D377
type_infered: string
name: extract_symbolic_data
arguments: tag: D330
type_infered: string
name: extract_symbolic_data
arguments: tag: D547
type_infered: string
name: extract_symbolic_data
arguments: tag: D586
type_infered: string
name: extract_symbolic_data
arguments: tag: D792
type_infered: string
name: extract_symbolic_data
arguments: tag: D942
type_infered: string
name: extract_symbolic_data
arguments: tag: D833
type_infered: string
name: extract_symbolic_data
arguments: tag: D403
type_infered: string
name: extract_symbolic_data
arguments: tag: D101
type_infered: string
name: extract_symbolic_data
arguments: tag: D303
type_infered: string

tool: D763: Testing boolean expressions:

tool: D436: 2.0 > 3.0 && 2.0 == 2.0

tool: D487:   '%s'


tool: D406:          C: %f


tool: D945:     Parsed: %f


tool: D59: 3.0 > 2.0 && 2.0 == 2.0

tool: D36: 1

tool: D77: 3.0 > 2.0 || 1.0 == 0.0

tool: D192: 3.0 < 2.0 || 1.0 != 0.0

tool: D713: 3.0 < 2.0 || 1.0 == 1.0 && 2.0 <= 3.0

tool: D784: 3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 0.0

tool: D946: 3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 1.0

tool: D321: (3.0<2.0)*5.0 + (3.0>=2.0)*6.0

tool: D296: 6

tool: D706: (3.0>=2.0)*5.0 + (3.0<2.0)*6.0

tool: D559: 5

tool: D536: !(2.0 > 3.0 && 2.0 == 2.0)

tool: D220: 3.0 > 2.0 && !(2.0 == 2.0)

tool: D377: 3.0 > !2.0 || 1.0 == 0.0

tool: D330: 3.0 < 2.0 || 1.0 != !0.0

tool: D547: !(3.0 < 2.0) || 1.0 == 1.0 && 2.0 <= 3.0

tool: D586: 3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || ! 0.0

tool: D792: 3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || !1.0

tool: D942: (1.0)*5.0 + (!1.0)*6.0

tool: D833: (!1.0)*5.0 + (1.0)*6.0

tool: D403: passed

tool: D101: %s



tool: D303: failed

assistant: ```c
void run_boolean_compound_tests() {
  int result = 1;
  printf("Testing boolean expressions:\n");
  {
    double c_value, p_value;
    c_value = (double)2.0 > 3.0 && 2.0 == 2.0;
    p_value = parse_expression("2.0 > 3.0 && 2.0 == 2.0");
    printf("  '%s'\n", "2.0 > 3.0 && 2.0 == 2.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 > 2.0 && 2.0 == 2.0;
    p_value = parse_expression("3.0 > 2.0 && 2.0 == 2.0");
    printf("  '%s'\n", "3.0 > 2.0 && 2.0 == 2.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 > 2.0 || 1.0 == 0.0;
    p_value = parse_expression("3.0 > 2.0 || 1.0 == 0.0");
    printf("  '%s'\n", "3.0 > 2.0 || 1.0 == 0.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 != 0.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 != 0.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 != 0.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 == 1.0 && 2.0 <= 3.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 == 1.0 && 2.0 <= 3.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 == 1.0 && 2.0 <= 3.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 0.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 0.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 0.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 1.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 1.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || 1.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)(3.0 < 2.0) * 5.0 + (3.0 >= 2.0) * 6.0;
    p_value = parse_expression("(3.0<2.0)*5.0 + (3.0>=2.0)*6.0");
    printf("  '%s'\n", "(3.0<2.0)*5.0 + (3.0>=2.0)*6.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)(3.0 >= 2.0) * 5.0 + (3.0 < 2.0) * 6.0;
    p_value = parse_expression("(3.0>=2.0)*5.0 + (3.0<2.0)*6.0");
    printf("  '%s'\n", "(3.0>=2.0)*5.0 + (3.0<2.0)*6.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)!(2.0 > 3.0 && 2.0 == 2.0);
    p_value = parse_expression("!(2.0 > 3.0 && 2.0 == 2.0)");
    printf("  '%s'\n", "!(2.0 > 3.0 && 2.0 == 2.0)");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 > 2.0 && !(2.0 == 2.0);
    p_value = parse_expression("3.0 > 2.0 && !(2.0 == 2.0)");
    printf("  '%s'\n", "3.0 > 2.0 && !(2.0 == 2.0)");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 > !2.0 || 1.0 == 0.0;
    p_value = parse_expression("3.0 > !2.0 || 1.0 == 0.0");
    printf("  '%s'\n", "3.0 > !2.0 || 1.0 == 0.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 != !0.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 != !0.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 != !0.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)!(3.0 < 2.0) || 1.0 == 1.0 && 2.0 <= 3.0;
    p_value = parse_expression("!(3.0 < 2.0) || 1.0 == 1.0 && 2.0 <= 3.0");
    printf("  '%s'\n", "!(3.0 < 2.0) || 1.0 == 1.0 && 2.0 <= 3.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || !0.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || ! 0.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || ! 0.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || !1.0;
    p_value = parse_expression("3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || !1.0");
    printf("  '%s'\n", "3.0 < 2.0 || 1.0 != 1.0 && 2.0 <= 3.0 || !1.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)(3.0 < 2.0) * 5.0 + (3.0 >= 2.0) * 6.0;
    p_value = parse_expression("(3.0<2.0)*5.0 + (3.0>=2.0)*6.0");
    printf("  '%s'\n", "(3.0<2.0)*5.0 + (3.0>=2.0)*6.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)(3.0 >= 2.0) * 5.0 + (3.0 < 2.0) * 6.0;
    p_value = parse_expression("(3.0>=2.0)*5.0 + (3.0<2.0)*6.0");
    printf("  '%s'\n", "(3.0>=2.0)*5.0 + (3.0<2.0)*6.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)(1.0) * 5.0 + (!1.0) * 6.0;
    p_value = parse_expression("(1.0)*5.0 + (!1.0)*6.0");
    printf("  '%s'\n", "(1.0)*5.0 + (!1.0)*6.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  {
    double c_value, p_value;
    c_value = (double)(!1.0) * 5.0 + (1.0) * 6.0;
    p_value = parse_expression("(!1.0)*5.0 + (1.0)*6.0");
    printf("  '%s'\n", "(!1.0)*5.0 + (1.0)*6.0");
    if (fabs(c_value - p_value) > (1e-10)) {
      *&result = 0;
      printf("         C: %f\n", c_value);
      printf("    Parsed: %f\n", p_value);
    }
  };
  printf("%s\n\n", result ? "passed" : "failed");
}
```