func UnmarshalWKT(wkt string, opts ...ConstructorOption) (Geometry, error) {
	p := newParser(wkt, opts)
	geom, err := p.nextGeometryTaggedText()
	if err != nil {
		return Geometry{}, err
	}
	if tok, err := p.lexer.next(); err == nil {
		return Geometry{}, wantButGot("EOF", tok)
	} else if err != wktUnexpectedEOF {
		return Geometry{}, err
	}
	return geom, nil
}
Function names is the parser are chosen to match closely with the BNF
productions in the WKT grammar.

Convention: functions starting with 'next' consume token(s), and build the
next production in the grammar.
UnmarshalWKT parses a Well Known Text (WKT), and returns the corresponding
Geometry.
package geom
import (
	"fmt"
	"math"
	"strconv"
	"strings"
)