SHELL_SCRIPT
  PsiComment(shebang)('#!/bin/bash')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# Simple line count example, using bash')
  PsiElement(\n)('\n')
  PsiComment(Comment)('#')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# Bash tutorial: http://linuxconfig.org/Bash_scripting_Tutorial#8-2-read-file-into-bash-array')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# My scripting link: http://www.macs.hw.ac.uk/~hwloidl/docs/index.html#scripting')
  PsiElement(\n)('\n')
  PsiComment(Comment)('#')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# Usage: ./line_count.sh file')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# -----------------------------------------------------------------------------')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Hello      World')
        PsiElement(CLOSE_QUOTE)('"')
  PsiWhiteSpace('       ')
  PsiComment(Comment)('# This is a comment, too!')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Hello World')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Hello * World')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('Hello')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('*')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('World')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('Hello')
      PsiWhiteSpace('      ')
      LITERAL
        PsiElement(word)('World')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Hello')
        PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('World')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('Hello')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('     ')
        PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('World')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('file')
      PsiElement(=)('=')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('foo')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Message')
        PsiElement(CLOSE_QUOTE)('"')
    PsiWhiteSpace(' ')
    PsiElement(|)('|')
    PsiWhiteSpace(' ')
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('tail')
      PsiWhiteSpace(' ')
      NUMBER
        PsiElement(int)('24')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Message')
        PsiElement(CLOSE_QUOTE)('"')
    PsiWhiteSpace(' ')
    PsiElement(|)('|')
    PsiWhiteSpace(' ')
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('tail')
      PsiWhiteSpace(' ')
      NUMBER
        PsiElement(int)('25')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Message')
        PsiElement(CLOSE_QUOTE)('"')
    PsiWhiteSpace(' ')
    PsiElement(|)('|')
    PsiWhiteSpace(' ')
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('tail')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-n')
      PsiWhiteSpace(' ')
      NUMBER
        PsiElement(int)('25')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$Message')
    PsiWhiteSpace(' ')
    PsiElement(|)('|')
    PsiWhiteSpace(' ')
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('mail')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-s')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('disk report ')
        COMMAND_SUBSTITUTION_COMMAND
          PsiElement(OPEN_BACKQUOTE)('`')
          COMPOUND_LIST
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('date')
          PsiElement(CLOSE_BACKQUOTE)('`')
        PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('anny')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FUNCTION_DEFINITION
      PsiElement(function)('function')
      PsiWhiteSpace(' ')
      PsiElement(word)('installJDK')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement({)('{')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('local')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              ASSIGNMENT_COMMAND
                LITERAL
                  PsiElement(word)('FILE')
                PsiElement(=)('=')
                VARIABLE
                  PsiElement(var)('$1')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('local')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              ASSIGNMENT_COMMAND
                LITERAL
                  PsiElement(word)('DIR')
                PsiElement(=)('=')
                VARIABLE
                  PsiElement(var)('$2')
          PsiElement(\n)('\n')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('mkdir')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('-p')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$DIR')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('tar')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('-xzf')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$FILE')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              ASSIGNMENT_COMMAND
                LITERAL
                  PsiElement(word)('--strip-components')
                PsiElement(=)('=')
                NUMBER
                  PsiElement(int)('1')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('-C')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$DIR')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('rm')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$FILE')
          PsiElement(\n)('\n')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('name')
      PsiElement(=)('=')
      STRING
        PsiElement(RAW_STRING)(''name'')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      ASSIGNMENT_COMMAND
        LITERAL
          PsiElement(word)('dir')
        PsiElement(=)('=')
        VARIABLE
          PsiElement(var)('$name')
        LITERAL
          PsiElement(word)('.git')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        PsiElement($)('$')
        ARITHMETIC_EXPANSION
          PsiElement(()('(')
          PsiElement(()('(')
          PsiWhiteSpace(' ')
          ADD_EXPRESSION
            LITERAL_EXPRESSION
              NUMBER
                PsiElement(int)('1')
            PsiElement(+)('+')
            LITERAL_EXPRESSION
              NUMBER
                PsiElement(int)('2')
          PsiWhiteSpace(' ')
          PsiElement())(')')
          PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('dir3')
      PsiElement(=)('=')
      VARIABLE
        PsiElement(var)('$name')
      LITERAL
        PsiElement(word)('.git')
      PsiElement($)('$')
      ARITHMETIC_EXPANSION
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ADD_EXPRESSION
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
          PsiElement(+)('+')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('2')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('cd')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('dir3')
      PsiElement(=)('=')
      VARIABLE
        PsiElement(var)('$name')
      LITERAL
        PsiElement(word)('.git')
      PsiElement($)('$')
      ARITHMETIC_EXPANSION
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ADD_EXPRESSION
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
          PsiElement(-)('-')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('2')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$dir')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$dir3')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Hello ')
        PsiElement(CLOSE_QUOTE)('"')
      LITERAL
        PsiElement(word)('*')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)(' World')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        COMMAND_SUBSTITUTION_COMMAND
          PsiElement(OPEN_BACKQUOTE)('`')
          COMPOUND_LIST
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('hello')
          PsiElement(CLOSE_BACKQUOTE)('`')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('world')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(RAW_STRING)(''hello'')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('world')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# Link filedescriptor 10 with stdin')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('exec')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        REDIRECTION
          NUMBER
            PsiElement(int)('10')
          PsiElement(<&)('<&')
          NUMBER
            PsiElement(int)('0')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# stdin replaced with a file supplied as a first argument')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('exec')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        REDIRECTION
          PsiElement(<)('<')
          PsiWhiteSpace(' ')
          VARIABLE
            PsiElement(var)('$1')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# remember the name of the input file')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('in')
      PsiElement(=)('=')
      VARIABLE
        PsiElement(var)('$1')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('exec')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('/usr/bin/sftp')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-C')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$account')
      LITERAL
        PsiElement(word)('@')
      VARIABLE
        PsiElement(var)('$host')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    EVAL_COMMAND
      PsiElement(eval)('eval')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$1')
      PsiElement(EVAL_CONTENT)('=')
      VARIABLE
        PsiElement(var)('$answer')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      SUBSHELL_COMMAND
        PsiElement(()('(')
        COMPOUND_LIST
          PIPELINE_COMMAND_LIST
            SIMPLE_COMMAND
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('find')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('.')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-type')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('f')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-size')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('+0c')
              PsiWhiteSpace(' ')
              SIMPLE_COMMAND_ELEMENT
                PsiElement(!)('!')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-name')
              PsiWhiteSpace(' ')
              STRING
                PsiElement(RAW_STRING)(''*[0-9]*'')
              PsiWhiteSpace(' \\n     ')
              SIMPLE_COMMAND_ELEMENT
                PsiElement(!)('!')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-name')
              PsiWhiteSpace(' ')
              STRING
                PsiElement(RAW_STRING)(''\.*'')
              PsiWhiteSpace(' ')
              SIMPLE_COMMAND_ELEMENT
                PsiElement(!)('!')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-name')
              PsiWhiteSpace(' ')
              STRING
                PsiElement(RAW_STRING)(''*conf'')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-maxdepth')
              PsiWhiteSpace(' ')
              NUMBER
                PsiElement(int)('1')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-print')
            PsiWhiteSpace(' ')
            PsiElement(|)('|')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('sed')
              PsiWhiteSpace(' ')
              STRING
                PsiElement(RAW_STRING)(''s/^\.\///'')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('name')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        PsiElement($)('$')
        SUBSHELL_COMMAND
          PsiElement(()('(')
          COMPOUND_LIST
            PIPELINE_COMMAND_LIST
              SIMPLE_COMMAND
                GENERIC_COMMAND_DIRECTIVE
                  LITERAL
                    PsiElement(word)('find')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('.')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-type')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('f')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-size')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('+0c')
                PsiWhiteSpace(' ')
                SIMPLE_COMMAND_ELEMENT
                  PsiElement(!)('!')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-name')
                PsiWhiteSpace(' ')
                STRING
                  PsiElement(RAW_STRING)(''*[0-9]*'')
                PsiWhiteSpace(' \\n     ')
                SIMPLE_COMMAND_ELEMENT
                  PsiElement(!)('!')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-name')
                PsiWhiteSpace(' ')
                STRING
                  PsiElement(RAW_STRING)(''\.*'')
                PsiWhiteSpace(' ')
                SIMPLE_COMMAND_ELEMENT
                  PsiElement(!)('!')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-name')
                PsiWhiteSpace(' ')
                STRING
                  PsiElement(RAW_STRING)(''*conf'')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-maxdepth')
                PsiWhiteSpace(' ')
                NUMBER
                  PsiElement(int)('1')
                PsiWhiteSpace(' ')
                LITERAL
                  PsiElement(word)('-print')
              PsiWhiteSpace(' ')
              PsiElement(|)('|')
              PsiWhiteSpace(' ')
              SIMPLE_COMMAND
                GENERIC_COMMAND_DIRECTIVE
                  LITERAL
                    PsiElement(word)('sed')
                PsiWhiteSpace(' ')
                STRING
                  PsiElement(RAW_STRING)(''s/^\.\///'')
          PsiElement())(')')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('\(analyzed')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        PsiElement($)('$')
        SUBSHELL_COMMAND
          PsiElement(()('(')
          COMPOUND_LIST
            SIMPLE_COMMAND
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('wc')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('-l')
              PsiWhiteSpace(' ')
              SIMPLE_COMMAND_ELEMENT
                REDIRECTION
                  PsiElement(<)('<')
                  PsiWhiteSpace(' ')
                  VARIABLE
                    PsiElement(var)('$stats')
          PsiElement())(')')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('netstat')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('log')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('entries')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('for')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('calculations\)')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('analyzed')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('for')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('calculations')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('analyzed')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('for')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('done')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('do')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('while')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('calculations')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        BRACE_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('ex,edit')
          PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        BRACE_EXPANSION
          PsiElement({)('{')
          BRACE_EXPANSION
            PsiElement({)('{')
            PsiElement(})('}')
          PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('find')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        VARIABLE
          PsiElement(var)('$DIR')
        PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-name')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('*~')
        PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-exec')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('rm')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-f')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        BRACE_EXPANSION
          PsiElement({)('{')
          PsiElement(})('}')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('\;')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('chown')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('root')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('/usr/')
      SIMPLE_COMMAND_ELEMENT
        BRACE_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('ucb/')
          BRACE_EXPANSION
            PsiElement({)('{')
            PsiElement(word)('ex,edit')
            PsiElement(})('}')
          PsiElement(word)(',lib/')
          BRACE_EXPANSION
            PsiElement({)('{')
            PsiElement(word)('ex?.?*,how_ex')
            PsiElement(})('}')
          PsiElement(})('}')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    INCLUDE_COMMAND
      INCLUDE_DIRECTIVE
        PsiElement(word)('.')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('./movecach.sh')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    INCLUDE_COMMAND
      INCLUDE_DIRECTIVE
        PsiElement(word)('source')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('./foo.sh')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    INCLUDE_COMMAND
      INCLUDE_DIRECTIVE
        PsiElement(word)('.')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('movecach.sh')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    INCLUDE_COMMAND
      INCLUDE_DIRECTIVE
        PsiElement(word)('source')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('foo.sh')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      ASSIGNMENT_COMMAND
        LITERAL
          PsiElement(word)('f')
        PsiElement(=)('=')
        NUMBER
          PsiElement(int)('1')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        ASSIGNMENT_COMMAND
          LITERAL
            PsiElement(word)('b')
          PsiElement(=)('=')
          NUMBER
            PsiElement(int)('2')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('cat')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('movecach.sh')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# init')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('file')
      PsiElement(=)('=')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('current_line.txt')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    LET_COMMAND
      PsiElement(let)('let')
      PsiWhiteSpace(' ')
      ASSIGNMENT_EXPRESSION
        LITERAL_EXPRESSION
          PsiElement(word)('count')
        PsiElement(=)('=')
        LITERAL_EXPRESSION
          NUMBER
            PsiElement(int)('0')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    LET_COMMAND
      PsiElement(let)('let')
      PsiWhiteSpace(' ')
      ASSIGNMENT_EXPRESSION
        LITERAL_EXPRESSION
          PsiElement(word)('indx')
        PsiElement(+=)('+=')
        LITERAL_EXPRESSION
          NUMBER
            PsiElement(int)('1')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    LET_COMMAND
      PsiElement(let)('let')
      PsiWhiteSpace(' ')
      ASSIGNMENT_EXPRESSION
        LITERAL_EXPRESSION
          PsiElement(word)('indx')
        PsiElement(-=)('-=')
        LITERAL_EXPRESSION
          NUMBER
            PsiElement(int)('1')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    LET_COMMAND
      PsiElement(let)('let')
      PsiWhiteSpace(' ')
      ASSIGNMENT_EXPRESSION
        LITERAL_EXPRESSION
          PsiElement(word)('indx')
        PsiElement(=)('=')
        MUL_EXPRESSION
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
          PsiElement(*)('*')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    LET_COMMAND
      PsiElement(let)('let')
      PsiWhiteSpace(' ')
      ASSIGNMENT_EXPRESSION
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('a')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
            PsiWhiteSpace(' ')
            PsiElement(word)('b')
        PsiElement(=)('=')
        LITERAL_EXPRESSION
          NUMBER
            PsiElement(int)('1')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('typeset')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        ASSIGNMENT_COMMAND
          LITERAL
            PsiElement(word)('function')
          PsiElement(=)('=')
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$1')
            PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('typeset')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        ASSIGNMENT_COMMAND
          LITERAL
            PsiElement(word)('function')
          PsiElement(+=)('+=')
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$1')
            PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('typeset')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        ASSIGNMENT_COMMAND
          LITERAL
            PsiElement(word)('name')
          PsiElement(=)('=')
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$2')
            PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('typeset')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        ASSIGNMENT_COMMAND
          LITERAL
            PsiElement(word)('keys')
          PsiElement(=)('=')
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$3')
            PsiElement(CLOSE_QUOTE)('"')