             
             if tokenizer.accept(.COMMA) != nil {
                 if tokenizer.accept(.SINGLE_SPACE) == nil {
-                    throw ParseError.UnexpectedToken(errorMessage(tokenizer, expectedToken: Token.SINGLE_SPACE))
+                    throw ParseError.UnexpectedToken(errorMessage(tokenizer, expectedToken: .SINGLE_SPACE))
                 }
             } else {
                 done = true;

        
        if tokenizer.accept(.LEFT_PAREN) == nil {
            
            throw ParseError.UnexpectedToken(errorMessage(tokenizer, expectedToken: Token.LEFT_PAREN))
        }
        
        let outerRing = try self.linearRingText(tokenizer)
        
        if tokenizer.accept(Token.RIGHT_PAREN) != nil {
            
            return Polygon<CoordinateType>(outerRing: outerRing, innerRings: [])
        }
    
        if tokenizer.accept(.COMMA) == nil {
            
            throw ParseError.UnexpectedToken(errorMessage(tokenizer, expectedToken: Token.COMMA))
        }
        
        if tokenizer.accept(Token.SINGLE_SPACE) == nil {
            
            throw ParseError.UnexpectedToken(errorMessage(tokenizer, expectedToken: Token.SINGLE_SPACE))
        }
        
        var innerRings = [LinearRing<CoordinateType>]()

    // BNF: <polygon tagged text> ::= polygon <polygon text>
    private func polygonTaggedText(tokenizer: Tokenizer) throws -> Polygon<CoordinateType> {
        if tokenizer.accept(.SINGLE_SPACE) == nil {
            throw ParseError.UnexpectedToken(errorMessage(tokenizer, expectedToken: .SINGLE_SPACE))
        }
        return try polygonText(tokenizer)
    }
