;;
;; Auxiliary definitions used for describing binary format notation
;;

;; Binary format

syntax symdots hint(show `...) hint(macro none) = 0

def $var(syntax X) : nat hint(show %) hint(macro none)
def $var(syntax X) = 0x00

grammar Bvar(syntax X) : () hint(show %) hint(macro none) = 0x00 => ()
grammar Bsym : A hint(macro none) = Bvar(B_1) => $var(A_1) | Bvar(symdots) | Bvar(B_n) => $var(A_n)

grammar Bsymsplit/1 : () hint(show Bsym) hint(macro none) = Bvar(B_1) | ...
grammar Bsymsplit/2 : () hint(show Bsym) hint(macro none) = ... | Bvar(B_2)
