;; -*- scheme -*-
(root Command
(fields (tag u8 hidden)))
(branch Command.PencilDown
(condition (= tag 0)))
(branch Command.PencilUp
(condition (= tag 1)))
(branch Command.Turn
(condition (= tag 2))
(fields (angle u32)))
(branch Command.Move
(condition (= tag 3))
(fields (distance u32)))
(branch Command.Loop
(condition (= tag 4))
(fields (n-iterations u32)
(body-len u32 hidden)
(body (array body-len Command))))
(branch Command.Eval
(condition (= tag 5))
(fields (op u8 hidden)))
(branch Command.Eval.Const
(condition (= op 0))
(fields (value u32)))
(branch Command.Eval.Plus
(condition (= op 1))
(fields (args (array 2 u32))))
;; Local Variables:
;; eval: (put 'branch 'scheme-indent-function 1)
;; eval: (put 'enum 'scheme-indent-function 1)
;; End: