diff options
author | Kevin Newton <kddnewton@gmail.com> | 2024-03-05 00:34:00 -0500 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2024-03-06 16:42:37 +0000 |
commit | b797085c384e7443698e29bd97b2b32806cd9792 (patch) | |
tree | f94eb7b0c722e6fb1d11941c619e22bb6f93d7f2 /lib/prism/translation/ripper.rb | |
parent | be5376e422252850b5ee8c41dff81e7d61604f62 (diff) |
[ruby/prism] Implement pre and post execution nodes for ripper
https://github.com/ruby/prism/commit/b6927ac714
Diffstat (limited to 'lib/prism/translation/ripper.rb')
-rw-r--r-- | lib/prism/translation/ripper.rb | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 47b27bc75c..799de0e176 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -1252,13 +1252,31 @@ module Prism # END {} # ^^^^^^ def visit_post_execution_node(node) - raise NoMethodError, __method__ + statements = + if node.statements.nil? + bounds(node.location) + on_stmts_add(on_stmts_new, on_void_stmt) + else + visit(node.statements) + end + + bounds(node.location) + on_END(statements) end # BEGIN {} # ^^^^^^^^ def visit_pre_execution_node(node) - raise NoMethodError, __method__ + statements = + if node.statements.nil? + bounds(node.location) + on_stmts_add(on_stmts_new, on_void_stmt) + else + visit(node.statements) + end + + bounds(node.location) + on_BEGIN(statements) end # The top-level program node. |