From 2f9fee375e17519a755033ac2d32708013bb4a08 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Sat, 4 Feb 2006 03:27:09 +0000 Subject: [PATCH] Make usable as a filter. --- fco/Parse.hs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/fco/Parse.hs b/fco/Parse.hs index 344963f..d02a428 100644 --- a/fco/Parse.hs +++ b/fco/Parse.hs @@ -1,5 +1,9 @@ --- Parse occam2.1 code into soccam2.1. -- vim:et:ts=2 +-- Parse occam2.1 code into soccam2.1. +-- Adam Sampson +-- To compile: ghc -o occ2socc --make Parse +-- Then run with: ./occ2socc my.socc +-- Or to interpret: ghci Parse.hs import Data.List import Text.ParserCombinators.Parsec @@ -769,9 +773,11 @@ flatten ls = concat $ intersperse "@" $ flatten' ls 0 -- XXX We have to tack SKIP on the end to make it a process. -- XXX Doesn't handle preprocessor instructions. -flattenFile fn = do d <- readFile fn - return $ flatten $ lines (d ++ "\nSKIP\n") +prepare d = flatten $ lines (d ++ "\nSKIP\n") -parseFile fn = do d <- flattenFile fn - parseTest process d +parseFile fn = do d <- readFile fn + parseTest process (prepare d) + +main = do d <- getContents + parseTest process (prepare d)