module Kenma::Macro::Basic
Public Instance Methods
NODE_GASGN(node, parent)
click to toggle source
$left = right
# File lib/kenma/macro/basic.rb, line 53 def NODE_GASGN(node, parent) left, right = node.children name = left.to_s.delete_prefix("$").to_sym if bind.local_variable_defined?(name) [:GASGN, [bind.local_variable_get(name), right]] else node end end
NODE_GVAR(node, parent)
click to toggle source
$node
# File lib/kenma/macro/basic.rb, line 43 def NODE_GVAR(node, parent) name = node.children.first.to_s.delete_prefix("$").to_sym if bind.local_variable_defined?(name) bind.local_variable_get(name) else node end end
eval!(args)
click to toggle source
# File lib/kenma/macro/basic.rb, line 36 def eval!(args) data = bind.eval(args.source) RubyVM::AbstractSyntaxTree.parse(data.inspect).children.last end
node_bind!(args)
click to toggle source
# File lib/kenma/macro/basic.rb, line 31 def node_bind!(args) bind.eval(args.source) end
stringify!(args)
click to toggle source
# File lib/kenma/macro/basic.rb, line 17 def stringify!(args) if args.respond_to?(:source) [:STR, [args.source]] else [:STR, [args.to_s]] end end
symbolify!(args)
click to toggle source
# File lib/kenma/macro/basic.rb, line 12 def symbolify!(args) [:LIT, [args.source.to_sym]] end
unstringify!(args)
click to toggle source
# File lib/kenma/macro/basic.rb, line 26 def unstringify!(args) RubyVM::AbstractSyntaxTree.parse(bind.eval(args.source)).children.last end