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