diff options
| author | bjorn <bjorn@bringert.net> | 2008-01-30 17:18:27 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-01-30 17:18:27 +0000 |
| commit | c6137229ebb66b0a299b3ff09bd6fabf01444884 (patch) | |
| tree | dc190f49bab8fc376f8277bec33c57de882e2819 /src | |
| parent | 76bfc8e98d999517c18d6e54ee452a42a6c808cc (diff) | |
Standard format for floats and strings in GFCC.
Diffstat (limited to 'src')
| -rw-r--r-- | src/GF/GFCC/Raw/ParGFCCRaw.hs | 2 | ||||
| -rw-r--r-- | src/GF/GFCC/Raw/PrintGFCCRaw.hs | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/src/GF/GFCC/Raw/ParGFCCRaw.hs b/src/GF/GFCC/Raw/ParGFCCRaw.hs index 06ed83c04..051358211 100644 --- a/src/GF/GFCC/Raw/ParGFCCRaw.hs +++ b/src/GF/GFCC/Raw/ParGFCCRaw.hs @@ -21,9 +21,7 @@ pTerm n = skipSpaces >> (pParen <++ pApp <++ pNum <++ pStr <++ pMeta) where pParen = between (char '(') (char ')') (pTerm 0) pApp = liftM2 App pIdent (if n == 0 then pTerms else return []) pStr = char '"' >> liftM AStr (manyTill (pEsc <++ get) (char '"')) - -- FIXME: what escapes are used? pEsc = char '\\' >> get - -- FIXME: what formats? pNum = do x <- munch1 isDigit ((char '.' >> munch1 isDigit >>= \y -> return (AFlt (read (x++"."++y)))) <++ diff --git a/src/GF/GFCC/Raw/PrintGFCCRaw.hs b/src/GF/GFCC/Raw/PrintGFCCRaw.hs index 45ca6b9cb..d46d8096f 100644 --- a/src/GF/GFCC/Raw/PrintGFCCRaw.hs +++ b/src/GF/GFCC/Raw/PrintGFCCRaw.hs @@ -3,6 +3,7 @@ module GF.GFCC.Raw.PrintGFCCRaw (printTree) where import GF.GFCC.Raw.AbsGFCCRaw import Data.List (intersperse) +import Numeric (showFFloat) printTree :: Grammar -> String printTree g = prGrammar g "" @@ -16,15 +17,13 @@ prRExp n (App x xs) = p (prCId x . showChar ' ' . prRExpList xs) where p s = if n == 0 then s else showChar '(' . s . showChar ')' prRExp _ (AInt x) = shows x prRExp _ (AStr x) = showChar '"' . concatS (map mkEsc x) . showChar '"' -prRExp _ (AFlt x) = shows x -- FIXME: simpler format +prRExp _ (AFlt x) = showFFloat Nothing x prRExp _ AMet = showChar '?' mkEsc :: Char -> ShowS mkEsc s = case s of '"' -> showString "\\\"" '\\' -> showString "\\\\" - '\n' -> showString "\\n" - '\t' -> showString "\\t" _ -> showChar s prRExpList :: [RExp] -> ShowS |
