+
+-- |'qvalue' accepts a so-called qvalue.
+qvalue :: Parser Double
+qvalue = do x <- char '0'
+ xs <- option ""
+ $ do x <- char '.'
+ xs <- many digit -- 本當は三文字までに制限
+ return (x:xs)
+ return $ read (x:xs)
+ <|>
+ do x <- char '1'
+ xs <- option ""
+ $ do x <- char '.'
+ xs <- many (char '0') -- 本當は三文字までに制限
+ return (x:xs)
+ return $ read (x:xs)