Class: MiniRuby::AST::ExpressionStatementNode
- Inherits:
-
StatementNode
- Object
- Node
- StatementNode
- MiniRuby::AST::ExpressionStatementNode
- Defined in:
- lib/miniruby/ast.rb
Overview
Represents a statement with an expression like ‘2 + 3 - 5;`
Instance Attribute Summary collapse
-
#expression ⇒ Object
readonly
: ExpressionNode.
Attributes inherited from Node
Instance Method Summary collapse
-
#==(other) ⇒ Object
: (Object other) -> bool.
-
#initialize(expression:, span: Span::ZERO) ⇒ ExpressionStatementNode
constructor
: (expression: ExpressionNode, ?span: Span) -> void.
-
#inspect(indent = 0) ⇒ Object
: (?Integer indent) -> String.
-
#to_s(indent = 0) ⇒ Object
: (?Integer indent) -> String.
Constructor Details
#initialize(expression:, span: Span::ZERO) ⇒ ExpressionStatementNode
: (expression: ExpressionNode, ?span: Span) -> void
96 97 98 99 |
# File 'lib/miniruby/ast.rb', line 96 def initialize(expression:, span: Span::ZERO) @span = span @expression = expression end |
Instance Attribute Details
#expression ⇒ Object (readonly)
: ExpressionNode
93 94 95 |
# File 'lib/miniruby/ast.rb', line 93 def expression @expression end |
Instance Method Details
#==(other) ⇒ Object
: (Object other) -> bool
102 103 104 105 106 |
# File 'lib/miniruby/ast.rb', line 102 def ==(other) return false unless other.is_a?(ExpressionStatementNode) @expression == other.expression end |
#inspect(indent = 0) ⇒ Object
: (?Integer indent) -> String
116 117 118 119 120 121 122 |
# File 'lib/miniruby/ast.rb', line 116 def inspect(indent = 0) buff = String.new buff << "#{INDENT_UNIT * indent}(expr_stmt" buff << "\n" << @expression.inspect(indent + 1) buff << ')' buff end |
#to_s(indent = 0) ⇒ Object
: (?Integer indent) -> String
110 111 112 |
# File 'lib/miniruby/ast.rb', line 110 def to_s(indent = 0) "#{INDENT_UNIT * indent}#{@expression}\n" end |