2bf81922f7
Consider these expples { 92 } async { 92 } 'a: { 92 } #[a] { 92 } Previously the tree for them were BLOCK_EXPR { ... } EFFECT_EXPR async BLOCK_EXPR { ... } EFFECT_EXPR 'a: BLOCK_EXPR { ... } BLOCK_EXPR #[a] { ... } As you see, it gets progressively worse :) The last two items are especially odd. The last one even violates the balanced curleys invariant we have (#10357) The new approach is to say that the stuff in `{}` is stmt_list, and the block is stmt_list + optional modifiers BLOCK_EXPR STMT_LIST { ... } BLOCK_EXPR async STMT_LIST { ... } BLOCK_EXPR 'a: STMT_LIST { ... } BLOCK_EXPR #[a] STMT_LIST { ... }
202 lines
6.4 KiB
Plaintext
202 lines
6.4 KiB
Plaintext
SOURCE_FILE@0..257
|
|
COMMENT@0..58 "// https://github.com ..."
|
|
WHITESPACE@58..60 "\n\n"
|
|
FN@60..256
|
|
FN_KW@60..62 "fn"
|
|
WHITESPACE@62..63 " "
|
|
NAME@63..82
|
|
IDENT@63..82 "compound_assignment"
|
|
PARAM_LIST@82..84
|
|
L_PAREN@82..83 "("
|
|
R_PAREN@83..84 ")"
|
|
WHITESPACE@84..85 " "
|
|
BLOCK_EXPR@85..256
|
|
STMT_LIST@85..256
|
|
L_CURLY@85..86 "{"
|
|
WHITESPACE@86..91 "\n "
|
|
LET_STMT@91..105
|
|
LET_KW@91..94 "let"
|
|
WHITESPACE@94..95 " "
|
|
IDENT_PAT@95..100
|
|
MUT_KW@95..98 "mut"
|
|
WHITESPACE@98..99 " "
|
|
NAME@99..100
|
|
IDENT@99..100 "a"
|
|
WHITESPACE@100..101 " "
|
|
EQ@101..102 "="
|
|
WHITESPACE@102..103 " "
|
|
LITERAL@103..104
|
|
INT_NUMBER@103..104 "0"
|
|
SEMICOLON@104..105 ";"
|
|
WHITESPACE@105..110 "\n "
|
|
EXPR_STMT@110..117
|
|
BIN_EXPR@110..116
|
|
PATH_EXPR@110..111
|
|
PATH@110..111
|
|
PATH_SEGMENT@110..111
|
|
NAME_REF@110..111
|
|
IDENT@110..111 "a"
|
|
WHITESPACE@111..112 " "
|
|
PLUSEQ@112..114 "+="
|
|
WHITESPACE@114..115 " "
|
|
LITERAL@115..116
|
|
INT_NUMBER@115..116 "1"
|
|
SEMICOLON@116..117 ";"
|
|
WHITESPACE@117..122 "\n "
|
|
EXPR_STMT@122..129
|
|
BIN_EXPR@122..128
|
|
PATH_EXPR@122..123
|
|
PATH@122..123
|
|
PATH_SEGMENT@122..123
|
|
NAME_REF@122..123
|
|
IDENT@122..123 "a"
|
|
WHITESPACE@123..124 " "
|
|
MINUSEQ@124..126 "-="
|
|
WHITESPACE@126..127 " "
|
|
LITERAL@127..128
|
|
INT_NUMBER@127..128 "2"
|
|
SEMICOLON@128..129 ";"
|
|
WHITESPACE@129..134 "\n "
|
|
EXPR_STMT@134..141
|
|
BIN_EXPR@134..140
|
|
PATH_EXPR@134..135
|
|
PATH@134..135
|
|
PATH_SEGMENT@134..135
|
|
NAME_REF@134..135
|
|
IDENT@134..135 "a"
|
|
WHITESPACE@135..136 " "
|
|
STAREQ@136..138 "*="
|
|
WHITESPACE@138..139 " "
|
|
LITERAL@139..140
|
|
INT_NUMBER@139..140 "3"
|
|
SEMICOLON@140..141 ";"
|
|
WHITESPACE@141..146 "\n "
|
|
EXPR_STMT@146..153
|
|
BIN_EXPR@146..152
|
|
PATH_EXPR@146..147
|
|
PATH@146..147
|
|
PATH_SEGMENT@146..147
|
|
NAME_REF@146..147
|
|
IDENT@146..147 "a"
|
|
WHITESPACE@147..148 " "
|
|
PERCENTEQ@148..150 "%="
|
|
WHITESPACE@150..151 " "
|
|
LITERAL@151..152
|
|
INT_NUMBER@151..152 "4"
|
|
SEMICOLON@152..153 ";"
|
|
WHITESPACE@153..158 "\n "
|
|
EXPR_STMT@158..165
|
|
BIN_EXPR@158..164
|
|
PATH_EXPR@158..159
|
|
PATH@158..159
|
|
PATH_SEGMENT@158..159
|
|
NAME_REF@158..159
|
|
IDENT@158..159 "a"
|
|
WHITESPACE@159..160 " "
|
|
SLASHEQ@160..162 "/="
|
|
WHITESPACE@162..163 " "
|
|
LITERAL@163..164
|
|
INT_NUMBER@163..164 "5"
|
|
SEMICOLON@164..165 ";"
|
|
WHITESPACE@165..170 "\n "
|
|
EXPR_STMT@170..177
|
|
BIN_EXPR@170..176
|
|
PATH_EXPR@170..171
|
|
PATH@170..171
|
|
PATH_SEGMENT@170..171
|
|
NAME_REF@170..171
|
|
IDENT@170..171 "a"
|
|
WHITESPACE@171..172 " "
|
|
PIPEEQ@172..174 "|="
|
|
WHITESPACE@174..175 " "
|
|
LITERAL@175..176
|
|
INT_NUMBER@175..176 "6"
|
|
SEMICOLON@176..177 ";"
|
|
WHITESPACE@177..182 "\n "
|
|
EXPR_STMT@182..189
|
|
BIN_EXPR@182..188
|
|
PATH_EXPR@182..183
|
|
PATH@182..183
|
|
PATH_SEGMENT@182..183
|
|
NAME_REF@182..183
|
|
IDENT@182..183 "a"
|
|
WHITESPACE@183..184 " "
|
|
AMPEQ@184..186 "&="
|
|
WHITESPACE@186..187 " "
|
|
LITERAL@187..188
|
|
INT_NUMBER@187..188 "7"
|
|
SEMICOLON@188..189 ";"
|
|
WHITESPACE@189..194 "\n "
|
|
EXPR_STMT@194..201
|
|
BIN_EXPR@194..200
|
|
PATH_EXPR@194..195
|
|
PATH@194..195
|
|
PATH_SEGMENT@194..195
|
|
NAME_REF@194..195
|
|
IDENT@194..195 "a"
|
|
WHITESPACE@195..196 " "
|
|
CARETEQ@196..198 "^="
|
|
WHITESPACE@198..199 " "
|
|
LITERAL@199..200
|
|
INT_NUMBER@199..200 "8"
|
|
SEMICOLON@200..201 ";"
|
|
WHITESPACE@201..206 "\n "
|
|
EXPR_STMT@206..213
|
|
BIN_EXPR@206..212
|
|
PATH_EXPR@206..207
|
|
PATH@206..207
|
|
PATH_SEGMENT@206..207
|
|
NAME_REF@206..207
|
|
IDENT@206..207 "a"
|
|
WHITESPACE@207..208 " "
|
|
LTEQ@208..210 "<="
|
|
WHITESPACE@210..211 " "
|
|
LITERAL@211..212
|
|
INT_NUMBER@211..212 "9"
|
|
SEMICOLON@212..213 ";"
|
|
WHITESPACE@213..218 "\n "
|
|
EXPR_STMT@218..226
|
|
BIN_EXPR@218..225
|
|
PATH_EXPR@218..219
|
|
PATH@218..219
|
|
PATH_SEGMENT@218..219
|
|
NAME_REF@218..219
|
|
IDENT@218..219 "a"
|
|
WHITESPACE@219..220 " "
|
|
GTEQ@220..222 ">="
|
|
WHITESPACE@222..223 " "
|
|
LITERAL@223..225
|
|
INT_NUMBER@223..225 "10"
|
|
SEMICOLON@225..226 ";"
|
|
WHITESPACE@226..231 "\n "
|
|
EXPR_STMT@231..240
|
|
BIN_EXPR@231..239
|
|
PATH_EXPR@231..232
|
|
PATH@231..232
|
|
PATH_SEGMENT@231..232
|
|
NAME_REF@231..232
|
|
IDENT@231..232 "a"
|
|
WHITESPACE@232..233 " "
|
|
SHREQ@233..236 ">>="
|
|
WHITESPACE@236..237 " "
|
|
LITERAL@237..239
|
|
INT_NUMBER@237..239 "11"
|
|
SEMICOLON@239..240 ";"
|
|
WHITESPACE@240..245 "\n "
|
|
EXPR_STMT@245..254
|
|
BIN_EXPR@245..253
|
|
PATH_EXPR@245..246
|
|
PATH@245..246
|
|
PATH_SEGMENT@245..246
|
|
NAME_REF@245..246
|
|
IDENT@245..246 "a"
|
|
WHITESPACE@246..247 " "
|
|
SHLEQ@247..250 "<<="
|
|
WHITESPACE@250..251 " "
|
|
LITERAL@251..253
|
|
INT_NUMBER@251..253 "12"
|
|
SEMICOLON@253..254 ";"
|
|
WHITESPACE@254..255 "\n"
|
|
R_CURLY@255..256 "}"
|
|
WHITESPACE@256..257 "\n"
|