@@ -5,11 +5,19 @@ module Test.ExtendedSyntax.Util where
55
66import System.FilePath
77
8+ import Data.Set (Set )
9+ import Data.Map (Map )
10+ import Data.Vector (Vector )
811import Data.Text (Text )
12+
13+ import qualified Data.Set as Set
14+ import qualified Data.Map as Map
15+ import qualified Data.Vector as V
916import qualified Data.Text.IO as T (readFile )
1017
1118import Grin.ExtendedSyntax.Grin
1219import Grin.ExtendedSyntax.Parse
20+ import AbstractInterpretation.ExtendedSyntax.HeapPointsTo.Result as HPT
1321
1422import Test.Hspec
1523import Test.ExtendedSyntax.Assertions
@@ -56,6 +64,30 @@ cNope = Tag C "Nope"
5664cNopeH :: Tag
5765cNopeH = Tag C " NopeH"
5866
67+ loc :: HPT. Loc -> TypeSet
68+ loc = tySetFromTypes . pure . HPT. T_Location
69+
70+ unspecLoc :: TypeSet
71+ unspecLoc = tySetFromTypes [HPT. T_UnspecifiedLocation ]
72+
73+ mkNode :: [[HPT. SimpleType ]] -> Vector (Set HPT. SimpleType )
74+ mkNode = V. fromList . map Set. fromList
75+
76+ mkNodeSet :: [(Tag , [[HPT. SimpleType ]])] -> NodeSet
77+ mkNodeSet = HPT. NodeSet . Map. fromList . map (\ (t,v) -> (t,mkNode v))
78+
79+ mkTySet :: [(Tag , [[HPT. SimpleType ]])] -> TypeSet
80+ mkTySet = tySetFromNodeSet . mkNodeSet
81+
82+ tySetFromNodeSet :: NodeSet -> TypeSet
83+ tySetFromNodeSet = TypeSet mempty
84+
85+ tySetFromTypes :: [HPT. SimpleType ] -> TypeSet
86+ tySetFromTypes = flip TypeSet mempty . Set. fromList
87+
88+ mkSimpleMain :: HPT. SimpleType -> (TypeSet , Vector TypeSet )
89+ mkSimpleMain t = (tySetFromTypes [t], mempty )
90+
5991-- name ~ name of the test case, and also the grin source file
6092mkBeforeAfterTestCase :: String ->
6193 FilePath ->
0 commit comments