Class: RuboCop::AST::NodePattern::Compiler::AtomSubcompiler
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Subcompiler
|
|
Instance Chain:
self,
Subcompiler
|
|
Inherits: |
RuboCop::AST::NodePattern::Compiler::Subcompiler
|
Defined in: | lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb |
Overview
Generates code that evaluates to a value (Ruby object)
This value responds to ===
.
Doc on how this fits in the compiling process: /docs/modules/ROOT/pages/node_pattern.adoc
Class Attribute Summary
Subcompiler
- Inherited
Class Method Summary
Subcompiler
- Inherited
Instance Attribute Summary
Subcompiler
- Inherited
Instance Method Summary
- #visit_const private
- #visit_named_parameter private
-
#visit_number
private
Alias for #visit_symbol.
-
#visit_other_type
private
Assumes other types are node patterns.
- #visit_positional_parameter private
-
#visit_regexp
private
Alias for #visit_symbol.
- #visit_set private
-
#visit_string
private
Alias for #visit_symbol.
- #visit_symbol (also: #visit_number, #visit_string, #visit_regexp) private
- #visit_unify private
Subcompiler
- Inherited
Constructor Details
This class inherits a constructor from RuboCop::AST::NodePattern::Compiler::Subcompiler
Instance Method Details
#visit_const (private)
[ GitHub ]# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 28
def visit_const node.child end
#visit_named_parameter (private)
[ GitHub ]# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 32
def visit_named_parameter compiler.named_parameter(node.child) end
#visit_number (private)
Alias for #visit_symbol.
# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 24
alias visit_number visit_symbol
#visit_other_type (private)
Assumes other types are node patterns.
# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 46
def visit_other_type compiler.with_temp_variables do |compare| code = compiler.compile_as_node_pattern(node, var: compare) "->(#{compare}) { #{code} }" end end
#visit_positional_parameter (private)
[ GitHub ]# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 36
def visit_positional_parameter compiler.positional_parameter(node.child) end
#visit_regexp (private)
Alias for #visit_symbol.
# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 26
alias visit_regexp visit_symbol
#visit_set (private)
[ GitHub ]# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 40
def visit_set set = node.children.to_set(&:child).freeze NodePattern::Sets[set] end
#visit_string (private)
Alias for #visit_symbol.
# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 25
alias visit_string visit_symbol
#visit_symbol (private) Also known as: #visit_number, #visit_string, #visit_regexp
[ GitHub ]# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 21
def visit_symbol node.child.inspect end
#visit_unify (private)
[ GitHub ]# File 'lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb', line 15
def visit_unify compiler.bind(node.child) do raise Invalid, 'unified variables can not appear first as argument' end end