diff options
| author | krasimir <krasimir@chalmers.se> | 2009-10-02 23:34:35 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-10-02 23:34:35 +0000 |
| commit | 4c77dcf9388315411539b513aaac5f48b5c875ad (patch) | |
| tree | 0a857e4c41fee417a35d41a0e3adffc9c100a3de /src/GF/Grammar/Printer.hs | |
| parent | d64419f2f25f0fb5a28bddf198dce6ac26b75296 (diff) | |
merge GF.Grammar.API into GF.Grammar
Diffstat (limited to 'src/GF/Grammar/Printer.hs')
| -rw-r--r-- | src/GF/Grammar/Printer.hs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/GF/Grammar/Printer.hs b/src/GF/Grammar/Printer.hs index e0edadbec..80195b2d1 100644 --- a/src/GF/Grammar/Printer.hs +++ b/src/GF/Grammar/Printer.hs @@ -18,6 +18,8 @@ module GF.Grammar.Printer , ppPatt
, ppValue
, ppConstrs
+
+ , showTerm, TermPrintStyle(..)
) where
import GF.Infra.Ident
@@ -301,3 +303,15 @@ getLet :: Term -> ([LocalDef], Term) getLet (Let l e) = let (ls,e') = getLet e
in (l:ls,e')
getLet e = ([],e)
+
+showTerm :: TermPrintStyle -> TermPrintQual -> Term -> String
+showTerm style q t = render $
+ case style of
+ TermPrintTable -> vcat [p <+> s | (p,s) <- ppTermTabular q t]
+ TermPrintAll -> vcat [ s | (p,s) <- ppTermTabular q t]
+ TermPrintDefault -> ppTerm q 0 t
+
+data TermPrintStyle
+ = TermPrintTable
+ | TermPrintAll
+ | TermPrintDefault
|
