diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
| commit | e9e80fc389365e24d4300d7d5390c7d833a96c50 (patch) | |
| tree | f0b58473adaa670bd8fc52ada419d8cad470ee03 /old-examples/CLE/CF2GF.hs | |
| parent | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff) | |
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'old-examples/CLE/CF2GF.hs')
| -rw-r--r-- | old-examples/CLE/CF2GF.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/old-examples/CLE/CF2GF.hs b/old-examples/CLE/CF2GF.hs new file mode 100644 index 000000000..1bb1d6611 --- /dev/null +++ b/old-examples/CLE/CF2GF.hs @@ -0,0 +1,20 @@ +import Data.List (intersperse) +import Data.Char (isAlpha) + +-- to massage cf rules to funs, in order, preserving comments +-- to get cats, use pg -printer=gf + +cf2gf :: FilePath -> IO () +cf2gf file = do + ss <- readFile file >>= return . lines + mapM_ (putStrLn . mkOne) ss + +mkOne line = case words line of + fun : cat : "::=" : cats -> + let + (cats0,cats2) = span (/=";") cats + cats1 = filter (isAlpha . head) cats0 ++ [cat] + in + unwords $ [init fun, ":"] ++ intersperse "->" cats1 ++ cats2 + _ -> line +
\ No newline at end of file |
