Skip to content

Commit 62511d5

Browse files
Earlopainkddnewton
authored andcommitted
Use less visit_token in the ripper translator
The ripper translator is a good resource when porting ripper usage over to prism A few places use `visit_token` when it can be more specific. A call operator for example can ever only be one of three things. A positional argument can only ever be a identifier (no constant, no global, etc.) Also removes some stale comments. There are `*_TargetNode` for these now.
1 parent 6888e19 commit 62511d5

2 files changed

Lines changed: 14 additions & 33 deletions

File tree

lib/prism/translation/ripper.rb

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,7 +1147,7 @@ def visit_block_parameter_node(node)
11471147
on_blockarg(nil)
11481148
else
11491149
bounds(node.name_loc)
1150-
name = visit_token(node.name.to_s)
1150+
name = on_ident(node.name.to_s)
11511151

11521152
bounds(node.location)
11531153
on_blockarg(name)
@@ -1362,7 +1362,7 @@ def visit_call_node(node)
13621362
receiver = visit(node.receiver)
13631363

13641364
bounds(node.call_operator_loc)
1365-
call_operator = visit_token(node.call_operator)
1365+
call_operator = visit_call_operator(node.call_operator)
13661366

13671367
message =
13681368
if node.message_loc.nil?
@@ -1473,7 +1473,7 @@ def visit_call_operator_write_node(node)
14731473
receiver = visit(node.receiver)
14741474

14751475
bounds(node.call_operator_loc)
1476-
call_operator = visit_token(node.call_operator)
1476+
call_operator = visit_call_operator(node.call_operator)
14771477

14781478
bounds(node.message_loc)
14791479
message = visit_token(node.message)
@@ -1495,7 +1495,7 @@ def visit_call_and_write_node(node)
14951495
receiver = visit(node.receiver)
14961496

14971497
bounds(node.call_operator_loc)
1498-
call_operator = visit_token(node.call_operator)
1498+
call_operator = visit_call_operator(node.call_operator)
14991499

15001500
bounds(node.message_loc)
15011501
message = visit_token(node.message)
@@ -1517,7 +1517,7 @@ def visit_call_or_write_node(node)
15171517
receiver = visit(node.receiver)
15181518

15191519
bounds(node.call_operator_loc)
1520-
call_operator = visit_token(node.call_operator)
1520+
call_operator = visit_call_operator(node.call_operator)
15211521

15221522
bounds(node.message_loc)
15231523
message = visit_token(node.message)
@@ -1551,7 +1551,7 @@ def visit_call_target_node(node)
15511551
receiver = visit(node.receiver)
15521552

15531553
bounds(node.call_operator_loc)
1554-
call_operator = visit_token(node.call_operator)
1554+
call_operator = visit_call_operator(node.call_operator)
15551555

15561556
bounds(node.message_loc)
15571557
message = visit_token(node.message)
@@ -1663,9 +1663,6 @@ def visit_class_variable_read_node(node)
16631663

16641664
# @@foo = 1
16651665
# ^^^^^^^^^
1666-
#
1667-
# @@foo, @@bar = 1
1668-
# ^^^^^ ^^^^^
16691666
def visit_class_variable_write_node(node)
16701667
bounds(node.name_loc)
16711668
target = on_var_field(on_cvar(node.name.to_s))
@@ -1737,9 +1734,6 @@ def visit_constant_read_node(node)
17371734

17381735
# Foo = 1
17391736
# ^^^^^^^
1740-
#
1741-
# Foo, Bar = 1
1742-
# ^^^ ^^^
17431737
def visit_constant_write_node(node)
17441738
bounds(node.name_loc)
17451739
target = on_var_field(on_const(node.name.to_s))
@@ -1832,9 +1826,6 @@ def visit_constant_path_node(node)
18321826

18331827
# Foo::Bar = 1
18341828
# ^^^^^^^^^^^^
1835-
#
1836-
# Foo::Foo, Bar::Bar = 1
1837-
# ^^^^^^^^ ^^^^^^^^
18381829
def visit_constant_path_write_node(node)
18391830
target = visit_constant_path_write_node_target(node.target)
18401831

@@ -1932,7 +1923,7 @@ def visit_def_node(node)
19321923
operator =
19331924
if !node.operator_loc.nil?
19341925
bounds(node.operator_loc)
1935-
visit_token(node.operator)
1926+
node.operator == "." ? on_period(".") : on_op("::")
19361927
end
19371928

19381929
bounds(node.name_loc)
@@ -2247,9 +2238,6 @@ def visit_global_variable_read_node(node)
22472238

22482239
# $foo = 1
22492240
# ^^^^^^^^
2250-
#
2251-
# $foo, $bar = 1
2252-
# ^^^^ ^^^^
22532241
def visit_global_variable_write_node(node)
22542242
bounds(node.name_loc)
22552243
target = on_var_field(on_gvar(node.name.to_s))
@@ -3211,7 +3199,7 @@ def visit_optional_keyword_parameter_node(node)
32113199
# ^^^^^^^
32123200
def visit_optional_parameter_node(node)
32133201
bounds(node.name_loc)
3214-
name = visit_token(node.name.to_s)
3202+
name = on_ident(node.name.to_s)
32153203

32163204
bounds(node.operator_loc)
32173205
on_op("=")
@@ -3532,7 +3520,7 @@ def visit_rest_parameter_node(node)
35323520
on_rest_param(nil)
35333521
else
35343522
bounds(node.name_loc)
3535-
on_rest_param(visit_token(node.name.to_s))
3523+
on_rest_param(on_ident(node.name.to_s))
35363524
end
35373525
end
35383526

@@ -4137,6 +4125,11 @@ def visit_token(token, allow_keywords = true)
41374125
end
41384126
end
41394127

4128+
# Visit either `.`, `&.`, or `::`.
4129+
def visit_call_operator(token)
4130+
token == "." ? on_period(token) : on_op(token)
4131+
end
4132+
41404133
# Visit a node that represents a number. We need to explicitly handle the
41414134
# unary - operator.
41424135
def visit_number_node(node)

lib/prism/translation/ruby_parser.rb

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -394,9 +394,6 @@ def visit_class_variable_read_node(node)
394394

395395
# @@foo = 1
396396
# ^^^^^^^^^
397-
#
398-
# @@foo, @@bar = 1
399-
# ^^^^^ ^^^^^
400397
def visit_class_variable_write_node(node)
401398
s(node, class_variable_write_type, node.name, visit_write_value(node.value))
402399
end
@@ -651,9 +648,6 @@ def visit_global_variable_read_node(node)
651648

652649
# $foo = 1
653650
# ^^^^^^^^
654-
#
655-
# $foo, $bar = 1
656-
# ^^^^ ^^^^
657651
def visit_global_variable_write_node(node)
658652
s(node, :gasgn, node.name, visit_write_value(node.value))
659653
end
@@ -799,9 +793,6 @@ def visit_instance_variable_read_node(node)
799793

800794
# @foo = 1
801795
# ^^^^^^^^
802-
#
803-
# @foo, @bar = 1
804-
# ^^^^ ^^^^
805796
def visit_instance_variable_write_node(node)
806797
s(node, :iasgn, node.name, visit_write_value(node.value))
807798
end
@@ -1013,9 +1004,6 @@ def visit_local_variable_read_node(node)
10131004

10141005
# foo = 1
10151006
# ^^^^^^^
1016-
#
1017-
# foo, bar = 1
1018-
# ^^^ ^^^
10191007
def visit_local_variable_write_node(node)
10201008
s(node, :lasgn, node.name, visit_write_value(node.value))
10211009
end

0 commit comments

Comments
 (0)