<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/main/command.go
diff options
context:
space:
mode:
authorCharlie Stanton <charlie@shtanton.xyz>2023-04-20 09:25:51 +0100
committerCharlie Stanton <charlie@shtanton.xyz>2023-04-20 09:25:51 +0100
commit6a77b63c3cd4edb992b94e42c5a222a1480a3f33 (patch)
tree26402941684af420cf6f489ec7b56a74fdf473aa /main/command.go
parent773c5e115fbb4e8b432e95e02216af9b23415ca8 (diff)
downloadstred-go-6a77b63c3cd4edb992b94e42c5a222a1480a3f33.tar
Add commands to append to and swap with the path and X registers
Diffstat (limited to 'main/command.go')
-rw-r--r--main/command.go26
1 files changed, 25 insertions, 1 deletions
diff --git a/main/command.go b/main/command.go
index ea6fb59..e676255 100644
--- a/main/command.go
+++ b/main/command.go
@@ -135,4 +135,28 @@ type Command interface {
}
type NoopCommand struct {}
-func (cmd NoopCommand) exec(state *ProgramState) {} \ No newline at end of file
+func (cmd NoopCommand) exec(state *ProgramState) {}
+
+type SwapXRegCommand struct {}
+func (cmd SwapXRegCommand) exec(state *ProgramState) {
+ v := state.value
+ state.value = state.xreg
+ state.xreg = v
+}
+
+type AppendXRegCommand struct {}
+func (cmd AppendXRegCommand) exec(state *ProgramState) {
+ state.xreg = append(state.xreg, state.value...)
+}
+
+type SwapPathCommand struct {}
+func (cmd SwapPathCommand) exec(state *ProgramState) {
+ v := state.value
+ state.value = state.path
+ state.path = v
+}
+
+type AppendPathCommand struct {}
+func (cmd AppendPathCommand) exec(state *ProgramState) {
+ state.path = append(state.path, state.value...)
+} \ No newline at end of file