<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/main/command.go
diff options
context:
space:
mode:
Diffstat (limited to 'main/command.go')
-rw-r--r--main/command.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/main/command.go b/main/command.go
index ba6f9dc..ea6fb59 100644
--- a/main/command.go
+++ b/main/command.go
@@ -107,6 +107,7 @@ func (cmd DeleteAllCommand) exec(state *ProgramState) {
type SubstituteCommand struct {
subex subex.SubexState
+ next Command
}
func (cmd SubstituteCommand) exec(state *ProgramState) {
valueStream := make(chan walk.WalkValue)
@@ -119,15 +120,19 @@ func (cmd SubstituteCommand) exec(state *ProgramState) {
atomStream := walk.Atomise(valueStream)
atomsOut, error := subex.RunTransducer(cmd.subex, atomStream)
if error {
- panic("Error running subex")
+ return
}
valuesOut, err := walk.MemoryCompound(atomsOut)
if err != nil {
- panic("Error compounding atoms")
+ return
}
state.value = valuesOut
+ cmd.next.exec(state)
}
type Command interface {
exec(*ProgramState)
-} \ No newline at end of file
+}
+
+type NoopCommand struct {}
+func (cmd NoopCommand) exec(state *ProgramState) {} \ No newline at end of file