The current grammar fails to parse ranges correctly if they contain negative numbers:
(1..5).to_a #=> [1, 2, 3, 4, 5] -> OK
('a'..'e').to_a #=> ["a", "b", "c", "d", "e"] -> OK
('a'...'e').to_a #=> ["a", "b", "c", "d"] = -5..-1 -> OK
(-1..-5).to_a #=> [], -> FAILS
(-5..-1).to_a #=> [-5, -4, -3, -2, -1] -> FAILS
The figure below depicts the corresponding tree-sitter tree:

For the cases, where a range was recognized correctly, it is rooted with a range node. The incorrect cases are rooted with a binary node and the range node only has a single unary child.
For all cases, I would suggest to use a different labeling for the parenthesized_statements because range is an expression.