---
source: kcl/src/simulation_tests.rs
description: Result of parsing boolean_logical_or.kcl
---
{
  "Ok": {
    "body": [
      {
        "declaration": {
          "end": 17,
          "id": {
            "end": 2,
            "name": "aa",
            "start": 0,
            "type": "Identifier"
          },
          "init": {
            "end": 17,
            "left": {
              "end": 9,
              "raw": "true",
              "start": 5,
              "type": "Literal",
              "type": "Literal",
              "value": true
            },
            "operator": "|",
            "right": {
              "end": 17,
              "raw": "false",
              "start": 12,
              "type": "Literal",
              "type": "Literal",
              "value": false
            },
            "start": 5,
            "type": "BinaryExpression",
            "type": "BinaryExpression"
          },
          "start": 0,
          "type": "VariableDeclarator"
        },
        "end": 17,
        "kind": "const",
        "start": 0,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "declaration": {
          "end": 48,
          "id": {
            "end": 19,
            "name": "a",
            "start": 18,
            "type": "Identifier"
          },
          "init": {
            "cond": {
              "end": 27,
              "name": "aa",
              "start": 25,
              "type": "Identifier",
              "type": "Identifier"
            },
            "digest": null,
            "else_ifs": [],
            "end": 48,
            "final_else": {
              "body": [
                {
                  "end": 46,
                  "expression": {
                    "end": 46,
                    "raw": "2",
                    "start": 45,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 2.0,
                      "suffix": "None"
                    }
                  },
                  "start": 45,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 47,
              "start": 45
            },
            "start": 22,
            "then_val": {
              "body": [
                {
                  "end": 33,
                  "expression": {
                    "end": 33,
                    "raw": "1",
                    "start": 32,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 1.0,
                      "suffix": "None"
                    }
                  },
                  "start": 32,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 34,
              "start": 32
            },
            "type": "IfExpression",
            "type": "IfExpression"
          },
          "start": 18,
          "type": "VariableDeclarator"
        },
        "end": 48,
        "kind": "const",
        "start": 18,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "end": 124,
        "expression": {
          "arguments": [
            {
              "end": 62,
              "left": {
                "end": 57,
                "name": "a",
                "start": 56,
                "type": "Identifier",
                "type": "Identifier"
              },
              "operator": "==",
              "right": {
                "end": 62,
                "raw": "1",
                "start": 61,
                "type": "Literal",
                "type": "Literal",
                "value": {
                  "value": 1.0,
                  "suffix": "None"
                }
              },
              "start": 56,
              "type": "BinaryExpression",
              "type": "BinaryExpression"
            },
            {
              "end": 123,
              "raw": "\"left branch of or is true makes the whole expression true\"",
              "start": 64,
              "type": "Literal",
              "type": "Literal",
              "value": "left branch of or is true makes the whole expression true"
            }
          ],
          "callee": {
            "end": 55,
            "name": "assert",
            "start": 49,
            "type": "Identifier"
          },
          "end": 124,
          "start": 49,
          "type": "CallExpression",
          "type": "CallExpression"
        },
        "start": 49,
        "type": "ExpressionStatement",
        "type": "ExpressionStatement"
      },
      {
        "declaration": {
          "end": 143,
          "id": {
            "end": 128,
            "name": "bb",
            "start": 126,
            "type": "Identifier"
          },
          "init": {
            "end": 143,
            "left": {
              "end": 136,
              "raw": "false",
              "start": 131,
              "type": "Literal",
              "type": "Literal",
              "value": false
            },
            "operator": "|",
            "right": {
              "end": 143,
              "raw": "true",
              "start": 139,
              "type": "Literal",
              "type": "Literal",
              "value": true
            },
            "start": 131,
            "type": "BinaryExpression",
            "type": "BinaryExpression"
          },
          "start": 126,
          "type": "VariableDeclarator"
        },
        "end": 143,
        "kind": "const",
        "start": 126,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "declaration": {
          "end": 174,
          "id": {
            "end": 145,
            "name": "b",
            "start": 144,
            "type": "Identifier"
          },
          "init": {
            "cond": {
              "end": 153,
              "name": "bb",
              "start": 151,
              "type": "Identifier",
              "type": "Identifier"
            },
            "digest": null,
            "else_ifs": [],
            "end": 174,
            "final_else": {
              "body": [
                {
                  "end": 172,
                  "expression": {
                    "end": 172,
                    "raw": "2",
                    "start": 171,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 2.0,
                      "suffix": "None"
                    }
                  },
                  "start": 171,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 173,
              "start": 171
            },
            "start": 148,
            "then_val": {
              "body": [
                {
                  "end": 159,
                  "expression": {
                    "end": 159,
                    "raw": "1",
                    "start": 158,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 1.0,
                      "suffix": "None"
                    }
                  },
                  "start": 158,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 160,
              "start": 158
            },
            "type": "IfExpression",
            "type": "IfExpression"
          },
          "start": 144,
          "type": "VariableDeclarator"
        },
        "end": 174,
        "kind": "const",
        "start": 144,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "end": 251,
        "expression": {
          "arguments": [
            {
              "end": 188,
              "left": {
                "end": 183,
                "name": "b",
                "start": 182,
                "type": "Identifier",
                "type": "Identifier"
              },
              "operator": "==",
              "right": {
                "end": 188,
                "raw": "1",
                "start": 187,
                "type": "Literal",
                "type": "Literal",
                "value": {
                  "value": 1.0,
                  "suffix": "None"
                }
              },
              "start": 182,
              "type": "BinaryExpression",
              "type": "BinaryExpression"
            },
            {
              "end": 250,
              "raw": "\"right branch of or is true makes the whole expression true\"",
              "start": 190,
              "type": "Literal",
              "type": "Literal",
              "value": "right branch of or is true makes the whole expression true"
            }
          ],
          "callee": {
            "end": 181,
            "name": "assert",
            "start": 175,
            "type": "Identifier"
          },
          "end": 251,
          "start": 175,
          "type": "CallExpression",
          "type": "CallExpression"
        },
        "start": 175,
        "type": "ExpressionStatement",
        "type": "ExpressionStatement"
      },
      {
        "declaration": {
          "end": 269,
          "id": {
            "end": 255,
            "name": "cc",
            "start": 253,
            "type": "Identifier"
          },
          "init": {
            "end": 269,
            "left": {
              "end": 262,
              "raw": "true",
              "start": 258,
              "type": "Literal",
              "type": "Literal",
              "value": true
            },
            "operator": "|",
            "right": {
              "end": 269,
              "raw": "true",
              "start": 265,
              "type": "Literal",
              "type": "Literal",
              "value": true
            },
            "start": 258,
            "type": "BinaryExpression",
            "type": "BinaryExpression"
          },
          "start": 253,
          "type": "VariableDeclarator"
        },
        "end": 269,
        "kind": "const",
        "start": 253,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "declaration": {
          "end": 300,
          "id": {
            "end": 271,
            "name": "c",
            "start": 270,
            "type": "Identifier"
          },
          "init": {
            "cond": {
              "end": 279,
              "name": "cc",
              "start": 277,
              "type": "Identifier",
              "type": "Identifier"
            },
            "digest": null,
            "else_ifs": [],
            "end": 300,
            "final_else": {
              "body": [
                {
                  "end": 298,
                  "expression": {
                    "end": 298,
                    "raw": "2",
                    "start": 297,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 2.0,
                      "suffix": "None"
                    }
                  },
                  "start": 297,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 299,
              "start": 297
            },
            "start": 274,
            "then_val": {
              "body": [
                {
                  "end": 285,
                  "expression": {
                    "end": 285,
                    "raw": "1",
                    "start": 284,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 1.0,
                      "suffix": "None"
                    }
                  },
                  "start": 284,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 286,
              "start": 284
            },
            "type": "IfExpression",
            "type": "IfExpression"
          },
          "start": 270,
          "type": "VariableDeclarator"
        },
        "end": 300,
        "kind": "const",
        "start": 270,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "end": 379,
        "expression": {
          "arguments": [
            {
              "end": 314,
              "left": {
                "end": 309,
                "name": "c",
                "start": 308,
                "type": "Identifier",
                "type": "Identifier"
              },
              "operator": "==",
              "right": {
                "end": 314,
                "raw": "1",
                "start": 313,
                "type": "Literal",
                "type": "Literal",
                "value": {
                  "value": 1.0,
                  "suffix": "None"
                }
              },
              "start": 308,
              "type": "BinaryExpression",
              "type": "BinaryExpression"
            },
            {
              "end": 378,
              "raw": "\"both branches of or are true makes the whole expression true\"",
              "start": 316,
              "type": "Literal",
              "type": "Literal",
              "value": "both branches of or are true makes the whole expression true"
            }
          ],
          "callee": {
            "end": 307,
            "name": "assert",
            "start": 301,
            "type": "Identifier"
          },
          "end": 379,
          "start": 301,
          "type": "CallExpression",
          "type": "CallExpression"
        },
        "start": 301,
        "type": "ExpressionStatement",
        "type": "ExpressionStatement"
      },
      {
        "declaration": {
          "end": 399,
          "id": {
            "end": 383,
            "name": "dd",
            "start": 381,
            "type": "Identifier"
          },
          "init": {
            "end": 399,
            "left": {
              "end": 391,
              "raw": "false",
              "start": 386,
              "type": "Literal",
              "type": "Literal",
              "value": false
            },
            "operator": "|",
            "right": {
              "end": 399,
              "raw": "false",
              "start": 394,
              "type": "Literal",
              "type": "Literal",
              "value": false
            },
            "start": 386,
            "type": "BinaryExpression",
            "type": "BinaryExpression"
          },
          "start": 381,
          "type": "VariableDeclarator"
        },
        "end": 399,
        "kind": "const",
        "start": 381,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "declaration": {
          "end": 430,
          "id": {
            "end": 401,
            "name": "d",
            "start": 400,
            "type": "Identifier"
          },
          "init": {
            "cond": {
              "end": 409,
              "name": "dd",
              "start": 407,
              "type": "Identifier",
              "type": "Identifier"
            },
            "digest": null,
            "else_ifs": [],
            "end": 430,
            "final_else": {
              "body": [
                {
                  "end": 428,
                  "expression": {
                    "end": 428,
                    "raw": "2",
                    "start": 427,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 2.0,
                      "suffix": "None"
                    }
                  },
                  "start": 427,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 429,
              "start": 427
            },
            "start": 404,
            "then_val": {
              "body": [
                {
                  "end": 415,
                  "expression": {
                    "end": 415,
                    "raw": "1",
                    "start": 414,
                    "type": "Literal",
                    "type": "Literal",
                    "value": {
                      "value": 1.0,
                      "suffix": "None"
                    }
                  },
                  "start": 414,
                  "type": "ExpressionStatement",
                  "type": "ExpressionStatement"
                }
              ],
              "end": 416,
              "start": 414
            },
            "type": "IfExpression",
            "type": "IfExpression"
          },
          "start": 400,
          "type": "VariableDeclarator"
        },
        "end": 430,
        "kind": "const",
        "start": 400,
        "type": "VariableDeclaration",
        "type": "VariableDeclaration"
      },
      {
        "end": 511,
        "expression": {
          "arguments": [
            {
              "end": 444,
              "left": {
                "end": 439,
                "name": "d",
                "start": 438,
                "type": "Identifier",
                "type": "Identifier"
              },
              "operator": "==",
              "right": {
                "end": 444,
                "raw": "2",
                "start": 443,
                "type": "Literal",
                "type": "Literal",
                "value": {
                  "value": 2.0,
                  "suffix": "None"
                }
              },
              "start": 438,
              "type": "BinaryExpression",
              "type": "BinaryExpression"
            },
            {
              "end": 510,
              "raw": "\"both branches of or are false makes the whole expression false\"",
              "start": 446,
              "type": "Literal",
              "type": "Literal",
              "value": "both branches of or are false makes the whole expression false"
            }
          ],
          "callee": {
            "end": 437,
            "name": "assert",
            "start": 431,
            "type": "Identifier"
          },
          "end": 511,
          "start": 431,
          "type": "CallExpression",
          "type": "CallExpression"
        },
        "start": 431,
        "type": "ExpressionStatement",
        "type": "ExpressionStatement"
      }
    ],
    "end": 512,
    "nonCodeMeta": {
      "nonCodeNodes": {
        "2": [
          {
            "end": 126,
            "start": 124,
            "type": "NonCodeNode",
            "value": {
              "type": "newLine"
            }
          }
        ],
        "5": [
          {
            "end": 253,
            "start": 251,
            "type": "NonCodeNode",
            "value": {
              "type": "newLine"
            }
          }
        ],
        "8": [
          {
            "end": 381,
            "start": 379,
            "type": "NonCodeNode",
            "value": {
              "type": "newLine"
            }
          }
        ]
      },
      "startNodes": []
    },
    "start": 0
  }
}
