diff options
| author | bjorn <bjorn@bringert.net> | 2008-01-29 15:53:50 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-01-29 15:53:50 +0000 |
| commit | 42382d6f93066b3adc5aa5264f8fdca0de79771f (patch) | |
| tree | ee64e955d02cdac91f5f42826386c8123d685678 /src/GF/GFCC/Raw/PrintGFCCRaw.hs | |
| parent | 730a9905f3ae44d2349649187dd49792bd8f1973 (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.hs | 19 |
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 |
