Arithmetic Evaluator/Go: Difference between revisions

Content added Content deleted
(Alternative solution using library functions)
m (Both examples work with Go 1. Library example needed a small tweak to match the API.)
Line 1: Line 1:
__TOC__
__TOC__
=Operator precedence parser=
=Operator precedence parser=
{{works with|gc|2010-04-27}}

This is an operator precedence parser. The number format used in calculation can be changed with the line "type Number int".
This is an operator precedence parser. The number format used in calculation can be changed with the line "type Number int".


Line 287: Line 285:


func parseAndEval(exp string) (int, error) {
func parseAndEval(exp string) (int, error) {
fs := token.NewFileSet()
tree, err := parser.ParseExpr(exp)
tree, err := parser.ParseExpr(fs, "", exp)
if err != nil {
if err != nil {
return 0, err
return 0, err