PyFile:AssignmentExpressions.py
  PyIfStatement
    PyIfPartIf
      PsiElement(Py:IF_KEYWORD)('if')
      PsiWhiteSpace(' ')
      PyAssignmentExpression
        PyTargetExpression: a
          PsiElement(Py:IDENTIFIER)('a')
        PsiWhiteSpace(' ')
        PsiElement(Py:COLONEQ)(':=')
        PsiWhiteSpace(' ')
        PyReferenceExpression: b
          PsiElement(Py:IDENTIFIER)('b')
      PsiElement(Py:COLON)(':')
      PsiWhiteSpace('\n    ')
      PyStatementList
        PyPassStatement
          PsiElement(Py:PASS_KEYWORD)('pass')
  PsiWhiteSpace('\n\n')
  PyWhileStatement
    PyWhilePart
      PsiElement(Py:WHILE_KEYWORD)('while')
      PsiWhiteSpace(' ')
      PyAssignmentExpression
        PyTargetExpression: c
          PsiElement(Py:IDENTIFIER)('c')
        PsiWhiteSpace(' ')
        PsiElement(Py:COLONEQ)(':=')
        PsiWhiteSpace(' ')
        PyReferenceExpression: d
          PsiElement(Py:IDENTIFIER)('d')
      PsiElement(Py:COLON)(':')
      PsiWhiteSpace('\n   ')
      PyStatementList
        PyPassStatement
          PsiElement(Py:PASS_KEYWORD)('pass')
  PsiWhiteSpace('\n\n')
  PyExpressionStatement
    PyListLiteralExpression
      PsiElement(Py:LBRACKET)('[')
      PyAssignmentExpression
        PyTargetExpression: y
          PsiElement(Py:IDENTIFIER)('y')
        PsiWhiteSpace(' ')
        PsiElement(Py:COLONEQ)(':=')
        PsiWhiteSpace(' ')
        PyNumericLiteralExpression
          PsiElement(Py:INTEGER_LITERAL)('2')
      PsiElement(Py:COMMA)(',')
      PsiWhiteSpace(' ')
      PyBinaryExpression
        PyReferenceExpression: y
          PsiElement(Py:IDENTIFIER)('y')
        PsiElement(Py:EXP)('**')
        PyNumericLiteralExpression
          PsiElement(Py:INTEGER_LITERAL)('2')
      PsiElement(Py:COMMA)(',')
      PsiWhiteSpace(' ')
      PyBinaryExpression
        PyReferenceExpression: y
          PsiElement(Py:IDENTIFIER)('y')
        PsiElement(Py:EXP)('**')
        PyNumericLiteralExpression
          PsiElement(Py:INTEGER_LITERAL)('3')
      PsiElement(Py:RBRACKET)(']')
  PsiWhiteSpace('\n\n')
  PyExpressionStatement
    PyListCompExpression
      PsiElement(Py:LBRACKET)('[')
      PyReferenceExpression: y
        PsiElement(Py:IDENTIFIER)('y')
      PsiWhiteSpace(' ')
      PsiElement(Py:FOR_KEYWORD)('for')
      PsiWhiteSpace(' ')
      PyTargetExpression: x
        PsiElement(Py:IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(Py:IN_KEYWORD)('in')
      PsiWhiteSpace(' ')
      PyReferenceExpression: data
        PsiElement(Py:IDENTIFIER)('data')
      PsiWhiteSpace(' ')
      PsiElement(Py:IF_KEYWORD)('if')
      PsiWhiteSpace(' ')
      PyParenthesizedExpression
        PsiElement(Py:LPAR)('(')
        PyAssignmentExpression
          PyTargetExpression: y
            PsiElement(Py:IDENTIFIER)('y')
          PsiWhiteSpace(' ')
          PsiElement(Py:COLONEQ)(':=')
          PsiWhiteSpace(' ')
          PyCallExpression: f
            PyReferenceExpression: f
              PsiElement(Py:IDENTIFIER)('f')
            PyArgumentList
              PsiElement(Py:LPAR)('(')
              PyReferenceExpression: x
                PsiElement(Py:IDENTIFIER)('x')
              PsiElement(Py:RPAR)(')')
        PsiElement(Py:RPAR)(')')
      PsiElement(Py:RBRACKET)(']')
  PsiWhiteSpace('\n\n')
  PyExpressionStatement
    PyCallExpression: len
      PyReferenceExpression: len
        PsiElement(Py:IDENTIFIER)('len')
      PyArgumentList
        PsiElement(Py:LPAR)('(')
        PyAssignmentExpression
          PyTargetExpression: lines
            PsiElement(Py:IDENTIFIER)('lines')
          PsiWhiteSpace(' ')
          PsiElement(Py:COLONEQ)(':=')
          PsiWhiteSpace(' ')
          PyListLiteralExpression
            PsiElement(Py:LBRACKET)('[')
            PsiElement(Py:RBRACKET)(']')
        PsiElement(Py:RPAR)(')')
  PsiWhiteSpace('\n\n')
  PyExpressionStatement
    PyCallExpression: foo
      PyReferenceExpression: foo
        PsiElement(Py:IDENTIFIER)('foo')
      PyArgumentList
        PsiElement(Py:LPAR)('(')
        PyAssignmentExpression
          PyTargetExpression: x
            PsiElement(Py:IDENTIFIER)('x')
          PsiWhiteSpace(' ')
          PsiElement(Py:COLONEQ)(':=')
          PsiWhiteSpace(' ')
          PyNumericLiteralExpression
            PsiElement(Py:INTEGER_LITERAL)('1')
        PsiElement(Py:COMMA)(',')
        PsiWhiteSpace(' ')
        PyKeywordArgumentImpl: cat
          PsiElement(Py:IDENTIFIER)('cat')
          PsiElement(Py:EQ)('=')
          PyStringLiteralExpression: 2
            PsiElement(Py:SINGLE_QUOTED_STRING)(''2'')
        PsiElement(Py:RPAR)(')')
  PsiWhiteSpace('\n\n')
  PyExpressionStatement
    PyParenthesizedExpression
      PsiElement(Py:LPAR)('(')
      PyTupleExpression
        PyAssignmentExpression
          PyTargetExpression: loc
            PsiElement(Py:IDENTIFIER)('loc')
          PsiWhiteSpace(' ')
          PsiElement(Py:COLONEQ)(':=')
          PsiWhiteSpace(' ')
          PyReferenceExpression: x
            PsiElement(Py:IDENTIFIER)('x')
        PsiElement(Py:COMMA)(',')
        PsiWhiteSpace(' ')
        PyReferenceExpression: y
          PsiElement(Py:IDENTIFIER)('y')
      PsiElement(Py:RPAR)(')')
    PsiWhiteSpace('  ')
    PsiComment(Py:END_OF_LINE_COMMENT)('# loc will be x, not (x, y)')
  PsiWhiteSpace('\n\n')
  PyExpressionStatement
    PyParenthesizedExpression
      PsiElement(Py:LPAR)('(')
      PyTupleExpression
        PyReferenceExpression: px
          PsiElement(Py:IDENTIFIER)('px')
        PsiElement(Py:COMMA)(',')
        PsiWhiteSpace(' ')
        PyReferenceExpression: py
          PsiElement(Py:IDENTIFIER)('py')
        PsiElement(Py:COMMA)(',')
        PsiWhiteSpace(' ')
        PyAssignmentExpression
          PyTargetExpression: pz
            PsiElement(Py:IDENTIFIER)('pz')
          PsiWhiteSpace(' ')
          PsiElement(Py:COLONEQ)(':=')
          PsiWhiteSpace(' ')
          PyReferenceExpression: position
            PsiElement(Py:IDENTIFIER)('position')
      PsiElement(Py:RPAR)(')')
    PsiWhiteSpace('  ')
    PsiComment(Py:END_OF_LINE_COMMENT)('# pz will be position, px and py are references')
  PsiWhiteSpace('\n\n')
  PyAssignmentStatement
    PyTargetExpression: x
      PsiElement(Py:IDENTIFIER)('x')
    PsiWhiteSpace(' ')
    PsiElement(Py:EQ)('=')
    PsiWhiteSpace(' ')
    PyParenthesizedExpression
      PsiElement(Py:LPAR)('(')
      PyAssignmentExpression
        PyTargetExpression: y
          PsiElement(Py:IDENTIFIER)('y')
        PsiWhiteSpace(' ')
        PsiElement(Py:COLONEQ)(':=')
        PsiWhiteSpace(' ')
        PyReferenceExpression: z
          PsiElement(Py:IDENTIFIER)('z')
      PsiElement(Py:RPAR)(')')
    PsiWhiteSpace(' ')
    PsiElement(Py:EQ)('=')
    PsiWhiteSpace(' ')
    PyStringLiteralExpression: spam
      PsiElement(Py:SINGLE_QUOTED_STRING)(''spam'')
    PsiWhiteSpace('  ')
    PsiComment(Py:END_OF_LINE_COMMENT)('# z is a reference')
  PsiWhiteSpace('\n\n')
  PyAssignmentStatement
    PyTargetExpression: result_list
      PsiElement(Py:IDENTIFIER)('result_list')
    PsiWhiteSpace(' ')
    PsiElement(Py:EQ)('=')
    PsiWhiteSpace(' ')
    PyListLiteralExpression
      PsiElement(Py:LBRACKET)('[')
      PyAssignmentExpression
        PyTargetExpression: a
          PsiElement(Py:IDENTIFIER)('a')
        PsiWhiteSpace(' ')
        PsiElement(Py:COLONEQ)(':=')
        PsiWhiteSpace(' ')
        PyNumericLiteralExpression
          PsiElement(Py:INTEGER_LITERAL)('1')
      PsiElement(Py:RBRACKET)(']')
  PsiWhiteSpace('\n')
  PyAssignmentStatement
    PyTargetExpression: result_list
      PsiElement(Py:IDENTIFIER)('result_list')
    PsiWhiteSpace(' ')
    PsiElement(Py:EQ)('=')
    PsiWhiteSpace(' ')
    PyListLiteralExpression
      PsiElement(Py:LBRACKET)('[')
      PyParenthesizedExpression
        PsiElement(Py:LPAR)('(')
        PyAssignmentExpression
          PyTargetExpression: a
            PsiElement(Py:IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(Py:COLONEQ)(':=')
          PsiWhiteSpace(' ')
          PyNumericLiteralExpression
            PsiElement(Py:INTEGER_LITERAL)('1')
        PsiElement(Py:RPAR)(')')
      PsiElement(Py:RBRACKET)(']')