Copyright | (C) CSIRO 2017-2019 |
---|---|
License | BSD3 |
Maintainer | Isaac Elliott <isaace71295@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Language.Python.Internal.Syntax.IR
Description
This module only exists as our current best solution to decoupling parts of the concrete syntax from abstract syntax. You won't need to care about its existence and hopefully it will be deleted soon.
Documentation
class AsIRError s a | s -> a where #
Minimal complete definition
Methods
_InvalidUnpacking :: Prism' s a #
Instances
AsIRError (ParseError a) a # | |
Defined in Language.Python.Parse.Error Methods _InvalidUnpacking :: Prism' (ParseError a) a # |
Constructors
InvalidUnpacking a | Unpacking ( |
fromIRError :: AsIRError s a => IRError a -> s #
data SmallStatement a #
Constructors
MkSmallStatement (SimpleStatement a) [(Semicolon a, SimpleStatement a)] (Maybe (Semicolon a)) (Maybe (Comment a)) (Maybe Newline) |
Instances
Constructors
SmallStatement (Indents a) (SmallStatement a) | |
CompoundStatement (CompoundStatement a) |
Instances
Functor Statement # | |
Foldable Statement # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Statement m -> m # foldMap :: Monoid m => (a -> m) -> Statement a -> m # foldr :: (a -> b -> b) -> b -> Statement a -> b # foldr' :: (a -> b -> b) -> b -> Statement a -> b # foldl :: (b -> a -> b) -> b -> Statement a -> b # foldl' :: (b -> a -> b) -> b -> Statement a -> b # foldr1 :: (a -> a -> a) -> Statement a -> a # foldl1 :: (a -> a -> a) -> Statement a -> a # toList :: Statement a -> [a] # length :: Statement a -> Int # elem :: Eq a => a -> Statement a -> Bool # maximum :: Ord a => Statement a -> a # minimum :: Ord a => Statement a -> a # | |
Traversable Statement # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (Statement a) # | |
Show a => Show (Statement a) # | |
data CompoundStatement a #
Constructors
Instances
data SimpleStatement a #
Constructors
Return a [Whitespace] (Maybe (Expr a)) | |
Expr a (Expr a) | |
Assign a (Expr a) (NonEmpty (Equals, Expr a)) | |
AugAssign a (Expr a) (AugAssign a) (Expr a) | |
Pass a [Whitespace] | |
Break a [Whitespace] | |
Continue a [Whitespace] | |
Global a (NonEmpty Whitespace) (CommaSep1 (Ident '[] a)) | |
Nonlocal a (NonEmpty Whitespace) (CommaSep1 (Ident '[] a)) | |
Del a [Whitespace] (CommaSep1' (Expr a)) | |
Import a (NonEmpty Whitespace) (CommaSep1 (ImportAs ModuleName '[] a)) | |
From a [Whitespace] (RelativeModuleName '[] a) [Whitespace] (ImportTargets '[] a) | |
Raise a [Whitespace] (Maybe (Expr a, Maybe ([Whitespace], Expr a))) | |
Assert a [Whitespace] (Expr a) (Maybe (Comma, Expr a)) |
Instances
Constructors
PositionalParam | |
Fields
| |
KeywordParam | |
Fields
| |
StarParam | |
Fields
| |
UnnamedStarParam | |
Fields | |
DoubleStarParam | |
Fields
|
Instances
Functor Param # | |
Foldable Param # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Param m -> m # foldMap :: Monoid m => (a -> m) -> Param a -> m # foldr :: (a -> b -> b) -> b -> Param a -> b # foldr' :: (a -> b -> b) -> b -> Param a -> b # foldl :: (b -> a -> b) -> b -> Param a -> b # foldl' :: (b -> a -> b) -> b -> Param a -> b # foldr1 :: (a -> a -> a) -> Param a -> a # foldl1 :: (a -> a -> a) -> Param a -> a # elem :: Eq a => a -> Param a -> Bool # maximum :: Ord a => Param a -> a # minimum :: Ord a => Param a -> a # | |
Traversable Param # | |
Eq a => Eq (Param a) # | |
Show a => Show (Param a) # | |
Constructors
CompIf a [Whitespace] (Expr a) | 'if' any_spaces expr |
Instances
Functor CompIf # | |
Foldable CompIf # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => CompIf m -> m # foldMap :: Monoid m => (a -> m) -> CompIf a -> m # foldr :: (a -> b -> b) -> b -> CompIf a -> b # foldr' :: (a -> b -> b) -> b -> CompIf a -> b # foldl :: (b -> a -> b) -> b -> CompIf a -> b # foldl' :: (b -> a -> b) -> b -> CompIf a -> b # foldr1 :: (a -> a -> a) -> CompIf a -> a # foldl1 :: (a -> a -> a) -> CompIf a -> a # elem :: Eq a => a -> CompIf a -> Bool # maximum :: Ord a => CompIf a -> a # minimum :: Ord a => CompIf a -> a # | |
Traversable CompIf # | |
Eq a => Eq (CompIf a) # | |
Show a => Show (CompIf a) # | |
Constructors
CompFor a [Whitespace] (Expr a) [Whitespace] (Expr a) |
|
Instances
Functor CompFor # | |
Foldable CompFor # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => CompFor m -> m # foldMap :: Monoid m => (a -> m) -> CompFor a -> m # foldr :: (a -> b -> b) -> b -> CompFor a -> b # foldr' :: (a -> b -> b) -> b -> CompFor a -> b # foldl :: (b -> a -> b) -> b -> CompFor a -> b # foldl' :: (b -> a -> b) -> b -> CompFor a -> b # foldr1 :: (a -> a -> a) -> CompFor a -> a # foldl1 :: (a -> a -> a) -> CompFor a -> a # elem :: Eq a => a -> CompFor a -> Bool # maximum :: Ord a => CompFor a -> a # minimum :: Ord a => CompFor a -> a # | |
Traversable CompFor # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (CompFor a) # | |
Show a => Show (CompFor a) # | |
data Comprehension e a #
Constructors
Comprehension a (e a) (CompFor a) [Either (CompFor a) (CompIf a)] |
Instances
Constructors
SubscriptExpr (Expr a) | |
SubscriptSlice (Maybe (Expr a)) Colon (Maybe (Expr a)) (Maybe (Colon, Maybe (Expr a))) |
Instances
Functor Subscript # | |
Foldable Subscript # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Subscript m -> m # foldMap :: Monoid m => (a -> m) -> Subscript a -> m # foldr :: (a -> b -> b) -> b -> Subscript a -> b # foldr' :: (a -> b -> b) -> b -> Subscript a -> b # foldl :: (b -> a -> b) -> b -> Subscript a -> b # foldl' :: (b -> a -> b) -> b -> Subscript a -> b # foldr1 :: (a -> a -> a) -> Subscript a -> a # foldl1 :: (a -> a -> a) -> Subscript a -> a # toList :: Subscript a -> [a] # length :: Subscript a -> Int # elem :: Eq a => a -> Subscript a -> Bool # maximum :: Ord a => Subscript a -> a # minimum :: Ord a => Subscript a -> a # | |
Traversable Subscript # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (Subscript a) # | |
Show a => Show (Subscript a) # | |
Constructors
DictItem | |
Fields
| |
DictUnpack | |
Fields |
Instances
Functor DictItem # | |
Foldable DictItem # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => DictItem m -> m # foldMap :: Monoid m => (a -> m) -> DictItem a -> m # foldr :: (a -> b -> b) -> b -> DictItem a -> b # foldr' :: (a -> b -> b) -> b -> DictItem a -> b # foldl :: (b -> a -> b) -> b -> DictItem a -> b # foldl' :: (b -> a -> b) -> b -> DictItem a -> b # foldr1 :: (a -> a -> a) -> DictItem a -> a # foldl1 :: (a -> a -> a) -> DictItem a -> a # elem :: Eq a => a -> DictItem a -> Bool # maximum :: Ord a => DictItem a -> a # minimum :: Ord a => DictItem a -> a # | |
Traversable DictItem # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (DictItem a) # | |
Show a => Show (DictItem a) # | |
Constructors
PositionalArg | |
KeywordArg | |
Fields
| |
StarArg | |
Fields
| |
DoubleStarArg | |
Fields
|
Instances
Functor Arg # | |
Foldable Arg # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Arg m -> m # foldMap :: Monoid m => (a -> m) -> Arg a -> m # foldr :: (a -> b -> b) -> b -> Arg a -> b # foldr' :: (a -> b -> b) -> b -> Arg a -> b # foldl :: (b -> a -> b) -> b -> Arg a -> b # foldl' :: (b -> a -> b) -> b -> Arg a -> b # foldr1 :: (a -> a -> a) -> Arg a -> a # foldl1 :: (a -> a -> a) -> Arg a -> a # elem :: Eq a => a -> Arg a -> Bool # maximum :: Ord a => Arg a -> a # | |
Traversable Arg # | |
Eq a => Eq (Arg a) # | |
Show a => Show (Arg a) # | |
Constructors
Instances
Functor Expr # | |
Foldable Expr # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Expr m -> m # foldMap :: Monoid m => (a -> m) -> Expr a -> m # foldr :: (a -> b -> b) -> b -> Expr a -> b # foldr' :: (a -> b -> b) -> b -> Expr a -> b # foldl :: (b -> a -> b) -> b -> Expr a -> b # foldl' :: (b -> a -> b) -> b -> Expr a -> b # foldr1 :: (a -> a -> a) -> Expr a -> a # foldl1 :: (a -> a -> a) -> Expr a -> a # elem :: Eq a => a -> Expr a -> Bool # maximum :: Ord a => Expr a -> a # | |
Traversable Expr # | |
Eq a => Eq (Expr a) # | |
Show a => Show (Expr a) # | |
Constructors
SuiteOne a Colon (SmallStatement a) | |
SuiteMany a Colon (Maybe (Comment a)) Newline (Block a) |
Instances
Functor Suite # | |
Foldable Suite # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Suite m -> m # foldMap :: Monoid m => (a -> m) -> Suite a -> m # foldr :: (a -> b -> b) -> b -> Suite a -> b # foldr' :: (a -> b -> b) -> b -> Suite a -> b # foldl :: (b -> a -> b) -> b -> Suite a -> b # foldl' :: (b -> a -> b) -> b -> Suite a -> b # foldr1 :: (a -> a -> a) -> Suite a -> a # foldl1 :: (a -> a -> a) -> Suite a -> a # elem :: Eq a => a -> Suite a -> Bool # maximum :: Ord a => Suite a -> a # minimum :: Ord a => Suite a -> a # | |
Traversable Suite # | |
Eq a => Eq (Suite a) # | |
Show a => Show (Suite a) # | |
Constructors
Block | |
Fields
|
Instances
Functor Block # | |
Foldable Block # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Block m -> m # foldMap :: Monoid m => (a -> m) -> Block a -> m # foldr :: (a -> b -> b) -> b -> Block a -> b # foldr' :: (a -> b -> b) -> b -> Block a -> b # foldl :: (b -> a -> b) -> b -> Block a -> b # foldl' :: (b -> a -> b) -> b -> Block a -> b # foldr1 :: (a -> a -> a) -> Block a -> a # foldl1 :: (a -> a -> a) -> Block a -> a # elem :: Eq a => a -> Block a -> Bool # maximum :: Ord a => Block a -> a # minimum :: Ord a => Block a -> a # | |
Traversable Block # | |
Eq a => Eq (Block a) # | |
Show a => Show (Block a) # | |
Constructors
WithItem | |
Fields
|
Instances
Functor WithItem # | |
Foldable WithItem # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => WithItem m -> m # foldMap :: Monoid m => (a -> m) -> WithItem a -> m # foldr :: (a -> b -> b) -> b -> WithItem a -> b # foldr' :: (a -> b -> b) -> b -> WithItem a -> b # foldl :: (b -> a -> b) -> b -> WithItem a -> b # foldl' :: (b -> a -> b) -> b -> WithItem a -> b # foldr1 :: (a -> a -> a) -> WithItem a -> a # foldl1 :: (a -> a -> a) -> WithItem a -> a # elem :: Eq a => a -> WithItem a -> Bool # maximum :: Ord a => WithItem a -> a # minimum :: Ord a => WithItem a -> a # | |
Traversable WithItem # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (WithItem a) # | |
Show a => Show (WithItem a) # | |
Constructors
Decorator | |
Fields
|
Instances
Functor Decorator # | |
Foldable Decorator # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Decorator m -> m # foldMap :: Monoid m => (a -> m) -> Decorator a -> m # foldr :: (a -> b -> b) -> b -> Decorator a -> b # foldr' :: (a -> b -> b) -> b -> Decorator a -> b # foldl :: (b -> a -> b) -> b -> Decorator a -> b # foldl' :: (b -> a -> b) -> b -> Decorator a -> b # foldr1 :: (a -> a -> a) -> Decorator a -> a # foldl1 :: (a -> a -> a) -> Decorator a -> a # toList :: Decorator a -> [a] # length :: Decorator a -> Int # elem :: Eq a => a -> Decorator a -> Bool # maximum :: Ord a => Decorator a -> a # minimum :: Ord a => Decorator a -> a # | |
Traversable Decorator # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (Decorator a) # | |
Show a => Show (Decorator a) # | |
Constructors
ExceptAs | |
Fields
|
Instances
Functor ExceptAs # | |
Foldable ExceptAs # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => ExceptAs m -> m # foldMap :: Monoid m => (a -> m) -> ExceptAs a -> m # foldr :: (a -> b -> b) -> b -> ExceptAs a -> b # foldr' :: (a -> b -> b) -> b -> ExceptAs a -> b # foldl :: (b -> a -> b) -> b -> ExceptAs a -> b # foldl' :: (b -> a -> b) -> b -> ExceptAs a -> b # foldr1 :: (a -> a -> a) -> ExceptAs a -> a # foldl1 :: (a -> a -> a) -> ExceptAs a -> a # elem :: Eq a => a -> ExceptAs a -> Bool # maximum :: Ord a => ExceptAs a -> a # minimum :: Ord a => ExceptAs a -> a # | |
Traversable ExceptAs # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (ExceptAs a) # | |
Show a => Show (ExceptAs a) # | |
Constructors
ModuleEmpty | |
ModuleBlankFinal (Blank a) | |
ModuleBlank (Blank a) Newline (Module a) | |
ModuleStatement (Statement a) (Module a) |
Instances
Functor Module # | |
Foldable Module # | |
Defined in Language.Python.Internal.Syntax.IR Methods fold :: Monoid m => Module m -> m # foldMap :: Monoid m => (a -> m) -> Module a -> m # foldr :: (a -> b -> b) -> b -> Module a -> b # foldr' :: (a -> b -> b) -> b -> Module a -> b # foldl :: (b -> a -> b) -> b -> Module a -> b # foldl' :: (b -> a -> b) -> b -> Module a -> b # foldr1 :: (a -> a -> a) -> Module a -> a # foldl1 :: (a -> a -> a) -> Module a -> a # elem :: Eq a => a -> Module a -> Bool # maximum :: Ord a => Module a -> a # minimum :: Ord a => Module a -> a # | |
Traversable Module # | |
Eq a => Eq (Module a) # | |
Show a => Show (Module a) # | |
data FromIRContext #
Constructors
FromIRContext | |
Fields |
fromIR_expr :: AsIRError e a => Expr a -> Validation (NonEmpty e) (Expr '[] a) #
fromIR_suite :: AsIRError e a => Suite a -> Validation (NonEmpty e) (Suite '[] a) #
fromIR_param :: AsIRError e a => Param a -> Validation (NonEmpty e) (Param '[] a) #
fromIR_arg :: AsIRError e a => Arg a -> Validation (NonEmpty e) (Arg '[] a) #
fromIR_decorator :: AsIRError e a => Decorator a -> Validation (NonEmpty e) (Decorator '[] a) #
fromIR_exceptAs :: AsIRError e a => ExceptAs a -> Validation (NonEmpty e) (ExceptAs '[] a) #
fromIR_withItem :: AsIRError e a => WithItem a -> Validation (NonEmpty e) (WithItem '[] a) #
fromIR_comprehension :: AsIRError e a => (ex a -> Validation (NonEmpty e) (ex' '[] a)) -> Comprehension ex a -> Validation (NonEmpty e) (Comprehension ex' '[] a) #
fromIR_dictItem :: AsIRError e a => DictItem a -> Validation (NonEmpty e) (DictItem '[] a) #
fromIR_subscript :: AsIRError e a => Subscript a -> Validation (NonEmpty e) (Subscript '[] a) #
fromIR_block :: AsIRError e a => Block a -> Validation (NonEmpty e) (Block '[] a) #
fromIR_compFor :: AsIRError e a => CompFor a -> Validation (NonEmpty e) (CompFor '[] a) #
fromIR_compIf :: AsIRError e a => CompIf a -> Validation (NonEmpty e) (CompIf '[] a) #
fromIR_smallStatement :: AsIRError e a => SmallStatement a -> Validation (NonEmpty e) (SmallStatement '[] a) #
fromIR_statement :: AsIRError e a => Statement a -> Validation (NonEmpty e) (Statement '[] a) #
fromIR_SimpleStatement :: AsIRError e a => SimpleStatement a -> Validation (NonEmpty e) (SimpleStatement '[] a) #
fromIR_compoundStatement :: AsIRError e a => CompoundStatement a -> Validation (NonEmpty e) (CompoundStatement '[] a) #
fromIR_listItem :: AsIRError e a => Expr a -> Validation (NonEmpty e) (ListItem '[] a) #
fromIR_tupleItem :: AsIRError e a => Expr a -> Validation (NonEmpty e) (TupleItem '[] a) #
fromIR_setItem :: AsIRError e a => Expr a -> Validation (NonEmpty e) (SetItem '[] a) #