ShellCheck-0.9.0: Shell script analysis tool

Safe Haskell | Safe-Inferred
Language | Haskell98

ShellCheck.AST

# Documentation

newtype Id #

Constructors

Id Int |

#### Instances

Instances details

Generic Id # |
Instance details Defined in ShellCheck.AST Associated Types type Rep Id :: Type -> Type Methods from :: Id -> Rep Id x to :: Rep Id x -> Id
Show Id # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> Id -> ShowS show :: Id -> String showList :: [Id] -> ShowS
NFData Id # |
Instance details Defined in ShellCheck.AST Methods rnf :: Id -> ()
Eq Id # |
Instance details Defined in ShellCheck.AST Methods (==) :: Id -> Id -> Bool (/=) :: Id -> Id -> Bool
Ord Id # |
Instance details Defined in ShellCheck.AST Methods compare :: Id -> Id -> Ordering (<) :: Id -> Id -> Bool (<=) :: Id -> Id -> Bool (>) :: Id -> Id -> Bool (>=) :: Id -> Id -> Bool max :: Id -> Id -> Id min :: Id -> Id -> Id
type Rep Id # |
Instance details Defined in ShellCheck.AST type Rep Id = D1 ('MetaData "Id" "ShellCheck.AST" "ShellCheck-0.9.0-6uCWLhcMZkq1cyTXpXjNXm" 'True) (C1 ('MetaCons "Id" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

data Quoted #

Constructors

Quoted |
Unquoted |

#### Instances

Instances details

Show Quoted # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> Quoted -> ShowS show :: Quoted -> String showList :: [Quoted] -> ShowS
Eq Quoted # |
Instance details Defined in ShellCheck.AST Methods (==) :: Quoted -> Quoted -> Bool (/=) :: Quoted -> Quoted -> Bool

data Dashed #

Constructors

Dashed |
Undashed |

#### Instances

Instances details

Show Dashed # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> Dashed -> ShowS show :: Dashed -> String showList :: [Dashed] -> ShowS
Eq Dashed # |
Instance details Defined in ShellCheck.AST Methods (==) :: Dashed -> Dashed -> Bool (/=) :: Dashed -> Dashed -> Bool

data AssignmentMode #

Constructors

Assign |
Append |

#### Instances

Instances details

Show AssignmentMode # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> AssignmentMode -> ShowS show :: AssignmentMode -> String showList :: [AssignmentMode] -> ShowS
Eq AssignmentMode # |
Instance details Defined in ShellCheck.AST Methods (==) :: AssignmentMode -> AssignmentMode -> Bool (/=) :: AssignmentMode -> AssignmentMode -> Bool

newtype FunctionKeyword #

Constructors

FunctionKeyword Bool |

#### Instances

Instances details

Show FunctionKeyword # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> FunctionKeyword -> ShowS show :: FunctionKeyword -> String showList :: [FunctionKeyword] -> ShowS
Eq FunctionKeyword # |
Instance details Defined in ShellCheck.AST Methods (==) :: FunctionKeyword -> FunctionKeyword -> Bool (/=) :: FunctionKeyword -> FunctionKeyword -> Bool

newtype FunctionParentheses #

Constructors

FunctionParentheses Bool |

#### Instances

Instances details

Show FunctionParentheses # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> FunctionParentheses -> ShowS show :: FunctionParentheses -> String showList :: [FunctionParentheses] -> ShowS
Eq FunctionParentheses # |
Instance details Defined in ShellCheck.AST Methods (==) :: FunctionParentheses -> FunctionParentheses -> Bool (/=) :: FunctionParentheses -> FunctionParentheses -> Bool

data CaseType #

Constructors

CaseBreak |
CaseFallThrough |
CaseContinue |

#### Instances

Instances details

Show CaseType # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> CaseType -> ShowS show :: CaseType -> String showList :: [CaseType] -> ShowS
Eq CaseType # |
Instance details Defined in ShellCheck.AST Methods (==) :: CaseType -> CaseType -> Bool (/=) :: CaseType -> CaseType -> Bool

newtype Root #

Constructors

Root Token |

data Token #

Constructors

OuterToken Id (InnerToken Token) |

#### Instances

Instances details

Show Token # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> Token -> ShowS show :: Token -> String showList :: [Token] -> ShowS
Eq Token # |
Instance details Defined in ShellCheck.AST Methods (==) :: Token -> Token -> Bool (/=) :: Token -> Token -> Bool

data InnerToken t #

Constructors

Inner_TA_Binary String t t |
Inner_TA_Assignment String t t |
Inner_TA_Variable String [t] |
Inner_TA_Expansion [t] |
Inner_TA_Sequence [t] |
Inner_TA_Parenthesis t |
Inner_TA_Trinary t t t |
Inner_TA_Unary String t |
Inner_TC_And ConditionType String t t |
Inner_TC_Binary ConditionType String t t |
Inner_TC_Group ConditionType t |
Inner_TC_Nullary ConditionType t |
Inner_TC_Or ConditionType String t t |
Inner_TC_Unary ConditionType String t |
Inner_TC_Empty ConditionType |
Inner_T_AND_IF |
Inner_T_AndIf t t |
Inner_T_Arithmetic t |
Inner_T_Array [t] |
Inner_T_IndexedElement [t] t |
Inner_T_UnparsedIndex SourcePos String |
Inner_T_Assignment AssignmentMode String [t] t |
Inner_T_Backgrounded t |
Inner_T_Backticked [t] |
Inner_T_Bang |
Inner_T_Banged t |
Inner_T_BraceExpansion [t] |
Inner_T_BraceGroup [t] |
Inner_T_CLOBBER |
Inner_T_Case |
Inner_T_CaseExpression t [(CaseType, [t], [t])] |
Inner_T_Condition ConditionType t |
Inner_T_DGREAT |
Inner_T_DLESS |
Inner_T_DLESSDASH |
Inner_T_DSEMI |
Inner_T_Do |
Inner_T_DollarArithmetic t |
Inner_T_DollarBraced Bool t |
Inner_T_DollarBracket t |
Inner_T_DollarDoubleQuoted [t] |
Inner_T_DollarExpansion [t] |
Inner_T_DollarSingleQuoted String |
Inner_T_DollarBraceCommandExpansion [t] |
Inner_T_Done |
Inner_T_DoubleQuoted [t] |
Inner_T_EOF |
Inner_T_Elif |
Inner_T_Else |
Inner_T_Esac |
Inner_T_Extglob String [t] |
Inner_T_FdRedirect String t |
Inner_T_Fi |
Inner_T_For |
Inner_T_ForArithmetic t t t [t] |
Inner_T_ForIn String [t] [t] |
Inner_T_Function FunctionKeyword FunctionParentheses String t |
Inner_T_GREATAND |
Inner_T_Glob String |
Inner_T_Greater |
Inner_T_HereDoc Dashed Quoted String [t] |
Inner_T_HereString t |
Inner_T_If |
Inner_T_IfExpression [([t], [t])] [t] |
Inner_T_In |
Inner_T_IoFile t t |
Inner_T_IoDuplicate t String |
Inner_T_LESSAND |
Inner_T_LESSGREAT |
Inner_T_Lbrace |
Inner_T_Less |
Inner_T_Literal String |
Inner_T_Lparen |
Inner_T_NEWLINE |
Inner_T_NormalWord [t] |
Inner_T_OR_IF |
Inner_T_OrIf t t |
Inner_T_ParamSubSpecialChar String |
Inner_T_Pipeline [t] [t] |
Inner_T_ProcSub String [t] |
Inner_T_Rbrace |
Inner_T_Redirecting [t] t |
Inner_T_Rparen |
Inner_T_Script t [t] |
Inner_T_Select |
Inner_T_SelectIn String [t] [t] |
Inner_T_Semi |
Inner_T_SimpleCommand [t] [t] |
Inner_T_SingleQuoted String |
Inner_T_Subshell [t] |
Inner_T_Then |
Inner_T_Until |
Inner_T_UntilExpression [t] [t] |
Inner_T_While |
Inner_T_WhileExpression [t] [t] |
Inner_T_Annotation [Annotation] t |
Inner_T_Pipe String |
Inner_T_CoProc (Maybe String) t |
Inner_T_CoProcBody t |
Inner_T_Include t |
Inner_T_SourceCommand t t |
Inner_T_BatsTest String t |

#### Instances

Instances details

Foldable InnerToken # |

Instance details

Defined in ShellCheck.AST

Methods

fold :: Monoid m => InnerToken m -> m

foldMap :: Monoid m => (a -> m) -> InnerToken a -> m

foldMap' :: Monoid m => (a -> m) -> InnerToken a -> m

foldr :: (a -> b -> b) -> b -> InnerToken a -> b

foldr' :: (a -> b -> b) -> b -> InnerToken a -> b

foldl :: (b -> a -> b) -> b -> InnerToken a -> b

foldl' :: (b -> a -> b) -> b -> InnerToken a -> b

foldr1 :: (a -> a -> a) -> InnerToken a -> a

foldl1 :: (a -> a -> a) -> InnerToken a -> a

toList :: InnerToken a -> [a]

null :: InnerToken a -> Bool

length :: InnerToken a -> Int

elem :: Eq a => a -> InnerToken a -> Bool

maximum :: Ord a => InnerToken a -> a

minimum :: Ord a => InnerToken a -> a

sum :: Num a => InnerToken a -> a

product :: Num a => InnerToken a -> a

Traversable InnerToken # |
Instance details Defined in ShellCheck.AST Methods traverse :: Applicative f => (a -> f b) -> InnerToken a -> f (InnerToken b) sequenceA :: Applicative f => InnerToken (f a) -> f (InnerToken a) mapM :: Monad m => (a -> m b) -> InnerToken a -> m (InnerToken b) sequence :: Monad m => InnerToken (m a) -> m (InnerToken a)
Functor InnerToken # |
Instance details Defined in ShellCheck.AST Methods fmap :: (a -> b) -> InnerToken a -> InnerToken b # (<$) :: a -> InnerToken b -> InnerToken a #
Show t => Show (InnerToken t) # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> InnerToken t -> ShowS show :: InnerToken t -> String showList :: [InnerToken t] -> ShowS
Eq t => Eq (InnerToken t) # |
Instance details Defined in ShellCheck.AST Methods (==) :: InnerToken t -> InnerToken t -> Bool (/=) :: InnerToken t -> InnerToken t -> Bool

data Annotation #

Constructors

DisableComment Integer Integer |
EnableComment String |
SourceOverride String |
ShellOverride String |
SourcePath String |
ExternalSources Bool |

#### Instances

Instances details

Show Annotation # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> Annotation -> ShowS show :: Annotation -> String showList :: [Annotation] -> ShowS
Eq Annotation # |
Instance details Defined in ShellCheck.AST Methods (==) :: Annotation -> Annotation -> Bool (/=) :: Annotation -> Annotation -> Bool

data ConditionType #

Constructors

DoubleBracket |
SingleBracket |

#### Instances

Instances details

Show ConditionType # |
Instance details Defined in ShellCheck.AST Methods showsPrec :: Int -> ConditionType -> ShowS show :: ConditionType -> String showList :: [ConditionType] -> ShowS
Eq ConditionType # |
Instance details Defined in ShellCheck.AST Methods (==) :: ConditionType -> ConditionType -> Bool (/=) :: ConditionType -> ConditionType -> Bool

pattern T_AND_IF :: Id -> Token #

pattern T_Bang :: Id -> Token #

pattern T_Case :: Id -> Token #

pattern TC_Empty :: Id -> ConditionType -> Token #

pattern T_CLOBBER :: Id -> Token #

pattern T_DGREAT :: Id -> Token #

pattern T_DLESS :: Id -> Token #

pattern T_DLESSDASH :: Id -> Token #

pattern T_Do :: Id -> Token #

pattern T_DollarSingleQuoted :: Id -> String -> Token #

pattern T_Done :: Id -> Token #

pattern T_DSEMI :: Id -> Token #

pattern T_Elif :: Id -> Token #

pattern T_Else :: Id -> Token #

pattern T_EOF :: Id -> Token #

pattern T_Esac :: Id -> Token #

pattern T_Fi :: Id -> Token #

pattern T_For :: Id -> Token #

pattern T_Glob :: Id -> String -> Token #

pattern T_GREATAND :: Id -> Token #

pattern T_Greater :: Id -> Token #

pattern T_If :: Id -> Token #

pattern T_In :: Id -> Token #

pattern T_Lbrace :: Id -> Token #

pattern T_Less :: Id -> Token #

pattern T_LESSAND :: Id -> Token #

pattern T_LESSGREAT :: Id -> Token #

pattern T_Literal :: Id -> String -> Token #

pattern T_Lparen :: Id -> Token #

pattern T_NEWLINE :: Id -> Token #

pattern T_OR_IF :: Id -> Token #

pattern T_ParamSubSpecialChar :: Id -> String -> Token #

pattern T_Pipe :: Id -> String -> Token #

pattern T_Rbrace :: Id -> Token #

pattern T_Rparen :: Id -> Token #

pattern T_Select :: Id -> Token #

pattern T_Semi :: Id -> Token #

pattern T_SingleQuoted :: Id -> String -> Token #

pattern T_Then :: Id -> Token #

pattern T_UnparsedIndex :: Id -> SourcePos -> String -> Token #

pattern T_Until :: Id -> Token #

pattern T_While :: Id -> Token #

pattern TA_Assignment :: Id -> String -> Token -> Token -> Token #

pattern TA_Binary :: Id -> String -> Token -> Token -> Token #

pattern TA_Expansion :: Id -> [Token] -> Token #

pattern T_AndIf :: Id -> Token -> Token -> Token #

pattern T_Annotation :: Id -> [Annotation] -> Token -> Token #

pattern T_Arithmetic :: Id -> Token -> Token #

pattern T_Array :: Id -> [Token] -> Token #

pattern TA_Sequence :: Id -> [Token] -> Token #

pattern TA_Parentesis :: Id -> Token -> Token #

pattern T_Assignment :: Id -> AssignmentMode -> String -> [Token] -> Token -> Token #

pattern TA_Trinary :: Id -> Token -> Token -> Token -> Token #

pattern TA_Unary :: Id -> String -> Token -> Token #

pattern TA_Variable :: Id -> String -> [Token] -> Token #

pattern T_Backgrounded :: Id -> Token -> Token #

pattern T_Backticked :: Id -> [Token] -> Token #

pattern T_Banged :: Id -> Token -> Token #

pattern T_BatsTest :: Id -> String -> Token -> Token #

pattern T_BraceExpansion :: Id -> [Token] -> Token #

pattern T_BraceGroup :: Id -> [Token] -> Token #

pattern TC_And :: Id -> ConditionType -> String -> Token -> Token -> Token #

pattern T_CaseExpression :: Id -> Token -> [(CaseType, [Token], [Token])] -> Token #

pattern TC_Binary :: Id -> ConditionType -> String -> Token -> Token -> Token #

pattern TC_Group :: Id -> ConditionType -> Token -> Token #

pattern TC_Nullary :: Id -> ConditionType -> Token -> Token #

pattern T_Condition :: Id -> ConditionType -> Token -> Token #

pattern T_CoProcBody :: Id -> Token -> Token #

pattern T_CoProc :: Id -> Maybe String -> Token -> Token #

pattern TC_Or :: Id -> ConditionType -> String -> Token -> Token -> Token #

pattern TC_Unary :: Id -> ConditionType -> String -> Token -> Token #

pattern T_DollarArithmetic :: Id -> Token -> Token #

pattern T_DollarBraceCommandExpansion :: Id -> [Token] -> Token #

pattern T_DollarBraced :: Id -> Bool -> Token -> Token #

pattern T_DollarBracket :: Id -> Token -> Token #

pattern T_DollarDoubleQuoted :: Id -> [Token] -> Token #

pattern T_DollarExpansion :: Id -> [Token] -> Token #

pattern T_DoubleQuoted :: Id -> [Token] -> Token #

pattern T_Extglob :: Id -> String -> [Token] -> Token #

pattern T_FdRedirect :: Id -> String -> Token -> Token #

pattern T_ForArithmetic :: Id -> Token -> Token -> Token -> [Token] -> Token #

pattern T_ForIn :: Id -> String -> [Token] -> [Token] -> Token #

pattern T_Function :: Id -> FunctionKeyword -> FunctionParentheses -> String -> Token -> Token #

pattern T_HereDoc :: Id -> Dashed -> Quoted -> String -> [Token] -> Token #

pattern T_HereString :: Id -> Token -> Token #

pattern T_IfExpression :: Id -> [([Token], [Token])] -> [Token] -> Token #

pattern T_Include :: Id -> Token -> Token #

pattern T_IndexedElement :: Id -> [Token] -> Token -> Token #

pattern T_IoDuplicate :: Id -> Token -> String -> Token #

pattern T_IoFile :: Id -> Token -> Token -> Token #

pattern T_NormalWord :: Id -> [Token] -> Token #

pattern T_OrIf :: Id -> Token -> Token -> Token #

pattern T_Pipeline :: Id -> [Token] -> [Token] -> Token #

pattern T_ProcSub :: Id -> String -> [Token] -> Token #

pattern T_Redirecting :: Id -> [Token] -> Token -> Token #

pattern T_Script :: Id -> Token -> [Token] -> Token #

pattern T_SelectIn :: Id -> String -> [Token] -> [Token] -> Token #

pattern T_SimpleCommand :: Id -> [Token] -> [Token] -> Token #

pattern T_SourceCommand :: Id -> Token -> Token -> Token #

pattern T_Subshell :: Id -> [Token] -> Token #

pattern T_UntilExpression :: Id -> [Token] -> [Token] -> Token #

pattern T_WhileExpression :: Id -> [Token] -> [Token] -> Token #

analyze :: Monad m => (Token -> m ()) -> (Token -> m ()) -> (Token -> m Token) -> Token -> m Token #

getId :: Token -> Id #

blank :: Monad m => Token -> m () #

doAnalysis :: Monad m => (Token -> m ()) -> Token -> m Token #

doStackAnalysis :: Monad m => (Token -> m ()) -> (Token -> m ()) -> Token -> m Token #

doTransform :: (Token -> Token) -> Token -> Token #