class BELParser::ASTFilter
ASTFilter
filters types of {BELParser::Parsers::AST::Node}.
Public Class Methods
new(ast_enum, *types)
click to toggle source
# File lib/bel_parser/ast_filter.rb, line 6 def initialize(ast_enum, *types) @ast_enum = ast_enum @types = Hash[types.map { |t| [t, true] }] end
Public Instance Methods
each(enum = @ast_enum) { |line_number, line, selected| ... }
click to toggle source
# File lib/bel_parser/ast_filter.rb, line 11 def each(enum = @ast_enum) if block_given? enum.each do |(line_number, line, ast_results)| selected = filter(ast_results) yield([line_number, line, selected]) unless selected.empty? end else enum_for(:each, enum) end end
filter(ast_enum)
click to toggle source
# File lib/bel_parser/ast_filter.rb, line 22 def filter(ast_enum) ast_enum.select do |node| if node.nil? @types[nil] else @types[node.type] end end end