JustBash.AST (JustBash v0.3.0)
View SourceAbstract Syntax Tree (AST) Types for Bash
This module defines the complete AST structure for bash scripts. The design follows the actual bash grammar while being Elixir-idiomatic.
Architecture: Input -> Lexer -> Parser -> AST -> Interpreter -> Output
Summary
Types
@type arith_expr() :: JustBash.AST.ArithNumber.t() | JustBash.AST.ArithVariable.t() | JustBash.AST.ArithBinary.t() | JustBash.AST.ArithUnary.t() | JustBash.AST.ArithTernary.t() | JustBash.AST.ArithAssignment.t() | JustBash.AST.ArithGroup.t() | JustBash.AST.ArithArrayElement.t()
@type command() :: JustBash.AST.SimpleCommand.t() | compound_command() | JustBash.AST.FunctionDef.t()
@type compound_command() :: JustBash.AST.If.t() | JustBash.AST.For.t() | JustBash.AST.CStyleFor.t() | JustBash.AST.While.t() | JustBash.AST.Until.t() | JustBash.AST.Case.t() | JustBash.AST.Subshell.t() | JustBash.AST.Group.t() | JustBash.AST.ArithmeticCommand.t() | JustBash.AST.ConditionalCommand.t()
@type conditional_expression() :: JustBash.AST.CondBinary.t() | JustBash.AST.CondUnary.t() | JustBash.AST.CondNot.t() | JustBash.AST.CondAnd.t() | JustBash.AST.CondOr.t() | JustBash.AST.CondGroup.t() | JustBash.AST.CondWord.t()
@type parameter_operation() :: JustBash.AST.DefaultValue.t() | JustBash.AST.AssignDefault.t() | JustBash.AST.ErrorIfUnset.t() | JustBash.AST.UseAlternative.t() | JustBash.AST.Length.t() | JustBash.AST.Substring.t() | JustBash.AST.PatternRemoval.t() | JustBash.AST.PatternReplacement.t() | JustBash.AST.CaseModification.t() | JustBash.AST.Indirection.t()
@type word_part() :: JustBash.AST.Literal.t() | JustBash.AST.SingleQuoted.t() | JustBash.AST.DoubleQuoted.t() | JustBash.AST.Escaped.t() | JustBash.AST.ParameterExpansion.t() | JustBash.AST.CommandSubstitution.t() | JustBash.AST.ArithmeticExpansion.t() | JustBash.AST.ProcessSubstitution.t() | JustBash.AST.BraceExpansion.t() | JustBash.AST.TildeExpansion.t() | JustBash.AST.Glob.t()