JustBash.Parser.WordParts.Expansion (JustBash v0.4.0)

View Source

Parses shell expansions: $VAR, ${VAR}, $((expr)), $(cmd), cmd.

Handles all forms of parameter expansion including:

  • Simple: $VAR, ${VAR}
  • Default values: ${VAR:-default}, ${VAR:=default}
  • Substring: ${VAR:offset:length}
  • Pattern removal: ${VAR#pattern}, ${VAR%pattern}
  • Pattern replacement: ${VAR/pattern/replacement}
  • Case modification: ${VAR^^}, ${VAR,,}
  • Length: ${#VAR}
  • Indirection: ${!VAR}

Summary

Functions

Parse an expansion starting at position start (pointing to $). Returns {ast_node, end_index}.

Parse a backtick command substitution starting at start.

Functions

parse(value, start)

Parse an expansion starting at position start (pointing to $). Returns {ast_node, end_index}.

parse_backtick(value, start)

@spec parse_backtick(String.t(), non_neg_integer()) ::
  {JustBash.AST.word_part(), non_neg_integer()}

Parse a backtick command substitution starting at start.