From b797085c384e7443698e29bd97b2b32806cd9792 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 5 Mar 2024 00:34:00 -0500 Subject: [ruby/prism] Implement pre and post execution nodes for ripper https://github.com/ruby/prism/commit/b6927ac714 --- lib/prism/translation/ripper.rb | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'lib') 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. -- cgit v1.2.3