Module ast

Source
Expand description

Defines abstract representations of the shell source.

Modules§

builder
Defines an interfaces to receive parse data and construct ASTs.

Structs§

AndOrList
A nonempty list of AndOr commands, e.g. foo && bar || baz.
AtomicTopLevelCommand
A top-level representation of a shell command. Uses Arc wrappers for function declarations.
AtomicTopLevelWord
A top-level representation of a shell word. Uses Arc wrappers for function declarations.
CompoundCommand
A class of commands where redirection is applied to a command group.
GuardBodyPair
A grouping of guard and body commands.
PatternBodyPair
A grouping of patterns and body commands.
SimpleCommand
The simplest possible command: an executable with arguments, environment variable assignments, and redirections.
TopLevelCommand
A top-level representation of a shell command. Uses Rc wrappers for function declarations.
TopLevelWord
A top-level representation of a shell word. Uses Rc wrappers for function declarations.

Enums§

AndOr
A command which conditionally runs based on the exit status of the previous command.
Arithmetic
Represents an expression within an arithmetic subsitution.
Command
Represents any valid shell command.
ComplexWord
Represents whitespace delimited text.
CompoundCommandKind
A specific kind of a CompoundCommand.
ListableCommand
Commands that can be used within an and/or list.
Parameter
Represents reading a parameter (or variable) value, e.g. $foo.
ParameterSubstitution
A parameter substitution, e.g. ${param-word}.
PipeableCommand
Commands that can be used within a pipeline.
Redirect
Represents redirecting a command’s file descriptors.
RedirectOrCmdWord
Represents a parsed redirect or a defined command or command argument.
RedirectOrEnvVar
Represents a parsed redirect or a defined environment variable at the start of a command.
SimpleWord
Represents the smallest fragment of any text.
Word
Represents whitespace delimited single, double, or non quoted text.

Type Aliases§

AtomicCommandList
A type alias over an and/or list of conventional shell commands.
AtomicShellPipeableCommand
A type alias for the default hiearchy to represent pipeable commands, using Arc wrappers around function declarations.
CommandList
A type alias over an and/or list of conventional shell commands.
DefaultAndOrList
Type alias for the default AndOrList representation.
DefaultArithmetic
Type alias for the default Arithmetic representation.
DefaultCommand
Type alias for the default Command representation.
DefaultComplexWord
Type alias for the default ComplexWord representation.
DefaultCompoundCommand
Type alias for the default CompoundCommandKind representation.
DefaultCompoundCommandKind
Type alias for the default CompoundCommandKind representation.
DefaultListableCommand
Type alias for the default ListableCommand representation.
DefaultParameter
Type alias for the default Parameter representation.
DefaultParameterSubstitution
Type alias for the default ParameterSubstitution representation.
DefaultPipeableCommand
Type alias for the default PipeableCommand representation.
DefaultRedirect
Type alias for the default Redirect representation.
DefaultSimpleCommand
Type alias for the default SimpleCommand representation.
DefaultSimpleWord
Type alias for the default SimpleWord representation.
DefaultWord
Type alias for the default Word representation.
ShellCompoundCommand
A type alias for the default hiearchy for representing compound shell commands.
ShellPipeableCommand
A type alias for the default hiearchy to represent pipeable commands, using Rc wrappers around function declarations.
ShellWord
A type alias for the default hiearchy for representing shell words.