Added support for printing out a Set of Var using showCode
This commit is contained in:
parent
edc3a7e910
commit
a1db6f989a
|
@ -19,6 +19,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
module UsageCheckUtils (customVarCompare, Decl(..), emptyVars, getVarProc, labelFunctions, ParItems(..), transformParItems, Var(..), Vars(..), vars) where
|
module UsageCheckUtils (customVarCompare, Decl(..), emptyVars, getVarProc, labelFunctions, ParItems(..), transformParItems, Var(..), Vars(..), vars) where
|
||||||
|
|
||||||
import Data.Generics hiding (GT)
|
import Data.Generics hiding (GT)
|
||||||
|
import Data.List
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
|
|
||||||
|
@ -28,7 +29,7 @@ import FlowGraph
|
||||||
import OrdAST()
|
import OrdAST()
|
||||||
import ShowCode
|
import ShowCode
|
||||||
|
|
||||||
newtype Var = Var A.Variable deriving (Show)
|
newtype Var = Var A.Variable deriving (Data, Show, Typeable)
|
||||||
|
|
||||||
|
|
||||||
customVarCompare :: A.Variable -> A.Variable -> Ordering
|
customVarCompare :: A.Variable -> A.Variable -> Ordering
|
||||||
|
@ -48,6 +49,13 @@ instance ShowOccam Var where
|
||||||
instance ShowRain Var where
|
instance ShowRain Var where
|
||||||
showRain (Var v) = showRain v
|
showRain (Var v) = showRain v
|
||||||
|
|
||||||
|
instance ShowOccam (Set.Set Var) where
|
||||||
|
showOccamM s
|
||||||
|
= do ss <- mapM showOccamM (Set.toList s)
|
||||||
|
return $ "{" ++ concat (intersperse ", " ss) ++ "}"
|
||||||
|
instance ShowRain (Set.Set Var) where
|
||||||
|
showRain s = "{" ++ concat (intersperse ", " $ map showRain $ Set.toList s) ++ "}"
|
||||||
|
|
||||||
data Vars = Vars {
|
data Vars = Vars {
|
||||||
readVars :: Set.Set Var
|
readVars :: Set.Set Var
|
||||||
,writtenVars :: Set.Set Var
|
,writtenVars :: Set.Set Var
|
||||||
|
|
Loading…
Reference in New Issue
Block a user