//! > Test if-else without extra braces
//! > test_function_name
test_partial_parser_tree
//! > cairo_code
fn f() {
if 1 == 2 {
3
} else if 4 == 5 {
6
} else if 7 == 8 {
9
} else {
10
}
}
//! > top_level_kind
ExprIf
//! > ignored_kinds
ExprBinary
//! > expected_diagnostics
//! > expected_tree
└── Top level kind: ExprIf
├── if_kw (kind: TokenIf): 'if'
├── condition (kind: ExprBinary) <ignored>
├── if_block (kind: ExprBlock)
│ ├── lbrace (kind: TokenLBrace): '{'
│ ├── statements (kind: StatementList)
│ │ └── child #0 (kind: StatementExpr)
│ │ ├── expr (kind: TokenLiteralNumber): '3'
│ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ └── rbrace (kind: TokenRBrace): '}'
└── else_clause (kind: ElseClause)
├── else_kw (kind: TokenElse): 'else'
└── else_block_or_if (kind: ExprIf)
├── if_kw (kind: TokenIf): 'if'
├── condition (kind: ExprBinary) <ignored>
├── if_block (kind: ExprBlock)
│ ├── lbrace (kind: TokenLBrace): '{'
│ ├── statements (kind: StatementList)
│ │ └── child #0 (kind: StatementExpr)
│ │ ├── expr (kind: TokenLiteralNumber): '6'
│ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ └── rbrace (kind: TokenRBrace): '}'
└── else_clause (kind: ElseClause)
├── else_kw (kind: TokenElse): 'else'
└── else_block_or_if (kind: ExprIf)
├── if_kw (kind: TokenIf): 'if'
├── condition (kind: ExprBinary) <ignored>
├── if_block (kind: ExprBlock)
│ ├── lbrace (kind: TokenLBrace): '{'
│ ├── statements (kind: StatementList)
│ │ └── child #0 (kind: StatementExpr)
│ │ ├── expr (kind: TokenLiteralNumber): '9'
│ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ └── rbrace (kind: TokenRBrace): '}'
└── else_clause (kind: ElseClause)
├── else_kw (kind: TokenElse): 'else'
└── else_block_or_if (kind: ExprBlock)
├── lbrace (kind: TokenLBrace): '{'
├── statements (kind: StatementList)
│ └── child #0 (kind: StatementExpr)
│ ├── expr (kind: TokenLiteralNumber): '10'
│ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
└── rbrace (kind: TokenRBrace): '}'