hssqlppp-0.1.0: Database/HsSqlPpp/AstInternals/TypeChecking/Drops.ag
{-
Copyright 2009 Jake Wheat
This file contains the code for drop statements, only does drop function at the moment
-}
SEM Statement
| DropFunction
loc.tpe = Right $ Pseudo Void
loc.backTree = DropFunction @ann @ifE.annotatedTree @sigs.annotatedTree @cascade.annotatedTree
loc.envUpdates = flip map @sigs.fnSigs $ \(nm,args) ->
EnvDropFunction ifE nm args
where
ifE = @ifE.annotatedTree == IfExists
loc.statementType = []
ATTR StringTypeNameListPairList [||fnSigs:{[(String,[Type])]}]
SEM StringTypeNameListPairList
| Cons lhs.fnSigs = @hd.fnSig : @tl.fnSigs
| Nil lhs.fnSigs = []
ATTR StringTypeNameListPair [||fnSig:{(String,[Type])}]
SEM StringTypeNameListPair
| Tuple lhs.fnSig = (@x1, @x2.namedTypes)
ATTR TypeNameList [||namedTypes:{[Type]}]
SEM TypeNameList
| Cons lhs.namedTypes = @hd.namedType : @tl.namedTypes
| Nil lhs.namedTypes = []