integer :: Parser Integer
integer = lexeme $ do
    sign <- option '+' (oneOf "+-")
    num <- try hexadecimal <|> try binary <|> try decimal <|> try charNum
    notFollowedBy lblChar
    return $ if sign == '+' then num else -num
integer :: Parser Integer
integer = lexeme $ do
    sign <- option '+' (oneOf "+-")
    num <- try hexadecimal <|> try binary <|> try decimal <|> try charNum
    notFollowedBy lblChar
    return $ if sign == '+' then num else -num
integer = lexeme $ do
    sign <- option '+' (oneOf "+-")
    num <- try hexadecimal <|> try binary <|> try decimal <|> try charNum
    notFollowedBy lblChar
    return $ if sign == '+' then num else -num