Sha256: a5a2aa35f121122e79ec2aa50f07fd2befd2a61518d0a0d605b75ebc43fbcfea
Contents?: true
Size: 1.27 KB
Versions: 4
Compression:
Stored size: 1.27 KB
Contents
module Yoda module AST # Add query methods to search expected nodes from AST. # @see {Yoda::Parsing::Traverser::Matcher} for parameters of query methods. # @example # ast.query(type: :if) # => returns a if node # ast.query(name: :hoge) # => returns a node about an object with the name module Traversable # @param query [Hash] (See {Yoda::Parsing::Traverser::Matcher.new} for detailed parameters) # @return [Vnode, nil] def query(**query) Parsing::Traverser.new(self).query(**query)&.node end # @param query [Hash] (See {Yoda::Parsing::Traverser::Matcher.new} for detailed parameters) # @return [Parsing::Traverser::ResultSet] def query_all(**query) Parsing::Traverser.new(self).query(**query) end # @param query [Hash] (See {Yoda::Parsing::Traverser::Matcher.new} for detailed parameters) # @return [Vnode, nil] def query_ancestor(**query) Parsing::Traverser.new(self).query_ancestor(**query)&.node end # @param query [Hash] (See {Yoda::Parsing::Traverser::Matcher.new} for detailed parameters) # @return [Parsing::Traverser::ResultSet] def query_ancestors(**query) Parsing::Traverser.new(self).query_ancestors(**query) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems