// +build ignore,OMIT package main import ( "flag" "image/png" "log" "os" ) // IMPORT OMIT import ( "golang.org/x/talks/content/2013/bestpractices/funcdraw/drawer" "golang.org/x/talks/content/2013/bestpractices/funcdraw/parser" ) // ENDIMPORT OMIT var ( width = flag.Int("width", 300, "image width") height = flag.Int("height", 300, "image height") xmin = flag.Float64("xmin", -10, "min value for x") xmax = flag.Float64("xmax", 10, "max value for x") ) func main() { flag.Parse() if flag.NArg() != 1 { log.Fatal("missing expression to parse") } text := flag.Arg(0) // START OMIT // Parse the text into an executable function. f, err := parser.Parse(text) if err != nil { log.Fatalf("parse %q: %v", text, err) } // Create an image plotting the function. m := drawer.Draw(f, *width, *height, *xmin, *xmax) // Encode the image into the standard output. err = png.Encode(os.Stdout, m) if err != nil { log.Fatalf("encode image: %v", err) } // END OMIT }