packages feed

hssqlppp-0.2.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.catUpdates = flip map @sigs.fnSigs $ \(nm,args) ->
                               CatDropFunction 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 = []