summaryrefslogtreecommitdiff
path: root/src/GF/GFCC/Raw/PrintGFCCRaw.hs
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-01-29 15:53:50 +0000
committerbjorn <bjorn@bringert.net>2008-01-29 15:53:50 +0000
commit42382d6f93066b3adc5aa5264f8fdca0de79771f (patch)
treeee64e955d02cdac91f5f42826386c8123d685678 /src/GF/GFCC/Raw/PrintGFCCRaw.hs
parent730a9905f3ae44d2349649187dd49792bd8f1973 (diff)
Merge AId and App forms in GFCCRaw.
Diffstat (limited to 'src/GF/GFCC/Raw/PrintGFCCRaw.hs')
-rw-r--r--src/GF/GFCC/Raw/PrintGFCCRaw.hs19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/GF/GFCC/Raw/PrintGFCCRaw.hs b/src/GF/GFCC/Raw/PrintGFCCRaw.hs
index d1041e380..45ca6b9cb 100644
--- a/src/GF/GFCC/Raw/PrintGFCCRaw.hs
+++ b/src/GF/GFCC/Raw/PrintGFCCRaw.hs
@@ -10,15 +10,14 @@ printTree g = prGrammar g ""
prGrammar :: Grammar -> ShowS
prGrammar (Grm xs) = prRExpList xs
-prRExp :: RExp -> ShowS
-prRExp (App x []) = showChar '(' . prCId x . showChar ')'
-prRExp (App x xs) = showChar '(' . prCId x . showChar ' '
- . prRExpList xs . showChar ')'
-prRExp (AId x) = prCId x
-prRExp (AInt x) = shows x
-prRExp (AStr x) = showChar '"' . concatS (map mkEsc x) . showChar '"'
-prRExp (AFlt x) = shows x -- FIXME: simpler format
-prRExp AMet = showChar '?'
+prRExp :: Int -> RExp -> ShowS
+prRExp _ (App x []) = prCId x
+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 _ AMet = showChar '?'
mkEsc :: Char -> ShowS
mkEsc s = case s of
@@ -29,7 +28,7 @@ mkEsc s = case s of
_ -> showChar s
prRExpList :: [RExp] -> ShowS
-prRExpList = concatS . intersperse (showChar ' ') . map prRExp
+prRExpList = concatS . intersperse (showChar ' ') . map (prRExp 1)
prCId :: CId -> ShowS
prCId (CId x) = showString x