"rest" -> joy_rest stack expression
"stack" -> joy_stack stack expression
"swaack" -> joy_swaack stack expression
+ "swap" -> joy_swap stack expression
_ -> Err ("Unknown word: " ++ symbol)
Err msg -> Err msg
+joy_swap : JList -> JList -> Result String (JList, JList)
+joy_swap stack expression =
+ case pop_any(stack) of
+ Ok (a, s0) ->
+ case pop_any(s0) of
+ Ok (b, s1) -> Ok ((b :: a :: s1), expression)
+ Err msg -> Err msg
+ Err msg -> Err msg
+
+
push_int : Int -> JList -> JList
push_int i stack = (JoyInt i) :: stack