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 Source #
Methods
_InvalidUnpacking :: Prism' s a Source #
Instances
AsIRError (ParseError a) a Source # | |
Defined in Language.Python.Parse.Error Methods _InvalidUnpacking :: Prism' (ParseError a) a Source # |
Constructors
InvalidUnpacking a | Unpacking ( |
fromIRError :: AsIRError s a => IRError a -> s Source #
data SmallStatement a Source #
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 Source # | |
Foldable Statement Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (Statement a) Source # | |
Show a => Show (Statement a) Source # | |
data CompoundStatement a Source #
Constructors
Instances
data SimpleStatement a Source #
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 Source # | |
Foldable Param Source # | |
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 Source # | |
Eq a => Eq (Param a) Source # | |
Show a => Show (Param a) Source # | |
Constructors
CompIf a [Whitespace] (Expr a) | 'if' any_spaces expr |
Instances
Functor CompIf Source # | |
Foldable CompIf Source # | |
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 Source # | |
Eq a => Eq (CompIf a) Source # | |
Show a => Show (CompIf a) Source # | |
Constructors
CompFor a [Whitespace] (Expr a) [Whitespace] (Expr a) |
|
Instances
Functor CompFor Source # | |
Foldable CompFor Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (CompFor a) Source # | |
Show a => Show (CompFor a) Source # | |
data Comprehension e a Source #
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 Source # | |
Foldable Subscript Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (Subscript a) Source # | |
Show a => Show (Subscript a) Source # | |
Constructors
DictItem | |
Fields
| |
DictUnpack | |
Fields |
Instances
Functor DictItem Source # | |
Foldable DictItem Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (DictItem a) Source # | |
Show a => Show (DictItem a) Source # | |
Constructors
PositionalArg | |
KeywordArg | |
Fields
| |
StarArg | |
Fields
| |
DoubleStarArg | |
Fields
|
Instances
Functor Arg Source # | |
Foldable Arg Source # | |
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 Source # | |
Eq a => Eq (Arg a) Source # | |
Show a => Show (Arg a) Source # | |
Constructors
Instances
Functor Expr Source # | |
Foldable Expr Source # | |
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 Source # | |
Eq a => Eq (Expr a) Source # | |
Show a => Show (Expr a) Source # | |
Constructors
SuiteOne a Colon (SmallStatement a) | |
SuiteMany a Colon (Maybe (Comment a)) Newline (Block a) |
Instances
Functor Suite Source # | |
Foldable Suite Source # | |
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 Source # | |
Eq a => Eq (Suite a) Source # | |
Show a => Show (Suite a) Source # | |
Constructors
Block | |
Fields
|
Instances
Functor Block Source # | |
Foldable Block Source # | |
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 Source # | |
Eq a => Eq (Block a) Source # | |
Show a => Show (Block a) Source # | |
Constructors
WithItem | |
Fields
|
Instances
Functor WithItem Source # | |
Foldable WithItem Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (WithItem a) Source # | |
Show a => Show (WithItem a) Source # | |
Constructors
Decorator | |
Fields
|
Instances
Functor Decorator Source # | |
Foldable Decorator Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (Decorator a) Source # | |
Show a => Show (Decorator a) Source # | |
Constructors
ExceptAs | |
Fields
|
Instances
Functor ExceptAs Source # | |
Foldable ExceptAs Source # | |
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 Source # | |
Defined in Language.Python.Internal.Syntax.IR | |
Eq a => Eq (ExceptAs a) Source # | |
Show a => Show (ExceptAs a) Source # | |
Constructors
ModuleEmpty | |
ModuleBlankFinal (Blank a) | |
ModuleBlank (Blank a) Newline (Module a) | |
ModuleStatement (Statement a) (Module a) |
Instances
Functor Module Source # | |
Foldable Module Source # | |
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 Source # | |
Eq a => Eq (Module a) Source # | |
Show a => Show (Module a) Source # | |
data FromIRContext Source #
Constructors
FromIRContext | |
Fields |
fromIR_expr :: AsIRError e a => Expr a -> Validation (NonEmpty e) (Expr '[] a) Source #
fromIR_suite :: AsIRError e a => Suite a -> Validation (NonEmpty e) (Suite '[] a) Source #
fromIR_param :: AsIRError e a => Param a -> Validation (NonEmpty e) (Param '[] a) Source #
fromIR_arg :: AsIRError e a => Arg a -> Validation (NonEmpty e) (Arg '[] a) Source #
fromIR_decorator :: AsIRError e a => Decorator a -> Validation (NonEmpty e) (Decorator '[] a) Source #
fromIR_exceptAs :: AsIRError e a => ExceptAs a -> Validation (NonEmpty e) (ExceptAs '[] a) Source #
fromIR_withItem :: AsIRError e a => WithItem a -> Validation (NonEmpty e) (WithItem '[] a) Source #
fromIR_comprehension :: AsIRError e a => (ex a -> Validation (NonEmpty e) (ex' '[] a)) -> Comprehension ex a -> Validation (NonEmpty e) (Comprehension ex' '[] a) Source #
fromIR_dictItem :: AsIRError e a => DictItem a -> Validation (NonEmpty e) (DictItem '[] a) Source #
fromIR_subscript :: AsIRError e a => Subscript a -> Validation (NonEmpty e) (Subscript '[] a) Source #
fromIR_block :: AsIRError e a => Block a -> Validation (NonEmpty e) (Block '[] a) Source #
fromIR_compFor :: AsIRError e a => CompFor a -> Validation (NonEmpty e) (CompFor '[] a) Source #
fromIR_compIf :: AsIRError e a => CompIf a -> Validation (NonEmpty e) (CompIf '[] a) Source #
fromIR_smallStatement :: AsIRError e a => SmallStatement a -> Validation (NonEmpty e) (SmallStatement '[] a) Source #
fromIR_statement :: AsIRError e a => Statement a -> Validation (NonEmpty e) (Statement '[] a) Source #
fromIR_SimpleStatement :: AsIRError e a => SimpleStatement a -> Validation (NonEmpty e) (SimpleStatement '[] a) Source #
fromIR_compoundStatement :: AsIRError e a => CompoundStatement a -> Validation (NonEmpty e) (CompoundStatement '[] a) Source #
fromIR_listItem :: AsIRError e a => Expr a -> Validation (NonEmpty e) (ListItem '[] a) Source #
fromIR_tupleItem :: AsIRError e a => Expr a -> Validation (NonEmpty e) (TupleItem '[] a) Source #
fromIR_setItem :: AsIRError e a => Expr a -> Validation (NonEmpty e) (SetItem '[] a) Source #