yacc revised with better example