Posted to tcl by colin at Thu Jan 03 07:48:34 GMT 2013view pretty

$pg add {
    start {addition} {}

    addition {addition PLUS multiplication} {
	return [expr $1+$3]
    }

    addition {addition MINUS multiplication} {
	return [expr $1-$3]
    }

    addition {multiplication} {}

    multiplication {multiplication MULTIPLY number} {
	return [expr $1*$3]
    }

    multiplication {multiplication DIVIDE number} {
	return [expr $1/$3]
    }

    multiplication {number} {}

    number {NUMBER} {}

    number {MINUS NUMBER} {
	return [expr -$2]
    }

    number {OPEN addition CLOSE} {
	return $2
    }
}