================================================================================ Multiplication / division ================================================================================ 12 * 27 / 42 -------------------------------------------------------------------------------- (source_file (binary_expression left: (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal)) operator: (operator) right: (integer_literal))) ================================================================================ Addition / substraction ================================================================================ 12 + 27 - 42 -------------------------------------------------------------------------------- (source_file (binary_expression left: (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal)) operator: (operator) right: (integer_literal))) ================================================================================ Comparisons ================================================================================ 12 <= 27 -------------------------------------------------------------------------------- (source_file (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal))) ================================================================================ Non-associative comparisons ================================================================================ 12 <= 27 <= 42 -------------------------------------------------------------------------------- (source_file (binary_expression left: (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal)) operator: (operator) right: (integer_literal))) ================================================================================ And ================================================================================ 12 & 27 & 42 -------------------------------------------------------------------------------- (source_file (binary_expression left: (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal)) operator: (operator) right: (integer_literal))) ================================================================================ Or ================================================================================ 12 | 27 | 42 -------------------------------------------------------------------------------- (source_file (binary_expression left: (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal)) operator: (operator) right: (integer_literal))) ================================================================================ Unary minus ================================================================================ - - 12 -------------------------------------------------------------------------------- (source_file (unary_expression operator: (operator) expression: (unary_expression operator: (operator) expression: (integer_literal)))) ================================================================================ Precedence ================================================================================ -1 | 2 & 3 <= 4 + 5 * 6 -------------------------------------------------------------------------------- (source_file (unary_expression operator: (operator) expression: (binary_expression left: (integer_literal) operator: (operator) right: (binary_expression left: (integer_literal) operator: (operator) right: (binary_expression left: (integer_literal) operator: (operator) right: (binary_expression left: (integer_literal) operator: (operator) right: (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal)))))))) ================================================================================ Parenthesis precedence ================================================================================ -(((((1 | 2) & 3) <= 4) + 5) * 6) -------------------------------------------------------------------------------- (source_file (unary_expression operator: (operator) expression: (sequence_expression (binary_expression left: (sequence_expression (binary_expression left: (sequence_expression (binary_expression left: (sequence_expression (binary_expression left: (sequence_expression (binary_expression left: (integer_literal) operator: (operator) right: (integer_literal))) operator: (operator) right: (integer_literal))) operator: (operator) right: (integer_literal))) operator: (operator) right: (integer_literal))) operator: (operator) right: (integer_literal))))) ================================================================================ Sequence ================================================================================ (12; "27"; nil) -------------------------------------------------------------------------------- (source_file (sequence_expression (integer_literal) (string_literal) (nil_literal))) ================================================================================ Simple parenthesized expression ================================================================================ (42) -------------------------------------------------------------------------------- (source_file (sequence_expression (integer_literal))) ================================================================================ Empty sequence ================================================================================ () -------------------------------------------------------------------------------- (source_file (sequence_expression))