pt::grammar::peg {
    rules {
	AddOp      {is {/ {t -} {t +}}                                                                mode value}
	Digit      {is {/ {t 0} {t 1} {t 2} {t 3} {t 4} {t 5} {t 6} {t 7} {t 8} {t 9}}                mode value}
	Expression {is {/ {x {t (} {n Expression} {t )}} {x {n Factor} {* {x {n MulOp} {n Factor}}}}} mode value}
	Factor     {is {x {n Term} {* {x {n AddOp} {n Term}}}}                                        mode value}
	MulOp      {is {/ {t *} {t /}}                                                                mode value}
	Number     {is {x {? {n Sign}} {+ {n Digit}}}                                                 mode value}
	Sign       {is {/ {t -} {t +}}                                                                mode value}
	Term       {is {n Number}                                                                     mode value}
    }
    start {n Expression}
}
