| 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) #