Class: ToSource::Emitter
- Inherits:
-
Object
- Object
- ToSource::Emitter
- Includes:
- Adamantium::Flat
- Defined in:
- lib/to_source/emitter.rb,
lib/to_source/emitter/if.rb,
lib/to_source/emitter/iter.rb,
lib/to_source/emitter/loop.rb,
lib/to_source/emitter/send.rb,
lib/to_source/emitter/util.rb,
lib/to_source/emitter/when.rb,
lib/to_source/emitter/alias.rb,
lib/to_source/emitter/begin.rb,
lib/to_source/emitter/block.rb,
lib/to_source/emitter/class.rb,
lib/to_source/emitter/scope.rb,
lib/to_source/emitter/splat.rb,
lib/to_source/emitter/super.rb,
lib/to_source/emitter/yield.rb,
lib/to_source/emitter/access.rb,
lib/to_source/emitter/define.rb,
lib/to_source/emitter/ensure.rb,
lib/to_source/emitter/match3.rb,
lib/to_source/emitter/module.rb,
lib/to_source/emitter/rescue.rb,
lib/to_source/emitter/static.rb,
lib/to_source/emitter/unless.rb,
lib/to_source/emitter/defined.rb,
lib/to_source/emitter/literal.rb,
lib/to_source/emitter/nth_ref.rb,
lib/to_source/emitter/z_super.rb,
lib/to_source/emitter/to_array.rb,
lib/to_source/emitter/toplevel.rb,
lib/to_source/emitter/to_string.rb,
lib/to_source/emitter/assignment.rb,
lib/to_source/emitter/block_pass.rb,
lib/to_source/emitter/empty_body.rb,
lib/to_source/emitter/op_assign1.rb,
lib/to_source/emitter/op_assign2.rb,
lib/to_source/emitter/scope_name.rb,
lib/to_source/emitter/splat_when.rb,
lib/to_source/emitter/ensure_body.rb,
lib/to_source/emitter/scoped_name.rb,
lib/to_source/emitter/keyword_value.rb,
lib/to_source/emitter/receiver_case.rb,
lib/to_source/emitter/block_argument.rb,
lib/to_source/emitter/execute_string.rb,
lib/to_source/emitter/binary_operator.rb,
lib/to_source/emitter/literal/dynamic.rb,
lib/to_source/emitter/singleton_class.rb,
lib/to_source/emitter/actual_arguments.rb,
lib/to_source/emitter/concat_arguments.rb,
lib/to_source/emitter/formal_arguments.rb,
lib/to_source/emitter/rescue_condition.rb,
lib/to_source/emitter/default_arguments.rb,
lib/to_source/emitter/element_reference.rb,
lib/to_source/emitter/pattern_arguments.rb,
lib/to_source/emitter/element_assignment.rb,
lib/to_source/emitter/multiple_assignment.rb,
lib/to_source/emitter/send_with_arguments.rb,
lib/to_source/emitter/attribute_assignment.rb,
lib/to_source/emitter/unary_operator_method.rb,
lib/to_source/emitter/binary_operator_method.rb
Direct Known Subclasses
Access, ActualArguments, Alias, Assignment, AssignmentOperator, AttributeAssignment, Begin, BinaryOperator, BinaryOperatorMethod, Block, BlockArgument, BlockPass, Class, ConcatArguments, DefaultArguments, Define, DefineSingleton, Defined, ElementAssignment, ElementReference, EmptyBody, Ensure, EnsureBody, ExecuteString, FormalArguments, If, Iter, KeywordValue, Literal, Loop, Match3, Module, MultipleAssignment, NthRef, OpAssign1, OpAssign2, PatternArguments, ReceiverCase, Rescue, RescueCondition, Scope, ScopeName, ScopedName, Send, SingletonClass, Splat, SplatWhen, Static, Super, ToArray, ToString, Toplevel, Unless, Util, When, Yield, ZSuper
Defined Under Namespace
Classes: Access, ActualArguments, Alias, Assignment, AssignmentOperator, AttributeAssignment, Begin, BinaryOperator, BinaryOperatorMethod, Block, BlockArgument, BlockPass, Class, ConcatArguments, DefaultArguments, Define, DefineSingleton, Defined, ElementAssignment, ElementReference, EmptyBody, Ensure, EnsureBody, ExecuteString, FormalArguments, If, Iter, KeywordValue, Literal, Loop, Match3, Module, MultipleAssignment, NthRef, OpAssign1, OpAssign2, PatternArguments, ReceiverCase, Rescue, RescueCondition, Scope, ScopeName, ScopedName, Send, SendWithArguments, SingletonClass, Splat, SplatWhen, Static, Super, ToArray, ToString, Toplevel, UnaryOperatorMethod, Unless, Util, When, Yield, ZSuper
Constant Summary collapse
- REGISTRY =
{}
Instance Attribute Summary collapse
-
#node ⇒ Object
readonly
Returns the value of attribute node.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#node ⇒ Object (readonly)
Returns the value of attribute node.
28 29 30 |
# File 'lib/to_source/emitter.rb', line 28 def node @node end |
Class Method Details
.build(node, buffer = []) ⇒ Object
11 12 13 |
# File 'lib/to_source/emitter.rb', line 11 def self.build(node, buffer = []) REGISTRY.fetch(node.class).new(node, buffer) end |
.handle(node_class) ⇒ Object
7 8 9 |
# File 'lib/to_source/emitter.rb', line 7 def self.handle(node_class) REGISTRY[node_class]=self end |
.run(node) ⇒ Object
15 16 17 |
# File 'lib/to_source/emitter.rb', line 15 def self.run(node) build(node).source end |