SOURCE_FILE@[0; 70)
  FN_DEF@[0; 69)
    FN_KW@[0; 2) "fn"
    WHITESPACE@[2; 3) " "
    NAME@[3; 6)
      IDENT@[3; 6) "foo"
    PARAM_LIST@[6; 8)
      L_PAREN@[6; 7) "("
      R_PAREN@[7; 8) ")"
    WHITESPACE@[8; 9) " "
    BLOCK_EXPR@[9; 69)
      BLOCK@[9; 69)
        L_CURLY@[9; 10) "{"
        WHITESPACE@[10; 15) "\n    "
        EXPR_STMT@[15; 29)
          WHILE_EXPR@[15; 28)
            WHILE_KW@[15; 20) "while"
            WHITESPACE@[20; 21) " "
            CONDITION@[21; 25)
              LITERAL@[21; 25)
                TRUE_KW@[21; 25) "true"
            WHITESPACE@[25; 26) " "
            BLOCK_EXPR@[26; 28)
              BLOCK@[26; 28)
                L_CURLY@[26; 27) "{"
                R_CURLY@[27; 28) "}"
          SEMI@[28; 29) ";"
        WHITESPACE@[29; 34) "\n    "
        EXPR_STMT@[34; 67)
          WHILE_EXPR@[34; 66)
            WHILE_KW@[34; 39) "while"
            WHITESPACE@[39; 40) " "
            CONDITION@[40; 63)
              LET_KW@[40; 43) "let"
              WHITESPACE@[43; 44) " "
              TUPLE_STRUCT_PAT@[44; 51)
                PATH@[44; 48)
                  PATH_SEGMENT@[44; 48)
                    NAME_REF@[44; 48)
                      IDENT@[44; 48) "Some"
                L_PAREN@[48; 49) "("
                BIND_PAT@[49; 50)
                  NAME@[49; 50)
                    IDENT@[49; 50) "x"
                R_PAREN@[50; 51) ")"
              WHITESPACE@[51; 52) " "
              EQ@[52; 53) "="
              WHITESPACE@[53; 54) " "
              METHOD_CALL_EXPR@[54; 63)
                PATH_EXPR@[54; 56)
                  PATH@[54; 56)
                    PATH_SEGMENT@[54; 56)
                      NAME_REF@[54; 56)
                        IDENT@[54; 56) "it"
                DOT@[56; 57) "."
                NAME_REF@[57; 61)
                  IDENT@[57; 61) "next"
                ARG_LIST@[61; 63)
                  L_PAREN@[61; 62) "("
                  R_PAREN@[62; 63) ")"
            WHITESPACE@[63; 64) " "
            BLOCK_EXPR@[64; 66)
              BLOCK@[64; 66)
                L_CURLY@[64; 65) "{"
                R_CURLY@[65; 66) "}"
          SEMI@[66; 67) ";"
        WHITESPACE@[67; 68) "\n"
        R_CURLY@[68; 69) "}"
  WHITESPACE@[69; 70) "\n"
