================================================================================ Precedence: power, unary, products, sums, comparisons, logic ================================================================================ x = -a ** 2 + b * c / d % e - f; y = a << 1 | b & c ^ d; z = a < b && b <= c || !(c != d); -------------------------------------------------------------------------------- (source_file (assignment_statement (indexed_identifier (identifier)) (binary_expression (binary_expression (unary_expression (binary_expression (identifier) (integer_literal))) (binary_expression (binary_expression (binary_expression (identifier) (identifier)) (identifier)) (identifier))) (identifier))) (assignment_statement (indexed_identifier (identifier)) (binary_expression (binary_expression (identifier) (integer_literal)) (binary_expression (binary_expression (identifier) (identifier)) (identifier)))) (assignment_statement (indexed_identifier (identifier)) (binary_expression (binary_expression (binary_expression (identifier) (identifier)) (binary_expression (identifier) (identifier))) (unary_expression (parenthesized_expression (binary_expression (identifier) (identifier))))))) ================================================================================ Casts, calls, indexes, ranges and sets ================================================================================ n = int[32](f * 1000) % 7; w = sin(theta) + sqrt(2) * arccos(0.5); v = values[1]; m = grid[0, 1]; q2 = q[{0, 2}]; q3 = q[1:]; q4 = q[:2]; -------------------------------------------------------------------------------- (source_file (assignment_statement (indexed_identifier (identifier)) (binary_expression (cast_expression (scalar_type (designator (integer_literal))) (binary_expression (identifier) (integer_literal))) (integer_literal))) (assignment_statement (indexed_identifier (identifier)) (binary_expression (call_expression (identifier) (argument_list (identifier))) (binary_expression (call_expression (identifier) (argument_list (integer_literal))) (call_expression (identifier) (argument_list (float_literal)))))) (assignment_statement (indexed_identifier (identifier)) (index_expression (identifier) (index (integer_literal)))) (assignment_statement (indexed_identifier (identifier)) (index_expression (identifier) (index (integer_literal) (integer_literal)))) (assignment_statement (indexed_identifier (identifier)) (index_expression (identifier) (index (set_expression (integer_literal) (integer_literal))))) (assignment_statement (indexed_identifier (identifier)) (index_expression (identifier) (index (range_expression (integer_literal))))) (assignment_statement (indexed_identifier (identifier)) (index_expression (identifier) (index (range_expression (integer_literal))))))