========================================== parses multiple statements ========================================== var x = {}; {}; --- (program (statement (assignment (identifier) (object))) (statement (object))) ========================================== parses if statements ========================================== if (theCondition) { var x = 2; } --- (program (if_statement (identifier) (statement_block (statement (assignment (identifier) (number)))))) ========================================== parses if-else statements ========================================== if (theCondition) { var x = 2; } else { var x = 4; } --- (program (if_statement (identifier) (statement_block (statement (assignment (identifier) (number)))) (statement_block (statement (assignment (identifier) (number))))))