summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/haskell/PGF/Expr.hs17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/runtime/haskell/PGF/Expr.hs b/src/runtime/haskell/PGF/Expr.hs
index cf0cb79aa..df257c905 100644
--- a/src/runtime/haskell/PGF/Expr.hs
+++ b/src/runtime/haskell/PGF/Expr.hs
@@ -15,7 +15,7 @@ module PGF.Expr(Tree, BindType(..), Expr(..), Literal(..), Patt(..), Equation(..
MetaId,
-- helpers
- pMeta,pStr,pArg,pLit,freshName,ppMeta,ppLit,ppParens
+ pMeta,pArg,pLit,freshName,ppMeta,ppLit,ppParens
) where
import PGF.CId
@@ -194,16 +194,11 @@ pMeta = do RP.char '?'
return 0
pLit :: RP.ReadP Literal
-pLit = pNum RP.<++ liftM LStr pStr
-
-pNum = do x <- RP.munch1 isDigit
- ((RP.char '.' >> RP.munch1 isDigit >>= \y -> return (LFlt (read (x++"."++y))))
- RP.<++
- (return (LInt (read x))))
-
-pStr = RP.char '"' >> (RP.manyTill (pEsc RP.<++ RP.get) (RP.char '"'))
- where
- pEsc = RP.char '\\' >> RP.get
+pLit = liftM LStr (RP.readS_to_P reads)
+ RP.<++
+ liftM LInt (RP.readS_to_P reads)
+ RP.<++
+ liftM LFlt (RP.readS_to_P reads)
-----------------------------------------------------