module Language.Haskell.Tools.AST.Match.Exprs where
import Language.Haskell.Tools.AST
import Language.Haskell.Tools.AST.ElementTypes
import Language.Haskell.Tools.AST.Match.Stmts
import Language.Haskell.Tools.AST.Match.Names
pattern Var :: Name dom -> Expr dom
pattern Var name <- Ann _ (UVar name)
pattern Lit :: Literal dom -> Expr dom
pattern Lit lit <- Ann _ (ULit lit)
pattern InfixApp :: Expr dom -> Operator dom -> Expr dom -> Expr dom
pattern InfixApp lhs op rhs <- Ann _ (UInfixApp lhs op rhs)
pattern PrefixApp :: Operator dom -> Expr dom -> Expr dom
pattern PrefixApp op rhs <- Ann _ (UPrefixApp op rhs)
pattern App :: Expr dom -> Expr dom -> Expr dom
pattern App f e <- Ann _ (UApp f e)
pattern Lambda :: PatternList dom -> Expr dom -> Expr dom
pattern Lambda pats rhs <- Ann _ (ULambda pats rhs)
pattern Let :: LocalBindList dom -> Expr dom -> Expr dom
pattern Let pats expr <- Ann _ (ULet pats expr)
pattern If :: Expr dom -> Expr dom -> Expr dom -> Expr dom
pattern If cond then_ else_ <- Ann _ (UIf cond then_ else_)
pattern MultiIf :: GuardedCaseRhsList dom -> Expr dom
pattern MultiIf cases <- Ann _ (UMultiIf cases)
pattern Case :: Expr dom -> AltList dom -> Expr dom
pattern Case expr cases <- Ann _ (UCase expr cases)
pattern Do :: StmtList dom -> Expr dom
pattern Do stmts <- Ann _ (UDo DoKeyword stmts)
pattern ParArrayComp :: Expr dom -> ListCompBodyList dom -> Expr dom
pattern ParArrayComp expr stmts <- Ann _ (UParArrayComp expr stmts)
pattern Tuple :: ExprList dom -> Expr dom
pattern Tuple exprs <- Ann _ (UTuple exprs)
pattern UnboxedTuple :: ExprList dom -> Expr dom
pattern UnboxedTuple exprs <- Ann _ (UUnboxedTuple exprs)
pattern TupleSection :: TupSecElemList dom -> Expr dom
pattern TupleSection elems <- Ann _ (UTupleSection elems)
pattern UnboxedTupleSection :: TupSecElemList dom -> Expr dom
pattern UnboxedTupleSection elems <- Ann _ (UUnboxedTupSec elems)
pattern List :: ExprList dom -> Expr dom
pattern List exprs <- Ann _ (UList exprs)
pattern ParArray :: ExprList dom -> Expr dom
pattern ParArray exprs <- Ann _ (UParArray exprs)
pattern Paren :: Expr dom -> Expr dom
pattern Paren expr <- Ann _ (UParen expr)
pattern LeftSection :: Expr dom -> Operator dom -> Expr dom
pattern LeftSection lhs op <- Ann _ (ULeftSection lhs op)
pattern RightSection :: Operator dom -> Expr dom -> Expr dom
pattern RightSection op lhs <- Ann _ (URightSection op lhs)
pattern RecCon :: Name dom -> FieldUpdateList dom -> Expr dom
pattern RecCon name flds <- Ann _ (URecCon name flds)
pattern RecUpdate :: Expr dom -> FieldUpdateList dom -> Expr dom
pattern RecUpdate expr flds <- Ann _ (URecUpdate expr flds)
pattern Enum :: Expr dom -> MaybeExpr dom -> MaybeExpr dom -> Expr dom
pattern Enum from step to <- Ann _ (UEnum from step to)
pattern ParArrayEnum :: Expr dom -> MaybeExpr dom -> Expr dom -> Expr dom
pattern ParArrayEnum from step to <- Ann _ (UParArrayEnum from step to)
pattern ListComp :: Expr dom -> ListCompBodyList dom -> Expr dom
pattern ListComp expr bodies <- Ann _ (UListComp expr bodies)
pattern ParArrayListComp :: Expr dom -> ListCompBodyList dom -> Expr dom
pattern ParArrayListComp expr bodies <- Ann _ (UParArrayComp expr bodies)
pattern TypeSig :: Expr dom -> Type dom -> Expr dom
pattern TypeSig lhs typ <- Ann _ (UTypeSig lhs typ)
pattern ExplicitTypeApp :: Expr dom -> Type dom -> Expr dom
pattern ExplicitTypeApp lhs typ <- Ann _ (UExplTypeApp lhs typ)
pattern VarQuote :: Name dom -> Expr dom
pattern VarQuote name <- Ann _ (UVarQuote name)
pattern TypeQuote :: Name dom -> Expr dom
pattern TypeQuote name <- Ann _ (UTypeQuote name)
pattern BracketExpr :: Bracket dom -> Expr dom
pattern BracketExpr brack <- Ann _ (UBracketExpr brack)
pattern SpliceExpr :: Splice dom -> Expr dom
pattern SpliceExpr splice <- Ann _ (USplice splice)
pattern QuasiQuoteExpr :: QuasiQuote dom -> Expr dom
pattern QuasiQuoteExpr qq <- Ann _ (UQuasiQuoteExpr qq)
pattern ExprPragma :: ExprPragma dom -> Expr dom -> Expr dom
pattern ExprPragma pragma expr <- Ann _ (UExprPragma pragma expr)
pattern Proc :: Pattern dom -> Cmd dom -> Expr dom
pattern Proc pat cmd <- Ann _ (UProc pat cmd)
pattern ArrowApp :: Expr dom -> ArrowApp dom -> Expr dom -> Expr dom
pattern ArrowApp lhs arrow rhs <- Ann _ (UArrowApp lhs arrow rhs)
pattern LambdaCase :: AltList dom -> Expr dom
pattern LambdaCase alts <- Ann _ (ULamCase alts)
pattern StaticPointer :: Expr dom -> Expr dom
pattern StaticPointer expr <- Ann _ (UStaticPtr expr)
pattern NormalFieldUpdate :: Name dom -> Expr dom -> FieldUpdate dom
pattern NormalFieldUpdate n e <- Ann _ (UNormalFieldUpdate n e)
pattern FieldPun :: Name dom -> FieldUpdate dom
pattern FieldPun n <- Ann _ (UFieldPun n)
pattern FieldWildcard :: FieldWildcard dom -> FieldUpdate dom
pattern FieldWildcard wc <- Ann _ (UFieldWildcard wc)
pattern TupSecPresent :: Expr dom -> TupSecElem dom
pattern TupSecPresent expr <- Ann _ (Present expr)
pattern TupSecMissing :: TupSecElem dom
pattern TupSecMissing <- Ann _ Missing
pattern Alt :: Pattern dom -> CaseRhs dom -> MaybeLocalBinds dom -> Alt dom
pattern Alt pat rhs locals <- Ann _ (UAlt pat rhs locals)
pattern CaseRhs :: Expr dom -> CaseRhs dom
pattern CaseRhs e <- Ann _ (UUnguardedCaseRhs e)
pattern GuardedCaseRhss :: GuardedCaseRhsList dom -> CaseRhs dom
pattern GuardedCaseRhss cases <- Ann _ (UGuardedCaseRhss cases)
pattern GuardedCaseRhs :: RhsGuardList dom -> Expr dom -> GuardedCaseRhs dom
pattern GuardedCaseRhs guards expr <- Ann _ (UGuardedCaseRhs guards expr)
pattern CorePragma :: String -> ExprPragma dom
pattern CorePragma str <- Ann _ (UCorePragma (Ann _ (UStringNode str)))
pattern SccPragma :: String -> ExprPragma dom
pattern SccPragma str <- Ann _ (USccPragma (Ann _ (UStringNode str)))
pattern GeneratedPragma :: SourceRange dom -> ExprPragma dom
pattern GeneratedPragma rng <- Ann _ (UGeneratedPragma rng)
pattern SourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange dom
pattern SourceRange file fromLine fromCol toLine toCol
<- Ann _ (USourceRange
(Ann _ (UStringNode file))
(Ann _ (Number fromLine))
(Ann _ (Number fromCol))
(Ann _ (Number toLine))
(Ann _ (Number toCol)))
pattern ArrowAppCmd :: Expr dom -> ArrowApp dom -> Expr dom -> Cmd dom
pattern ArrowAppCmd lhs arrow rhs <- Ann _ (UArrowAppCmd lhs arrow rhs)
pattern ArrowFormCmd :: Expr dom -> CmdList dom -> Cmd dom
pattern ArrowFormCmd expr cmds <- Ann _ (UArrowFormCmd expr cmds)
pattern AppCmd :: Cmd dom -> Expr dom -> Cmd dom
pattern AppCmd cmd expr <- Ann _ (UAppCmd cmd expr)
pattern InfixCmd :: Cmd dom -> Name dom -> Cmd dom -> Cmd dom
pattern InfixCmd lhs op rhs <- Ann _ (UInfixCmd lhs op rhs)
pattern LambdaCmd :: PatternList dom -> Cmd dom -> Cmd dom
pattern LambdaCmd pats cmd <- Ann _ (ULambdaCmd pats cmd)
pattern ParenCmd :: Cmd dom -> Cmd dom
pattern ParenCmd cmd <- Ann _ (UParenCmd cmd)
pattern CaseCmd :: Expr dom -> CmdAltList dom -> Cmd dom
pattern CaseCmd expr alts <- Ann _ (UCaseCmd expr alts)
pattern IfCmd :: Expr dom -> Cmd dom -> Cmd dom -> Cmd dom
pattern IfCmd pred then_ else_ <- Ann _ (UIfCmd pred then_ else_)
pattern LetCmd :: LocalBindList dom -> Cmd dom -> Cmd dom
pattern LetCmd locals cmd <- Ann _ (ULetCmd locals cmd)
pattern DoCmd :: CmdStmtList dom -> Cmd dom
pattern DoCmd stmts <- Ann _ (UDoCmd stmts)
pattern LeftAppl :: ArrowApp dom
pattern LeftAppl <- Ann _ ULeftAppl
pattern RightAppl :: ArrowApp dom
pattern RightAppl <- Ann _ URightAppl
pattern LeftHighApp :: ArrowApp dom
pattern LeftHighApp <- Ann _ ULeftHighApp
pattern RightHighApp :: ArrowApp dom
pattern RightHighApp <- Ann _ URightHighApp