diff options
| author | bringert <unknown> | 2005-06-17 13:15:16 +0000 |
|---|---|---|
| committer | bringert <unknown> | 2005-06-17 13:15:16 +0000 |
| commit | 2c48a10236bb19d8b04382cb1e957ce18b9d29fd (patch) | |
| tree | 1194fc1981b5cd2a144b72f4fff261edfeb1af2e /src/GF/Canon/PrintGFC.hs | |
| parent | 05b5ffe5bf03a870f6fe0728ace6c0d8de69b89e (diff) | |
Changed name of Con constructor in GFC.cf to avoid errors on Windows when generating Java code with BNFC for the GFC grammar. CON is a reserved filename on Windows. Con was changed to Par, and all the code using was changed too.
Diffstat (limited to 'src/GF/Canon/PrintGFC.hs')
| -rw-r--r-- | src/GF/Canon/PrintGFC.hs | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/GF/Canon/PrintGFC.hs b/src/GF/Canon/PrintGFC.hs index 6a14c1fb5..ef41055ed 100644 --- a/src/GF/Canon/PrintGFC.hs +++ b/src/GF/Canon/PrintGFC.hs @@ -1,6 +1,6 @@ - module GF.Canon.PrintGFC where + -- pretty-printer generated by the BNF converter, except handhacked spacing --H import GF.Infra.Ident --H @@ -36,12 +36,11 @@ render d = rend 0 (map ($ "") $ d []) "" where t : "." :ts -> showString t . showString "." . rend i ts --H t :ts -> realspace t . rend i ts --H _ -> id - space t = showString t . showChar ' ' -- H + space t = showString t . showChar ' ' -- H realspace t = showString t . (\s -> if null s then "" else (' ':s)) -- H new i s = s -- H realnew = showChar '\n' --H - parenth :: Doc -> Doc parenth ss = doc (showChar '(') . ss . doc (showChar ')') @@ -63,12 +62,6 @@ class Print a where instance Print a => Print [a] where prt _ = prtList -instance Print Integer where - prt _ x = doc (shows x) - -instance Print Double where - prt _ x = doc (shows x) - instance Print Char where prt _ s = doc (showChar '\'' . mkEsc '\'' s . showChar '\'') prtList s = doc (showChar '"' . concatS (map (mkEsc '"') s) . showChar '"') @@ -85,31 +78,38 @@ prPrec :: Int -> Int -> Doc -> Doc prPrec i j = if j<i then parenth else id +instance Print Integer where + prt _ x = doc (shows x) + + +instance Print Double where + prt _ x = doc (shows x) + instance Print Ident where - prt _ i = doc (showString $ prIdent i) + prt _ i = doc (showString $ prIdent i) -- H prtList es = case es of [] -> (concatD []) [x] -> (concatD [prt 0 x]) x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - - instance Print Canon where prt i e = case e of MGr ids id modules -> prPrec i 0 (concatD [doc (showString "grammar") , prt 0 ids , doc (showString "of") , prt 0 id , doc (showString ";") , prt 0 modules]) Gr modules -> prPrec i 0 (concatD [prt 0 modules]) + instance Print Line where prt i e = case e of - LMulti ids id -> prPrec i 0 (concatD [doc (showString "grammar") , prt 0 ids , doc (showString "of") , prt 0 id , doc (showString ";") , doc (showString "*NEW")]) - LHeader modtype extend open -> prPrec i 0 (concatD [prt 0 modtype , doc (showString "=") , prt 0 extend , prt 0 open , doc (showString "{"), doc (showString "*NEW")]) - LFlag flag -> prPrec i 0 (concatD [prt 0 flag , doc (showString ";") , doc (showString "*NEW")]) - LDef def -> prPrec i 0 (concatD [prt 0 def , doc (showString ";") , doc (showString "*NEW")]) + LMulti ids id -> prPrec i 0 (concatD [doc (showString "grammar") , prt 0 ids , doc (showString "of") , prt 0 id , doc (showString ";")]) + LHeader modtype extend open -> prPrec i 0 (concatD [prt 0 modtype , doc (showString "=") , prt 0 extend , prt 0 open , doc (showString "{")]) + LFlag flag -> prPrec i 0 (concatD [prt 0 flag , doc (showString ";")]) + LDef def -> prPrec i 0 (concatD [prt 0 def , doc (showString ";")]) LEnd -> prPrec i 0 (concatD [doc (showString "}")]) + instance Print Module where prt i e = case e of - Mod modtype extend open flags defs -> prPrec i 0 (concatD [prt 0 modtype , doc (showString "=") , prt 0 extend , prt 0 open , doc (showString "{") , doc (showString "*NEW") , prt 0 flags , prt 0 defs , doc (showString "}")]) + Mod modtype extend open flags defs -> prPrec i 0 (concatD [prt 0 modtype , doc (showString "=") , prt 0 extend , prt 0 open , doc (showString "{") , prt 0 flags , prt 0 defs , doc (showString "}")]) prtList es = case es of [] -> (concatD []) @@ -141,7 +141,7 @@ instance Print Flag where prtList es = case es of [] -> (concatD []) - x:xs -> (concatD [prt 0 x , doc (showString ";") , doc (showString "*NEW") , prt 0 xs]) + x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) instance Print Def where prt i e = case e of @@ -158,6 +158,7 @@ instance Print Def where [] -> (concatD []) x:xs -> (concatD [prt 0 x , doc (showString ";"), doc (showString "*NEW") , prt 0 xs]) -- H + instance Print ParDef where prt i e = case e of ParD id ctypes -> prPrec i 0 (concatD [prt 0 id , prt 0 ctypes]) @@ -261,7 +262,7 @@ instance Print Term where prt i e = case e of Arg argvar -> prPrec i 2 (concatD [prt 0 argvar]) I cident -> prPrec i 2 (concatD [prt 0 cident]) - Con cident terms -> prPrec i 2 (concatD [doc (showString "<") , prt 0 cident , prt 2 terms , doc (showString ">")]) + Par cident terms -> prPrec i 2 (concatD [doc (showString "<") , prt 0 cident , prt 2 terms , doc (showString ">")]) LI id -> prPrec i 2 (concatD [doc (showString "$") , prt 0 id]) R assigns -> prPrec i 2 (concatD [doc (showString "{") , prt 0 assigns , doc (showString "}")]) P term label -> prPrec i 1 (concatD [prt 2 term , doc (showString ".") , prt 0 label]) @@ -281,8 +282,8 @@ instance Print Term where instance Print Tokn where prt i e = case e of KS str -> prPrec i 0 (concatD [prt 0 str]) - KM str -> prPrec i 0 (concatD [prt 0 str]) KP strs variants -> prPrec i 0 (concatD [doc (showString "[") , doc (showString "pre") , prt 0 strs , doc (showString "{") , prt 0 variants , doc (showString "}") , doc (showString "]")]) + KM str -> prPrec i 0 (concatD [prt 0 str]) instance Print Assign where |
