# indent w/ 2 spaces
# beware the tab character in f = 1 im below
source: |
  complex[float] a;
  complex[float] b = 4 - 5.5im;
  complex[float[64]] d = a + 3 im;
  complex[float[32]] c = a ** b;
  complex[float] e = 1im;
  complex[float] f = 1	im;
  complex z;
reference: |
  program
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
            [
            scalarType
              float
            ]
          a
          ;
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
            [
            scalarType
              float
            ]
          b
          =
          declarationExpression
            expression
              expression
                4
              -
              expression
                5.5im
          ;
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
            [
            scalarType
              float
              designator
                [
                expression
                  64
                ]
            ]
          d
          =
          declarationExpression
            expression
              expression
                a
              +
              expression
                3 im
          ;
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
            [
            scalarType
              float
              designator
                [
                expression
                  32
                ]
            ]
          c
          =
          declarationExpression
            expression
              expression
                a
              **
              expression
                b
          ;
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
            [
            scalarType
              float
            ]
          e
          =
          declarationExpression
            expression
              1im
          ;
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
            [
            scalarType
              float
            ]
          f
          =
          declarationExpression
            expression
              1	im
          ;
    statementOrScope
      statement
        classicalDeclarationStatement
          scalarType
            complex
          z
          ;
    <EOF>
