{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
module Cubix.Language.Python.Parametric.Common.Types where
#ifndef ONLY_ONE_LANGUAGE
import Data.List ( (\\) )
import Language.Haskell.TH ( mkName )
import Data.Comp.Multi ( Node, Term, AnnTerm, project', project, HFunctor, CxtS, All, (:-<:) )
import Data.Comp.Trans ( runCompTrans, makeSumType )
import Cubix.Language.Info
import Cubix.Language.Python.Parametric.Full.Names
import Cubix.Language.Python.Parametric.Full.Types as Py
import Cubix.Language.Parametric.Derive
import Cubix.Language.Parametric.InjF
import Cubix.Language.Parametric.Syntax as P
data PyLValueL
data PyLhs e l where
PyLhs :: e [PyLValueL] -> PyLhs e LhsL
data TupleLValue e l where
TupleLValue :: e [PyLValueL] -> TupleLValue e PyLValueL
data ListLValue e l where
ListLValue :: e [PyLValueL] -> ListLValue e PyLValueL
data DotLValue e l where
DotLValue :: e Py.ExprL -> e P.IdentL -> DotLValue e PyLValueL
data StarLValue e l where
StarLValue :: e PyLValueL -> StarLValue e PyLValueL
data SubscriptLValue e l where
SubscriptLValue :: e Py.ExprL -> e Py.ExprL -> SubscriptLValue e PyLValueL
data SliceLValue e l where
SliceLValue :: e Py.ExprL -> e [Py.SliceL] -> SliceLValue e PyLValueL
data ParenLValue e l where
ParenLValue :: e PyLValueL -> ParenLValue e PyLValueL
deriveAll [''PyLhs, ''TupleLValue, ''ListLValue, ''DotLValue, ''StarLValue, ''SubscriptLValue, ''SliceLValue, ''ParenLValue]
data PyWith e l where
PyWith :: e [PyWithBinderL] -> e [Py.StatementL] -> PyWith e Py.StatementL
data PyWithBinderL
data PyWithBinder e l where
PyWithBinder :: e Py.ExprL -> e (Maybe PyLValueL) -> PyWithBinder e PyWithBinderL
data PyStringLitL
data PyStringLit :: Node where
PyStrings :: [String] -> PyStringLit e PyStringLitL
PyUnicodeStrings :: [String] -> PyStringLit e PyStringLitL
PyByteStrings :: [String] -> PyStringLit e PyStringLitL
data PyBlockL
data PyBlock e l where
PyBlock :: e (Maybe PyStringLitL) -> e BlockL -> PyBlock e PyBlockL
data PyClassL
data PyClass e l where
PyClass :: e P.IdentL -> e [ArgumentL] -> e PyBlockL -> PyClass e PyClassL
data PyCompL
data PyComp e l where
PyBaseComp :: e Py.OpL -> e Py.ExprL -> e Py.ExprL -> PyComp e PyCompL
PyChainComp :: e Py.OpL -> e Py.ExprL -> e PyCompL -> PyComp e PyCompL
data PyCondExpr e l where
PyCondExpr :: e Py.ExprL
-> e Py.ExprL
-> e Py.ExprL
-> PyCondExpr e Py.ExprL
data PyComprehensionExpr e l where
PyListComprehension :: e PyComprehensionL -> PyComprehensionExpr e Py.ExprL
PyDictComprehension :: e PyComprehensionL -> PyComprehensionExpr e Py.ExprL
PySetComprehension :: e PyComprehensionL -> PyComprehensionExpr e Py.ExprL
data PyComprehensionL
data PyComprehension e l where
PyComprehensionFor :: Bool -> e [Py.ExprL] -> e Py.ExprL -> e PyComprehensionL -> PyComprehension e PyComprehensionL
PyComprehensionIf :: e Py.ExprL -> e PyComprehensionL -> PyComprehension e PyComprehensionL
PyComprehensionBody :: e Py.ComprehensionExprL -> PyComprehension e PyComprehensionL