================== Simple If ================== if true { "True" } --- (root (block (statement (if_else (if (expression (value (boolean))) (block (statement (expression (value (string)))))))))) ================== Complex If ================== if 1 == 1 && 2 == 2 && 3 == 3 { "True" } --- (root (block (statement (if_else (if (expression (logic (expression (value (integer))) (logic_operator) (expression (logic (expression (value (integer))) (logic_operator) (expression (logic (expression (value (integer))) (logic_operator) (expression (logic (expression (value (integer))) (logic_operator) (expression (logic (expression (value (integer))) (logic_operator) (expression (value (integer))))))))))))) (block (statement (expression (value (string)))))))))) ================== Nested If ================== if true { if 42 == 12 { 'hiya' } else { 'bye' } } --- (root (block (statement (if_else (if (expression (value (boolean))) (block (statement (if_else (if (expression (logic (expression (value (integer))) (logic_operator) (expression (value (integer))))) (block (statement (expression (value (string)))))) (else (block (statement (expression (value (string)))))))))))))) ================== If Else ================== if false { "True" } else { "False" } --- (root (block (statement (if_else (if (expression (value (boolean))) (block (statement (expression (value (string)))))) (else (block (statement (expression (value (string)))))))))) ================== If Else If ================== if 1 == 1 { "math is fun" } else if 4 == 9 { "math is broken" } --- (root (block (statement (if_else (if (expression (logic (expression (value (integer))) (logic_operator) (expression (value (integer))))) (block (statement (expression (value (string)))))) (else_if (expression (logic (expression (value (integer))) (logic_operator) (expression (value (integer))))) (block (statement (expression (value (string)))))))))) ================== If Else Else If Else ================== if false { "no" } else if false { "no" } else if 1 + 1 == 9 { "not the answer" } else { "42" } --- (root (block (statement (if_else (if (expression (value (boolean))) (block (statement (expression (value (string)))))) (else_if (expression (value (boolean))) (block (statement (expression (value (string)))))) (else_if (expression (logic (expression (math (expression (value (integer))) (math_operator) (expression (value (integer))))) (logic_operator) (expression (value (integer))))) (block (statement (expression (value (string)))))) (else (block (statement (expression (value (string))))))))))