Class: Gobstones::Lang::Commands::While
- Inherits:
-
Conditional
- Object
- Conditional
- Gobstones::Lang::Commands::While
- Defined in:
- lib/gobstones/lang/commands/while.rb
Constant Summary collapse
- STACK_LIMIT =
10_000
Instance Attribute Summary
Attributes inherited from Conditional
Instance Method Summary collapse
Methods inherited from Conditional
#equality_attributes, #evaluate_condition, #initialize
Methods included from EqualityDefinition
Constructor Details
This class inherits a constructor from Gobstones::Lang::Commands::Conditional
Instance Method Details
#evaluate(context, stack_size = 0) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/gobstones/lang/commands/while.rb', line 10 def evaluate(context, stack_size = 0) raise Runner::GobstonesRuntimeError, 'stack overflow' if stack_size == STACK_LIMIT return unless evaluate_condition(context).true? then_block.evaluate(context) evaluate(context, stack_size + 1) end |