snit::type a_pe_grammar {
    constructor {} {
        install myg using pt::peg::container ${selfns}::G
        $myg start {n eos}
        $myg add   eos ex X
        $myg modes {
            eos value
            ex  value
            X   value
        }
        $myg rules {
            eos {x {n ex} {* {x {+ space} {n ex}}}}
            ex  {x {+ {x {! {n X}} {/ {t x} {t z}}}} {? {n X}}}
            X   {t x}
        }
        return
    }

    component myg
    delegate method * to myg
}
