SHELL_SCRIPT
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiErrorElement:<parameter expansion> expected, got '}'
          <empty list>
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiElement(word)('A')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiElement(param_separator)('@')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiElement(param_separator)('?')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiElement(word)('B')
        PsiElement(param_separator)(':-')
        PsiElement(word)('B')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiElement(word)('$')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SHELL_PARAMETER_EXPANSION
        PsiElement({)('{')
        PsiElement(word)('$')
        PsiElement(param_separator)(':-')
        PsiElement(word)('x')
        PsiElement(})('}')
  PsiWhiteSpace(' ')
  PsiComment(Comment)('#means the pid with substitution operator')