12345678910111213141516171819202122232425262728293031 |
- package attl
- // Flow deterimes how the flow of execution is
- // affected by a command
- type Flow int
- // No effect
- const NormalFlow Flow = 0
- // Breaks out of the current block
- const BreakFlow Flow = 1
- // Breaks out of the current command
- const ReturnFlow Flow = 2
- // Error, breaks until rescue block is ofound
- const FailFlow Flow = 4
- // Every attl command evaluates to a value, which is the result
- // of the command itself, but also an Effect that describes
- // it's special effect on the flow of evaluation itself.
- // A nil effect simply means "continue to the next command"
- // But other effects may cause the flow of execution to change
- // as per the Flow member
- // The unwrap member returns the Value that
- // the effect was carrying wrapped in it
- // and which is unwrapped when the effect has influenced the flow.
- type Effect interface {
- Flow() Flow
- Unwrap() Value
- }
|