Added a function for testing that defines all the occam built-in operators, which helped fix all the failures in OccamPasses
This commit is contained in:
parent
46b1b29e12
commit
aa7d6b9b44
|
@ -49,6 +49,7 @@ import Test.QuickCheck
|
||||||
import qualified AST as A
|
import qualified AST as A
|
||||||
import CompState
|
import CompState
|
||||||
import Errors
|
import Errors
|
||||||
|
import Intrinsics
|
||||||
import Metadata (emptyMeta)
|
import Metadata (emptyMeta)
|
||||||
import Pass
|
import Pass
|
||||||
import Pattern
|
import Pattern
|
||||||
|
@ -645,3 +646,17 @@ instance Die (StateT CompState IO) where
|
||||||
fail s
|
fail s
|
||||||
|
|
||||||
--}}}
|
--}}}
|
||||||
|
|
||||||
|
defineOccamOperators :: CSM m => m ()
|
||||||
|
defineOccamOperators
|
||||||
|
= sequence_
|
||||||
|
[ let n = A.Name emptyMeta $ occamDefaultOperator rawOp ts
|
||||||
|
nd = A.NameDef emptyMeta (A.nameName n) rawOp
|
||||||
|
(A.Function emptyMeta (A.PlainSpec, A.PlainRec)
|
||||||
|
[rt] [A.Formal A.ValAbbrev t (A.Name emptyMeta $ "arg" ++ show i)
|
||||||
|
| (i, t) <- zip [0..] ts
|
||||||
|
] Nothing)
|
||||||
|
A.Original A.NameNonce A.Unplaced
|
||||||
|
in defineName n nd
|
||||||
|
| (rawOp, rt, ts) <- occamIntrinsicOperators
|
||||||
|
]
|
||||||
|
|
|
@ -50,6 +50,8 @@ startState
|
||||||
undefined
|
undefined
|
||||||
defineVariable "var" A.Int
|
defineVariable "var" A.Int
|
||||||
|
|
||||||
|
defineOccamOperators
|
||||||
|
|
||||||
-- | Test 'OccamPasses.foldConstants'.
|
-- | Test 'OccamPasses.foldConstants'.
|
||||||
testFoldConstants :: Test
|
testFoldConstants :: Test
|
||||||
testFoldConstants = TestList
|
testFoldConstants = TestList
|
||||||
|
|
Loading…
Reference in New Issue
Block a user