 
             if tokenizer.accept(.COMMA) != nil {
                 if tokenizer.accept(.SINGLE_SPACE) == nil {
-                    throw ParseError.unexpectedToken(errorMessage(tokenizer, expectedToken: .SINGLE_SPACE))
-                }
-            } else {
-                done = true
-            }
-        } while !done
-
-        if tokenizer.accept(.RIGHT_PAREN) == nil {
-            throw ParseError.unexpectedToken(errorMessage(tokenizer, expectedToken: .RIGHT_PAREN))
+                    throw WKTReaderError.unexpectedToken(errorMessage(tokenizer, expectedToken: .SINGLE_SPACE))
+                }
+            } else {
+                done = true
+            }
+        } while !done
+
+        if tokenizer.accept(.RIGHT_PAREN) == nil {
+            throw WKTReaderError.unexpectedToken(errorMessage(tokenizer, expectedToken: .RIGHT_PAREN))
         }
         return MultiPoint<CoordinateType>(elements: elements, precision: precision, coordinateReferenceSystem: crs)
     }

    fileprivate func pointText(_ tokenizer: Tokenizer<WKT>, require: (z: Bool, m: Bool)) throws -> Point<CoordinateType> {

        if tokenizer.accept(.LEFT_PAREN) == nil {
            throw ParseError.unexpectedToken(errorMessage(tokenizer, expectedToken: .LEFT_PAREN))
        }

        let coordinate = try self.coordinate(tokenizer, require: require)

        if tokenizer.accept(.RIGHT_PAREN) == nil {
            throw ParseError.unexpectedToken(errorMessage(tokenizer, expectedToken: .RIGHT_PAREN))
        }
        return Point<CoordinateType>(coordinate: coordinate, precision: precision, coordinateReferenceSystem: crs)
    }

            result.z = requireZ

            if tokenizer.accept(.THREEDIMENSIONAL) == nil {
                throw WKTReaderError.unexpectedToken(errorMessage(tokenizer, expectedToken: .THREEDIMENSIONAL))
            }
        } else {
            result.z = tokenizer.accept(.THREEDIMENSIONAL) != nil
