Module: Carbon::Compiler::Visitor::Preparation::Statements
- Included in:
- Carbon::Compiler::Visitor::Preparation
- Defined in:
- lib/carbon/compiler/visitor/preparation/statements.rb
Instance Method Summary collapse
- #visit_statement_body(node) ⇒ Object
- #visit_statement_body_follow(node) ⇒ Object
- #visit_statement_catch(node) ⇒ Object
- #visit_statement_else(node) ⇒ Object
- #visit_statement_for(node) ⇒ Object
- #visit_statement_if(node) ⇒ Object
- #visit_statement_let(node) ⇒ Object
- #visit_statement_while(node) ⇒ Object
Instance Method Details
#visit_statement_body(node) ⇒ Object
61 62 63 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 61 def visit_statement_body(node) node.merge(body: accept(node.body)) end |
#visit_statement_body_follow(node) ⇒ Object
33 34 35 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 33 def visit_statement_body_follow(node) node.merge(body: accept(node.body), follow: accept(node.follow)) end |
#visit_statement_catch(node) ⇒ Object
28 29 30 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 28 def visit_statement_catch(node) visit_statement_body_follow(node) end |
#visit_statement_else(node) ⇒ Object
23 24 25 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 23 def visit_statement_else(node) node.update(body: accept(node.body)) end |
#visit_statement_for(node) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 47 def visit_statement_for(node) @context = :"for:init" initial = accept(node.initial) @context = :"for:cond" condition = accept(node.condition) @context = :"for:incr" increment = accept(node.increment) @context = :normal node.update(initial: initial, condition: condition, increment: increment, body: accept(node.body)) end |
#visit_statement_if(node) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 13 def visit_statement_if(node) @context = :if condition = accept(node.condition) @context = :normal node.update(condition: condition, body: accept(node.body), follow: accept(node.follow)) end |
#visit_statement_let(node) ⇒ Object
66 67 68 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 66 def visit_statement_let(node) node.merge(type: accept(node.type)) end |
#visit_statement_while(node) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/carbon/compiler/visitor/preparation/statements.rb', line 38 def visit_statement_while(node) @context = :while expr = accept(node.condition) @context = :normal node.update(condition: expr, body: accept(node.body)) end |