//! > Test binary expression.

//! > test_runner_name
test_partial_parser_tree(expect_diagnostics: false)

//! > cairo_code
fn foo(a: bool, b: bool, c: bool, d: bool) {
    a && b || c && d
}

//! > top_level_kind
ExprBinary

//! > ignored_kinds

//! > expected_diagnostics

//! > expected_tree
└── Top level kind: ExprBinary
    ├── lhs (kind: ExprBinary)
    │   ├── lhs (kind: ExprPath)
    │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   └── segments (kind: ExprPathInner)
    │   │       └── item #0 (kind: PathSegmentSimple)
    │   │           └── ident (kind: TokenIdentifier): 'a'
    │   ├── op (kind: TokenAndAnd): '&&'
    │   └── rhs (kind: ExprPath)
    │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │       └── segments (kind: ExprPathInner)
    │           └── item #0 (kind: PathSegmentSimple)
    │               └── ident (kind: TokenIdentifier): 'b'
    ├── op (kind: TokenOrOr): '||'
    └── rhs (kind: ExprBinary)
        ├── lhs (kind: ExprPath)
        │   ├── dollar (kind: OptionTerminalDollarEmpty) []
        │   └── segments (kind: ExprPathInner)
        │       └── item #0 (kind: PathSegmentSimple)
        │           └── ident (kind: TokenIdentifier): 'c'
        ├── op (kind: TokenAndAnd): '&&'
        └── rhs (kind: ExprPath)
            ├── dollar (kind: OptionTerminalDollarEmpty) []
            └── segments (kind: ExprPathInner)
                └── item #0 (kind: PathSegmentSimple)
                    └── ident (kind: TokenIdentifier): 'd'
