sp {p*init (state ^type state) -( ^reg) --> ( ^operator + >) ( ^name init) } sp {a*init (state ^operator ) ( ^name init) --> ( ^reg north) (write |init | (crlf)) } sp {p*move (state ^io.input-link.eater ) ( ^x ^y ) ( ^reg ) (^io.input-link.my-location..content <> wall) --> ( ^operator +) ( ^name move) } sp {a*move (state ^operator ) ( ^reg ) (^io.output-link
    ) ( ^name move) --> (
      ^move.direction ) } sp {p*east (state ^io.input-link.eater ) ( ^x ^y ) ( ^reg north) (^io.input-link.my-location.north.content wall) --> ( ^operator + ) ( ^name east) } sp {p*south (state ^io.input-link.eater ) ( ^x ^y ) ( ^reg east) (^io.input-link.my-location.east.content wall) --> ( ^operator + ) ( ^name south) } sp {p*west (state ^io.input-link.eater ) ( ^x ^y ) ( ^reg south) (^io.input-link.my-location.south.content wall) --> ( ^operator + ) ( ^name west) } sp {p*north (state ^io.input-link.eater ) ( ^x ^y ) ( ^reg west) (^io.input-link.my-location.west.content wall) --> ( ^operator + ) ( ^name north) } sp {a*north (state ^operator ) ( ^reg ) (^io.output-link
        ) ( ^name north) --> ( ^reg -) ( ^reg north) (
          ^move.direction north) } sp {a*east (state ^operator ) ( ^reg ) (^io.output-link
            ) ( ^name east) --> ( ^reg -) ( ^reg east) (
              ^move.direction east) } sp {a*south (state ^operator ) ( ^reg ) (^io.output-link
                ) ( ^name south) --> ( ^reg -) ( ^reg south) (
                  ^move.direction south) } sp {a*west (state ^operator ) ( ^reg ) (^io.output-link
                    ) ( ^name west) --> ( ^reg -) ( ^reg west) (
                      ^move.direction west) } sp {p*halt (state ^io.input-link.eater ) ( ^reg ) ( ^x ^y ) -{ -( ^x << 1 15 >> ) -( ^y << 1 15 >> ) } (^io.input-link.my-location..content wall) --> ( ^operator + >) ( ^name halt) } sp {a*halt (state ^operator ) ( ^reg ) (^io.output-link
                        ) ( ^name halt) --> (halt) }