SOURCE_FILE@[0; 350)
  FN_DEF@[0; 349)
    FN_KW@[0; 2)
    WHITESPACE@[2; 3)
    NAME@[3; 8)
      IDENT@[3; 8) "block"
    PARAM_LIST@[8; 10)
      L_PAREN@[8; 9)
      R_PAREN@[9; 10)
    WHITESPACE@[10; 11)
    BLOCK@[11; 349)
      L_CURLY@[11; 12)
      WHITESPACE@[12; 17)
      LET_STMT@[17; 129)
        LET_KW@[17; 20)
        WHITESPACE@[20; 21)
        BIND_PAT@[21; 26)
          NAME@[21; 26)
            IDENT@[21; 26) "inner"
        WHITESPACE@[26; 27)
        EQ@[27; 28)
        WHITESPACE@[28; 29)
        BLOCK_EXPR@[29; 128)
          BLOCK@[29; 128)
            L_CURLY@[29; 30)
            WHITESPACE@[30; 39)
            err: `A block in this position cannot accept inner attributes`
            ATTR@[39; 83)
              POUND@[39; 40)
              EXCL@[40; 41)
              TOKEN_TREE@[41; 83)
                L_BRACK@[41; 42)
                IDENT@[42; 45) "doc"
                TOKEN_TREE@[45; 82)
                  L_PAREN@[45; 46)
                  STRING@[46; 81)
                  R_PAREN@[81; 82)
                R_BRACK@[82; 83)
            WHITESPACE@[83; 92)
            COMMENT@[92; 122)
            WHITESPACE@[122; 127)
            R_CURLY@[127; 128)
        SEMI@[128; 129)
      WHITESPACE@[129; 134)
      EXPR_STMT@[134; 257)
        IF_EXPR@[134; 257)
          IF_KW@[134; 136)
          WHITESPACE@[136; 137)
          CONDITION@[137; 141)
            LITERAL@[137; 141)
              TRUE_KW@[137; 141)
          WHITESPACE@[141; 142)
          BLOCK@[142; 257)
            L_CURLY@[142; 143)
            WHITESPACE@[143; 152)
            err: `A block in this position cannot accept inner attributes`
            ATTR@[152; 171)
              POUND@[152; 153)
              EXCL@[153; 154)
              TOKEN_TREE@[154; 171)
                L_BRACK@[154; 155)
                IDENT@[155; 158) "doc"
                TOKEN_TREE@[158; 170)
                  L_PAREN@[158; 159)
                  STRING@[159; 169)
                  R_PAREN@[169; 170)
                R_BRACK@[170; 171)
            WHITESPACE@[171; 180)
            err: `A block in this position cannot accept inner attributes`
            ATTR@[180; 212)
              POUND@[180; 181)
              EXCL@[181; 182)
              TOKEN_TREE@[182; 212)
                L_BRACK@[182; 183)
                IDENT@[183; 186) "doc"
                TOKEN_TREE@[186; 211)
                  L_PAREN@[186; 187)
                  STRING@[187; 210)
                  R_PAREN@[210; 211)
                R_BRACK@[211; 212)
            WHITESPACE@[212; 221)
            COMMENT@[221; 251)
            WHITESPACE@[251; 256)
            R_CURLY@[256; 257)
      WHITESPACE@[257; 262)
      WHILE_EXPR@[262; 347)
        WHILE_KW@[262; 267)
        WHITESPACE@[267; 268)
        CONDITION@[268; 272)
          LITERAL@[268; 272)
            TRUE_KW@[268; 272)
        WHITESPACE@[272; 273)
        BLOCK@[273; 347)
          L_CURLY@[273; 274)
          WHITESPACE@[274; 283)
          err: `A block in this position cannot accept inner attributes`
          ATTR@[283; 302)
            POUND@[283; 284)
            EXCL@[284; 285)
            TOKEN_TREE@[285; 302)
              L_BRACK@[285; 286)
              IDENT@[286; 289) "doc"
              TOKEN_TREE@[289; 301)
                L_PAREN@[289; 290)
                STRING@[290; 300)
                R_PAREN@[300; 301)
              R_BRACK@[301; 302)
          WHITESPACE@[302; 311)
          COMMENT@[311; 341)
          WHITESPACE@[341; 346)
          R_CURLY@[346; 347)
      WHITESPACE@[347; 348)
      R_CURLY@[348; 349)
  WHITESPACE@[349; 350)
