1# Copyright (c) 2021-2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14 15change_types: 16 - es2panda_arg: 17 name: '|arg_name|' 18 type: 19 name: ArenaVector 20 template_args: 21 - type: '|element_type|' 22 max_ptr_depth: 0 23 new_args: 24 - type: '|element_type|' 25 name: '|arg_name|' 26 increase_ptr_depth: 1 27 local_var_name: '|arg_name|' 28 namespace: '' 29 - type: 30 name: size_t 31 name: '|arg_name|Len' 32 return_args: 33 - type: 34 name: size_t 35 ptr_depth: 1 36 name: '|arg_name|Len' 37 cast: 38 expression: "\ 39 ArenaVector<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|> |arg_name|ArenaVector 40 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 41 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 42 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 43 \t\t|template_nested_expression_1|\n 44 \t\t|arg_name|ArenaVector.push_back(|new_args.0.local_var_name|);\n 45 \t}" 46 var_name: '|arg_name|ArenaVector' 47 reverse_cast: 48 start: "\n 49 \tauto *ctx = reinterpret_cast<Context *>(context);\n 50 \tauto *ctxAllocator = ctx->allocator;\n 51 \tauto resultVector = " 52 end: ";\n 53 \t*|return_args.0.name| = resultVector|accessor|size();\n 54 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 55 \tfor (size_t i = 0; i < *|return_args.0.name|; ++i) {\n 56 \tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 57 \t\tres[i] = reinterpret_cast<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|>(toPush);\n 58 \t}" 59 60 - es2panda_arg: 61 name: '|arg_name|' 62 type: 63 name: ArenaVector 64 template_args: 65 - type: '|element_type|' 66 max_ptr_depth: 1 67 min_ptr_depth: 1 68 new_args: 69 - type: '|element_type|' 70 name: '|arg_name|' 71 increase_ptr_depth: 1 72 local_var_name: '|arg_name|' 73 namespace: '' 74 - type: 75 name: size_t 76 name: '|arg_name|Len' 77 return_args: 78 - type: 79 name: size_t 80 ptr_depth: 1 81 name: '|arg_name|Len' 82 cast: 83 expression: "\ 84 auto *|arg_name|ArenaVector = reinterpret_cast<Context *>(context)->allocator->New<ArenaVector< 85 |new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| 86 |es2panda_arg.type.template_args.0.type.ptr_depth|>>(reinterpret_cast<Context *>(context)->allocator->Adapter());\n 87 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 88 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 89 \t\t|template_nested_expression_1|\n 90 \t\t|arg_name|ArenaVector->push_back(|new_args.0.local_var_name|);\n 91 \t}" 92 var_name: '|arg_name|ArenaVector' 93 reverse_cast: 94 start: "\n 95 \tauto *ctx = reinterpret_cast<Context *>(context);\n 96 \tauto *ctxAllocator = ctx->allocator;\n 97 \tauto resultVector = " 98 end: ";\n 99 \t*|return_args.0.name| = resultVector|accessor|size();\n 100 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 101 \tfor (size_t i = 0; i < *|return_args.0.name|; ++i) {\n 102 \tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 103 \t\tres[i] = reinterpret_cast<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|>(toPush);\n 104 \t}" 105 106 - es2panda_arg: 107 name: '|arg_name|' 108 type: 109 name: vector 110 template_args: 111 - type: '|element_type|' 112 max_ptr_depth: 0 113 new_args: 114 - type: '|element_type|' 115 name: '|arg_name|' 116 increase_ptr_depth: 1 117 local_var_name: '|arg_name|' 118 namespace: '' 119 - type: 120 name: size_t 121 name: '|arg_name|Len' 122 return_args: 123 - type: 124 name: size_t 125 ptr_depth: 1 126 name: '|arg_name|Len' 127 cast: 128 expression: "\ 129 \t\tstd::vector<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|> |arg_name|Vector;\n 130 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 131 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 132 \t\t|template_nested_expression_1|\n 133 \t\t\t|arg_name|Vector.push_back(|new_args.0.local_var_name|);\n 134 \t\t}" 135 var_name: '|arg_name|Vector' 136 reverse_cast: 137 start: "\n 138 auto *ctx = reinterpret_cast<Context *>(context);\n 139 auto *ctxAllocator = ctx->allocator;\n 140 auto resultVector = " 141 end: ";\n 142 \t/* WARNING! This section has not been tested! */\n 143 \t*|return_args.0.name| = resultVector|accessor|size();\n 144 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 145 \tfor (size_t i = 0; i < *|return_args.0.name|; ++i) {\n 146 \tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 147 \t\tres[i] = (|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|)(toPush);\n 148 \t}" 149 150 - es2panda_arg: 151 name: '|arg_name|' 152 type: 153 name: vector 154 template_args: 155 - type: '|element_type|' 156 max_ptr_depth: 1 157 min_ptr_depth: 1 158 new_args: 159 - type: '|element_type|' 160 name: '|arg_name|' 161 increase_ptr_depth: 1 162 local_var_name: '|arg_name|' 163 namespace: '' 164 - type: 165 name: size_t 166 name: '|arg_name|Len' 167 return_args: 168 - type: 169 name: size_t 170 ptr_depth: 1 171 name: '|arg_name|Len' 172 cast: 173 expression: "\ 174 \t\tstd::vector< 175 |new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|> 176 *|arg_name|Vector = reinterpret_cast<Context *>(context)->allocator->New<std::vector< 177 |new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|>>();\n 178 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 179 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 180 \t\t|template_nested_expression_1|\n 181 \t\t\t|arg_name|Vector->push_back(|new_args.0.local_var_name|);\n 182 \t\t}" 183 var_name: '|arg_name|Vector' 184 reverse_cast: 185 start: "\n 186 auto *ctx = reinterpret_cast<Context *>(context);\n 187 auto *ctxAllocator = ctx->allocator;\n 188 auto *resultVector = " 189 end: ";\n 190 \t/* WARNING! This section has not been tested! */\n 191 \t*|return_args.0.name| = resultVector|accessor|size();\n 192 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 193 \tfor (size_t i = 0; i < *|return_args.0.name|; ++i) {\n 194 \tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 195 \t\tres[i] = (|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|)(toPush);\n 196 \t}" 197 198 - es2panda_arg: 199 name: '|arg_name|' 200 type: 201 name: array 202 namespace: std 203 template_args: 204 - type: '|element_type|' 205 max_ptr_depth: 0 206 new_args: 207 - type: '|element_type|' 208 name: '|arg_name|' 209 increase_ptr_depth: 1 210 local_var_name: '|arg_name|' 211 namespace: '' 212 - type: 213 name: size_t 214 name: '|arg_name|Len' 215 return_args: 216 - type: 217 name: size_t 218 ptr_depth: 1 219 name: '|arg_name|Len' 220 cast: 221 expression: "\ 222 \t\tstd::array<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|> |arg_name|Array(|arg_name|Len);\n 223 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 224 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 225 \t\t|template_nested_expression_1|\n 226 \t\t|arg_name|Array[i] = |new_args.0.local_var_name|;\n 227 \t\t}" 228 var_name: '|arg_name|Array' 229 reverse_cast: 230 start: "\n 231 auto *ctx = reinterpret_cast<Context *>(context);\n 232 auto *ctxAllocator = ctx->allocator;\n 233 auto resultArray = " 234 end: ";\n 235 \t/* WARNING! This section has not been tested! */\n 236 \t*|return_args.0.name| = resultArray|accessor|size();\n 237 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 238 \tfor (size_t i = 0; i < *|return_args.0.name|; ++i) {\n 239 \t\tauto toPush = |reverse_template_nested_expression_1_start|(resultArray|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 240 \t\tres[i] = reinterpret_cast<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|>(toPush);\n 241 \t}" 242 243 244 - es2panda_arg: 245 name: '|arg_name|' 246 type: 247 name: ArenaSet 248 template_args: 249 - type: '|element_type|' 250 max_ptr_depth: 0 251 new_args: 252 - type: '|element_type|' 253 name: '|arg_name|' 254 increase_ptr_depth: 1 255 local_var_name: '|arg_name|' 256 namespace: '' 257 - type: 258 name: size_t 259 name: '|arg_name|Len' 260 return_args: 261 - type: 262 name: size_t 263 ptr_depth: 1 264 name: '|arg_name|Len' 265 cast: 266 expression: "\ 267 \tArenaSet<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|> |arg_name|ArenaSet 268 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 269 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 270 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 271 \t\t|template_nested_expression_1|\n 272 \t\t\t|arg_name|ArenaSet.insert(|new_args.0.local_var_name|);\n 273 \t\t}" 274 var_name: '|arg_name|ArenaSet' 275 reverse_cast: 276 start: "\n 277 \tauto *ctx = reinterpret_cast<Context *>(context);\n 278 \tauto *ctxAllocator = ctx->allocator;\n 279 \tauto resultSet = " 280 end: ";\n 281 \t*|return_args.0.name| = resultSet|accessor|size();\n 282 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 283 \tsize_t i = 0;\n 284 \tfor (auto elem : resultSet) {\n 285 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 286 \t\tres[i] = reinterpret_cast<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|>(toPush);\n 287 \t}" 288 289 - es2panda_arg: 290 name: '|arg_name|' 291 type: 292 name: unordered_set 293 namespace: 'std' 294 template_args: 295 - type: '|element_type|' 296 max_ptr_depth: 0 297 new_args: 298 - type: '|element_type|' 299 name: '|arg_name|' 300 increase_ptr_depth: 1 301 local_var_name: '|arg_name|' 302 namespace: '' 303 - type: 304 name: size_t 305 name: '|arg_name|Len' 306 return_args: 307 - type: 308 name: size_t 309 ptr_depth: 1 310 name: '|arg_name|Len' 311 cast: 312 expression: "\ 313 \tstd::unordered_set<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|> |arg_name|Set 314 {};\n 315 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 316 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 317 \t\t|template_nested_expression_1|\n 318 \t\t\t|arg_name|Set.insert(|new_args.0.local_var_name|);\n 319 \t\t}" 320 var_name: '|arg_name|Set' 321 reverse_cast: 322 start: "\n 323 \tauto *ctx = reinterpret_cast<Context *>(context);\n 324 \tauto *ctxAllocator = ctx->allocator;\n 325 \tauto resultSet = " 326 end: ";\n 327 \t*|return_args.0.name| = resultSet|accessor|size();\n 328 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 329 \tsize_t i = 0;\n 330 \tfor (auto elem : resultSet) {\n 331 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 332 \t\tres[i] = reinterpret_cast<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|>(toPush);\n 333 \t}" 334 335 - es2panda_arg: 336 name: '|arg_name|' 337 type: 338 name: unordered_set 339 namespace: 'std' 340 template_args: 341 - type: '|element_type|' 342 max_ptr_depth: 1 343 min_ptr_depth: 1 344 new_args: 345 - type: '|element_type|' 346 name: '|arg_name|' 347 increase_ptr_depth: 1 348 local_var_name: '|arg_name|' 349 namespace: '' 350 - type: 351 name: size_t 352 name: '|arg_name|Len' 353 return_args: 354 - type: 355 name: size_t 356 ptr_depth: 1 357 name: '|arg_name|Len' 358 cast: 359 expression: "\ 360 \tauto *|arg_name|Set = reinterpret_cast<Context *>(context)->allocator->New<std::unordered_set<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|>>();\n 361 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 362 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|[i];\n 363 \t\t|template_nested_expression_1|\n 364 \t\t\t|arg_name|Set->insert(|new_args.0.local_var_name|);\n 365 \t\t}" 366 var_name: '|arg_name|Set' 367 reverse_cast: 368 start: "\n 369 \tauto *ctx = reinterpret_cast<Context *>(context);\n 370 \tauto *ctxAllocator = ctx->allocator;\n 371 \tauto resultSet = " 372 end: ";\n 373 \t*|return_args.0.name| = resultSet|accessor|size();\n 374 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.0.name|);\n 375 \tsize_t i = 0;\n 376 \tfor (auto elem : resultSet) {\n 377 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 378 \t\tres[i] = reinterpret_cast<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|>(toPush);\n 379 \t}" 380 381 382 - es2panda_arg: 383 name: '|arg_name|' 384 type: 385 name: ArenaUnorderedMap 386 template_args: 387 - type: '|element_type_1|' 388 - type: '|element_type_2|' 389 max_ptr_depth: 0 390 new_args: 391 - type: '|element_type_1|' 392 name: '|arg_name|KeyArray' 393 local_var_name: '|arg_name|KeyArray' 394 increase_ptr_depth: 1 395 - type: '|element_type_2|' 396 name: '|arg_name|ValueArray' 397 local_var_name: '|arg_name|ValueArray' 398 increase_ptr_depth: 1 399 - type: 400 name: size_t 401 name: '|arg_name|Len' 402 return_args: 403 - type: '|element_type_2|' 404 name: 'arenaMapValueArray' 405 increase_ptr_depth: 2 406 - type: 407 name: size_t 408 ptr_depth: 1 409 name: '|arg_name|Len' 410 cast: 411 expression: "\ 412 \tArenaUnorderedMap<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 413 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|ArenaMap 414 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 415 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 416 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|KeyArray[i];\n 417 \t\tauto |es2panda_arg.type.template_args.1.type.ptr_depth||es2panda_arg.type.template_args.1.type.ref_depth||arg_name|Element2 = |arg_name|ValueArray[i];\n 418 \t\t|template_nested_expression_1|\n 419 \t\t|template_nested_expression_2|\n 420 \t\t|arg_name|ArenaMap[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 421 \t}" 422 var_name: '|arg_name|ArenaMap' 423 reverse_cast: 424 start: "\n 425 \tauto *ctx = reinterpret_cast<Context *>(context);\n 426 \tauto *ctxAllocator = ctx->allocator;\n 427 \tauto resultMap = " 428 end: ";\n 429 \t*|return_args.1.name| = resultMap|accessor|size();\n 430 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.1.name|);\n 431 \t*|return_args.0.name| = ctxAllocator->New<|new_args.1.type.const| |new_args.1.type.name| |new_args.1.type.ptr_depth - 1||new_args.1.type.ref_depth|[]>(*|return_args.1.name|);\n 432 \tsize_t i = 0;\n 433 \tfor (auto [key, value] : resultMap) {\n 434 \t\tres[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 435 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 436 \t\t++i;\n 437 \t}" 438 439 440 - es2panda_arg: 441 name: '|arg_name|' 442 type: 443 name: ArenaUnorderedMap 444 template_args: 445 - type: '|element_type_1|' 446 - type: '|element_type_2|' 447 max_ptr_depth: 1 448 min_ptr_depth: 1 449 new_args: 450 - type: '|element_type_1|' 451 name: '|arg_name|KeyArray' 452 local_var_name: '|arg_name|KeyArray' 453 increase_ptr_depth: 1 454 - type: '|element_type_2|' 455 name: '|arg_name|ValueArray' 456 local_var_name: '|arg_name|ValueArray' 457 increase_ptr_depth: 1 458 - type: 459 name: size_t 460 name: '|arg_name|Len' 461 return_args: 462 - type: '|element_type_2|' 463 name: 'arenaMapValueArray' 464 increase_ptr_depth: 2 465 - type: 466 name: size_t 467 ptr_depth: 1 468 name: '|arg_name|Len' 469 cast: 470 expression: "\ 471 \tauto *|arg_name|ArenaMap = reinterpret_cast<Context *>(context)->allocator->New<ArenaUnorderedMap< 472 |new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 473 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|>> 474 (reinterpret_cast<Context *>(context)->allocator->Adapter());\n 475 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 476 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|KeyArray[i];\n 477 \t\tauto |es2panda_arg.type.template_args.1.type.ptr_depth||es2panda_arg.type.template_args.1.type.ref_depth||arg_name|Element2 = |arg_name|ValueArray[i];\n 478 \t\t|template_nested_expression_1|\n 479 \t\t|template_nested_expression_2|\n 480 \t\t(*|arg_name|ArenaMap)[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 481 \t}" 482 var_name: '|arg_name|ArenaMap' 483 reverse_cast: 484 start: "\n 485 \tauto *ctx = reinterpret_cast<Context *>(context);\n 486 \tauto *ctxAllocator = ctx->allocator;\n 487 \tauto resultMap = " 488 end: ";\n 489 \t*|return_args.1.name| = resultMap|accessor|size();\n 490 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.1.name|);\n 491 \t*|return_args.0.name| = ctxAllocator->New<|new_args.1.type.const| |new_args.1.type.name| |new_args.1.type.ptr_depth - 1||new_args.1.type.ref_depth|[]>(*|return_args.1.name|);\n 492 \tsize_t i = 0;\n 493 \tfor (auto [key, value] : (*resultMap)) {\n 494 \t\tres[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 495 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 496 \t\t++i;\n 497 \t}" 498 499 - es2panda_arg: 500 name: '|arg_name|' 501 type: 502 name: ArenaMultiMap 503 template_args: 504 - type: '|element_type_1|' 505 - type: '|element_type_2|' 506 max_ptr_depth: 0 507 new_args: 508 - type: '|element_type_1|' 509 name: '|arg_name|KeyArray' 510 local_var_name: '|arg_name|KeyArray' 511 increase_ptr_depth: 1 512 - type: '|element_type_2|' 513 name: '|arg_name|ValueArray' 514 local_var_name: '|arg_name|ValueArray' 515 increase_ptr_depth: 1 516 - type: 517 name: size_t 518 name: '|arg_name|Len' 519 return_args: 520 - type: '|element_type_2|' 521 name: 'arenaMapValueArray' 522 increase_ptr_depth: 2 523 - type: 524 name: size_t 525 ptr_depth: 1 526 name: '|arg_name|Len' 527 cast: 528 expression: "\ 529 \tArenaMultiMap<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 530 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|ArenaMap 531 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 532 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 533 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|KeyArray[i];\n 534 \t\tauto |es2panda_arg.type.template_args.1.type.ptr_depth||es2panda_arg.type.template_args.1.type.ref_depth||arg_name|Element2 = |arg_name|ValueArray[i];\n 535 \t\t|template_nested_expression_1|\n 536 \t\t|template_nested_expression_2|\n 537 \t\t|arg_name|ArenaMap.emplace(|new_args.0.local_var_name|, |new_args.1.local_var_name|);\n 538 \t}" 539 var_name: '|arg_name|ArenaMap' 540 reverse_cast: 541 start: "\n 542 \tauto *ctx = reinterpret_cast<Context *>(context);\n 543 \tauto *ctxAllocator = ctx->allocator;\n 544 \tauto resultMap = " 545 end: ";\n 546 \t*|return_args.1.name| = resultMap|accessor|size();\n 547 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.1.name|);\n 548 \t*|return_args.0.name| = ctxAllocator->New<|new_args.1.type.const| |new_args.1.type.name| |new_args.1.type.ptr_depth - 1||new_args.1.type.ref_depth|[]>(*|return_args.1.name|);\n 549 \tsize_t i = 0;\n 550 \tfor (auto [key, value] : resultMap) {\n 551 \t\tres[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 552 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 553 \t\t++i;\n 554 \t}" 555 556 - es2panda_arg: 557 name: '|arg_name|' 558 type: 559 name: pair 560 template_args: 561 - type: '|element_type_1|' 562 - type: '|element_type_2|' 563 max_ptr_depth: 0 564 new_args: 565 - type: '|element_type_1|' 566 name: '|arg_name|First' 567 local_var_name: '|arg_name|First' 568 - type: '|element_type_2|' 569 name: '|arg_name|Second' 570 local_var_name: '|arg_name|Second' 571 return_args: 572 - type: '|element_type_2|' 573 name: '|arg_name|Second' 574 increase_ptr_depth: 1 575 cast: 576 expression: " /* ERROR! NOT IMPLEMENTED EXPRESSION FOR STD::PAIR */ \n" 577 var_name: '|arg_name|ArenaSet' 578 reverse_cast: 579 start: "\n 580 \tauto *ctx = reinterpret_cast<Context *>(context);\n 581 \t[[maybe_unused]] auto *ctxAllocator = ctx->allocator;\n 582 \tauto resultPair = " 583 end: ";\n 584 \t*|arg_name|Second = |reverse_template_nested_expression_2_start|(const_cast<|new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|>(resultPair|accessor|second))|reverse_template_nested_expression_2_end|;\n 585 \tauto res = |reverse_template_nested_expression_1_start|(resultPair|accessor|first)|reverse_template_nested_expression_1_end|;\n 586 " 587 588 - es2panda_arg: 589 name: '|arg_name|' 590 type: 591 name: ArenaMap 592 template_args: 593 - type: '|element_type_1|' 594 - type: '|element_type_2|' 595 max_ptr_depth: 0 596 new_args: 597 - type: '|element_type_1|' 598 name: '|arg_name|KeyArray' 599 local_var_name: '|arg_name|KeyArray' 600 increase_ptr_depth: 1 601 - type: '|element_type_2|' 602 name: '|arg_name|ValueArray' 603 local_var_name: '|arg_name|ValueArray' 604 increase_ptr_depth: 1 605 - type: 606 name: size_t 607 name: '|arg_name|Len' 608 return_args: 609 - type: '|element_type_2|' 610 name: 'arenaMapValueArray' 611 increase_ptr_depth: 2 612 - type: 613 name: size_t 614 ptr_depth: 1 615 name: '|arg_name|Len' 616 cast: 617 expression: "\ 618 \tArenaMap<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 619 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|ArenaMap 620 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 621 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 622 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|KeyArray[i];\n 623 \t\tauto |es2panda_arg.type.template_args.1.type.ptr_depth||es2panda_arg.type.template_args.1.type.ref_depth||arg_name|Element2 = |arg_name|ValueArray[i];\n 624 \t\t|template_nested_expression_1|\n 625 \t\t|template_nested_expression_2|\n 626 \t\t|arg_name|ArenaMap[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 627 \t}" 628 var_name: '|arg_name|ArenaMap' 629 reverse_cast: 630 start: "\n 631 \tauto *ctx = reinterpret_cast<Context *>(context);\n 632 \tauto *ctxAllocator = ctx->allocator;\n 633 \tauto resultMap = " 634 end: ";\n 635 \t*|return_args.1.name| = resultMap|accessor|size();\n 636 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.1.name|);\n 637 \t*|return_args.0.name| = ctxAllocator->New<|new_args.1.type.const| |new_args.1.type.name| |new_args.1.type.ptr_depth - 1||new_args.1.type.ref_depth|[]>(*|return_args.1.name|);\n 638 \tsize_t i = 0;\n 639 \tfor (auto [key, value] : resultMap) {\n 640 \t\tres[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 641 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 642 \t\t++i;\n 643 \t}" 644 645 - es2panda_arg: 646 name: '|arg_name|' 647 type: 648 name: ArenaMap 649 template_args: 650 - type: '|element_type_1|' 651 - type: '|element_type_2|' 652 max_ptr_depth: 1 653 min_ptr_depth: 1 654 new_args: 655 - type: '|element_type_1|' 656 name: '|arg_name|KeyArray' 657 local_var_name: '|arg_name|KeyArray' 658 increase_ptr_depth: 1 659 - type: '|element_type_2|' 660 name: '|arg_name|ValueArray' 661 local_var_name: '|arg_name|ValueArray' 662 increase_ptr_depth: 1 663 - type: 664 name: size_t 665 name: '|arg_name|Len' 666 return_args: 667 - type: '|element_type_2|' 668 name: 'arenaMapValueArray' 669 increase_ptr_depth: 2 670 - type: 671 name: size_t 672 ptr_depth: 1 673 name: '|arg_name|Len' 674 cast: 675 expression: "\ 676 \tauto *|arg_name|ArenaMap = reinterpret_cast<Context *>(context)->allocator->New<ArenaMap<|new_args.0.namespace| 677 |es2panda_arg.type.template_args.0.type.name||es2panda_arg.type.template_args.0.type.ptr_depth|, 678 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| 679 |es2panda_arg.type.template_args.1.type.ptr_depth|>>(reinterpret_cast<Context *>(context)->allocator->Adapter());\n 680 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 681 \t\tauto |es2panda_arg.type.template_args.0.type.ptr_depth||es2panda_arg.type.template_args.0.type.ref_depth||arg_name|Element1 = |arg_name|KeyArray[i];\n 682 \t\tauto |es2panda_arg.type.template_args.1.type.ptr_depth||es2panda_arg.type.template_args.1.type.ref_depth||arg_name|Element2 = |arg_name|ValueArray[i];\n 683 \t\t|template_nested_expression_1|\n 684 \t\t|template_nested_expression_2|\n 685 \t\t(*|arg_name|ArenaMap)[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 686 \t}" 687 var_name: '|arg_name|ArenaMap' 688 reverse_cast: 689 start: "\n 690 \tauto *ctx = reinterpret_cast<Context *>(context);\n 691 \tauto *ctxAllocator = ctx->allocator;\n 692 \tauto resultMap = " 693 end: ";\n 694 \t*|return_args.1.name| = resultMap|accessor|size();\n 695 \tauto res = ctxAllocator->New<|new_args.0.type.const| |new_args.0.type.name| |new_args.0.type.ptr_depth - 1||new_args.0.type.ref_depth|[]>(*|return_args.1.name|);\n 696 \t*|return_args.0.name| = ctxAllocator->New<|new_args.1.type.const| |new_args.1.type.name| |new_args.1.type.ptr_depth - 1||new_args.1.type.ref_depth|[]>(*|return_args.1.name|);\n 697 \tsize_t i = 0;\n 698 \tfor (auto [key, value] : (*resultMap)) {\n 699 \t\tres[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 700 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 701 \t\t++i;\n 702 \t}" 703 704 - es2panda_arg: 705 name: '|arg_name|' 706 type: 707 name: shared_ptr 708 namespace: std 709 template_args: 710 - type: '|element_type_1|' 711 max_ptr_depth: 0 712 new_args: 713 - type: '|element_type_1|' 714 name: '|arg_name|Ptr' 715 local_var_name: '|arg_name|Ptr' 716 cast: 717 reverse_cast: 718 start: "\n 719 \tauto resultPtr = " 720 end: ";\n 721 \tauto &resultRef = *resultPtr;\n 722 \tauto *res = |reverse_template_nested_expression_1_start|(resultRef)|reverse_template_nested_expression_1_end|;" 723 724 - es2panda_arg: 725 name: '|arg_name|' 726 type: 727 name: 'ArkTsConfig' 728 min_ptr_depth: 1 729 new_args: 730 - type: 731 name: 'es2panda_ArkTsConfig' 732 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 733 name: '|arg_name|' 734 cast: 735 expression: >- 736 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 737 reinterpret_cast<ArkTsConfig |es2panda_arg.type.ptr_depth|>(|arg_name|); 738 reverse_cast: 739 start: >- 740 reinterpret_cast<?const? es2panda_ArkTsConfig |es2panda_arg.type.ptr_depth|> 741 call_cast: 742 call_var: 'es2panda_ArkTsConfig *ast' 743 start: >- 744 (reinterpret_cast<?const? ArkTsConfig *>(ast))-> 745 constructor_cast: 746 start: >- 747 ctxAllocator->New<ArkTsConfig>( 748 end: ) 749 var_name: '|arg_name|E2p' 750 751 - es2panda_arg: 752 name: '|arg_name|' 753 type: 754 name: 'ArkTsConfig' 755 max_ptr_depth: 0 756 new_args: 757 - type: 758 name: 'es2panda_ArkTsConfig' 759 ptr_depth: 1 760 name: '|arg_name|' 761 cast: 762 reverse_cast: 763 start: >- 764 reinterpret_cast<?const? es2panda_ArkTsConfig *>( 765 reinterpret_cast<Context *>(context)->allocator->New<ArkTsConfig>( 766 end: )) 767 var_name: '|arg_name|E2p' 768 769 - es2panda_arg: 770 name: '|arg_name|' 771 type: 772 name: 'Typed' 773 ptr_depth: '|arg_ptr_depth|' 774 namespace: 'ir' 775 min_ptr_depth: 1 776 new_args: 777 - type: 778 name: 'es2panda_AstNode' 779 ptr_depth: '|arg_ptr_depth|' 780 name: '|arg_name|' 781 namespace: 'ir::' 782 cast: 783 expression: >- 784 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 785 reinterpret_cast<ir::Typed<AstNode> |es2panda_arg.type.ptr_depth|>(|arg_name|); 786 reverse_cast: 787 start: >- 788 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 789 call_cast: 790 call_var: 'es2panda_AstNode *ast' 791 start: >- 792 (reinterpret_cast<?const? ir::Typed<ir::AstNode> *>(ast))-> 793 constructor_cast: 794 start: >- 795 ctxAllocator->New<ir::Typed<AstNode>>( 796 end: ) 797 var_name: '|arg_name|E2p' 798 799 - es2panda_arg: 800 name: '|arg_name|' 801 type: '|AstNode|' 802 min_ptr_depth: 1 803 new_args: 804 - type: 805 name: "es2panda_AstNode" 806 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 807 name: '|arg_name|' 808 namespace: 'ir::' 809 cast: 810 expression: >- 811 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 812 reinterpret_cast<ir::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 813 reverse_cast: 814 start: >- 815 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 816 call_cast: 817 call_var: 'es2panda_AstNode *ast' 818 start: >- 819 (reinterpret_cast<?const? ir::|es2panda_arg.type.name| *>(ast))-> 820 constructor_cast: 821 start: >- 822 ctxAllocator->New<ir::|es2panda_arg.type.name|>( 823 end: ) 824 var_name: '|arg_name|E2p' 825 826 - es2panda_arg: 827 name: '|arg_name|' 828 type: '|AstNode|' 829 max_ptr_depth: 0 830 new_args: 831 - type: 832 name: "es2panda_AstNode" 833 ptr_depth: 1 834 name: '|arg_name|' 835 namespace: 'ir::' 836 cast: 837 expression: "" 838 var_name: '*reinterpret_cast<ir::|es2panda_arg.type.name| *>(|arg_name|)' 839 840 - es2panda_arg: 841 name: '|arg_name|' 842 type: '|AstNodeAdditionalChildren|' 843 min_ptr_depth: 1 844 new_args: 845 - type: 846 name: "es2panda_AstNode" 847 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 848 name: '|arg_name|' 849 namespace: 'ir::' 850 cast: 851 expression: >- 852 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 853 reinterpret_cast<ir::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 854 reverse_cast: 855 start : >- 856 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 857 call_cast: 858 call_var: 'es2panda_AstNode *ast' 859 start: >- 860 (reinterpret_cast<?const? ir::|es2panda_arg.type.name| *>(ast))-> 861 constructor_cast: 862 start: >- 863 ctxAllocator->New<ir::|es2panda_arg.type.name|>( 864 end: ) 865 var_name: '|arg_name|E2p' 866 867 - es2panda_arg: 868 name: '|arg_name|' 869 type: '|AstNodeAdditionalChildren|' 870 max_ptr_depth: 0 871 new_args: 872 - type: 873 name: "es2panda_AstNode" 874 ptr_depth: 1 875 name: '|arg_name|' 876 namespace: 'ir::' 877 cast: 878 expression: "" 879 var_name: '*reinterpret_cast<ir::|es2panda_arg.type.name| *>(|arg_name|)' 880 881 - es2panda_arg: 882 name: '|arg_name|' 883 type: '|CodeGen|' 884 min_ptr_depth: 1 885 new_args: 886 - type: 887 name: "es2panda_CodeGen" 888 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 889 name: '|arg_name|' 890 namespace: 'compiler::' 891 cast: 892 expression: >- 893 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 894 reinterpret_cast<compiler::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 895 reverse_cast: 896 start : >- 897 reinterpret_cast<?const? es2panda_CodeGen |es2panda_arg.type.ptr_depth|> 898 call_cast: 899 call_var: 'es2panda_CodeGen *ast' 900 start: >- 901 (reinterpret_cast<?const? compiler::|es2panda_arg.type.name| *>(ast))-> 902 constructor_cast: 903 start: >- 904 ctxAllocator->New<compiler::|es2panda_arg.type.name|>( 905 end: ) 906 var_name: '|arg_name|E2p' 907 908 - es2panda_arg: 909 name: '|arg_name|' 910 type: '|AstType|' 911 min_ptr_depth: 1 912 new_args: 913 - type: 914 name: 'es2panda_Type' 915 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 916 name: '|arg_name|' 917 namespace: 'checker::' 918 cast: 919 expression: >- 920 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 921 reinterpret_cast<checker::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 922 reverse_cast: 923 start: >- 924 reinterpret_cast<?const? es2panda_Type |es2panda_arg.type.ptr_depth|> 925 call_cast: 926 call_var: 'es2panda_Type *ast' 927 start: >- 928 (reinterpret_cast<?const? checker::|es2panda_arg.type.name| *>(ast))-> 929 constructor_cast: 930 start: >- 931 ctxAllocator->New<checker::|es2panda_arg.type.name|>( 932 end: ) 933 var_name: '|arg_name|E2p' 934 935 - es2panda_arg: 936 name: '|arg_name|' 937 type: '|AstType|' 938 max_ptr_depth: 0 939 new_args: 940 - type: 941 name: 'es2panda_Type' 942 ptr_depth: 1 943 name: '|arg_name|' 944 namespace: 'checker::' 945 cast: 946 expression: >- 947 auto |arg_name|E2p = 948 *(reinterpret_cast<checker::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|)); 949 var_name: '|arg_name|E2p' 950 951 - es2panda_arg: 952 name: '|arg_name|' 953 type: '|AstTypeAdditionalChildren|' 954 min_ptr_depth: 1 955 new_args: 956 - type: 957 name: "es2panda_Type" 958 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 959 name: '|arg_name|' 960 namespace: 'checker::' 961 cast: 962 expression: >- 963 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 964 reinterpret_cast<checker::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 965 reverse_cast: 966 start : >- 967 reinterpret_cast<?const? es2panda_Type |es2panda_arg.type.ptr_depth|> 968 call_cast: 969 call_var: 'es2panda_Type *ast' 970 start: >- 971 (reinterpret_cast<?const? checker::|es2panda_arg.type.name| *>(ast))-> 972 constructor_cast: 973 start: >- 974 ctxAllocator->New<checker::|es2panda_arg.type.name|>( 975 end: ) 976 var_name: '|arg_name|E2p' 977 978 - es2panda_arg: 979 name: '|arg_name|' 980 type: '|AstTypeAdditionalChildren|' 981 max_ptr_depth: 0 982 new_args: 983 - type: 984 name: "es2panda_Type" 985 ptr_depth: 1 986 name: '|arg_name|' 987 namespace: 'cheker::' 988 cast: 989 expression: "" 990 var_name: '*reinterpret_cast<checker::|es2panda_arg.type.name| *>(|arg_name|)' 991 992 - es2panda_arg: 993 name: '|arg_name|' 994 type: 995 name: TypeRelation 996 namespace: 'checker' 997 max_ptr_depth: 0 998 new_args: 999 - type: 1000 name: "es2panda_TypeRelation" 1001 ptr_depth: 1 1002 name: '|arg_name|' 1003 namespace: 'cheker::' 1004 cast: 1005 expression: "" 1006 var_name: '*reinterpret_cast<checker::TypeRelation *>(|arg_name|)' 1007 1008 - es2panda_arg: 1009 name: '|arg_name|' 1010 type: 1011 name: TypeRelation 1012 namespace: 'checker' 1013 min_ptr_depth: 1 1014 new_args: 1015 - type: 1016 name: "es2panda_TypeRelation" 1017 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1018 name: '|arg_name|' 1019 namespace: 'checker::' 1020 cast: 1021 expression: >- 1022 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1023 reinterpret_cast<checker::TypeRelation |es2panda_arg.type.ptr_depth|>(|arg_name|); 1024 reverse_cast: 1025 start : >- 1026 reinterpret_cast<?const? es2panda_TypeRelation |es2panda_arg.type.ptr_depth|> 1027 call_cast: 1028 call_var: 'es2panda_TypeRelation *ast' 1029 start: >- 1030 (reinterpret_cast<?const? checker::TypeRelation *>(ast))-> 1031 constructor_cast: 1032 start: >- 1033 ctxAllocator->New<checker::TypeRelation>( 1034 end: ) 1035 var_name: '|arg_name|E2p' 1036 1037 - es2panda_arg: 1038 name: '|arg_name|' 1039 type: 1040 name: IndexInfo 1041 namespace: 'checker' 1042 max_ptr_depth: 0 1043 new_args: 1044 - type: 1045 name: "es2panda_IndexInfo" 1046 ptr_depth: 1 1047 name: '|arg_name|' 1048 namespace: 'cheker::' 1049 cast: 1050 expression: "" 1051 var_name: '*reinterpret_cast<checker::IndexInfo *>(|arg_name|)' 1052 1053 - es2panda_arg: 1054 name: '|arg_name|' 1055 type: 1056 name: IndexInfo 1057 namespace: 'checker' 1058 min_ptr_depth: 1 1059 new_args: 1060 - type: 1061 name: "es2panda_IndexInfo" 1062 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1063 name: '|arg_name|' 1064 namespace: 'checker::' 1065 cast: 1066 expression: >- 1067 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1068 reinterpret_cast<checker::IndexInfo |es2panda_arg.type.ptr_depth|>(|arg_name|); 1069 reverse_cast: 1070 start : >- 1071 reinterpret_cast<?const? es2panda_IndexInfo |es2panda_arg.type.ptr_depth|> 1072 call_cast: 1073 call_var: 'es2panda_IndexInfo *ast' 1074 start: >- 1075 (reinterpret_cast<?const? checker::IndexInfo *>(ast))-> 1076 constructor_cast: 1077 start: >- 1078 ctxAllocator->New<checker::IndexInfo>( 1079 end: ) 1080 var_name: '|arg_name|E2p' 1081 1082 - es2panda_arg: 1083 name: '|arg_name|' 1084 type: 1085 name: GlobalTypesHolder 1086 namespace: 'checker' 1087 max_ptr_depth: 0 1088 new_args: 1089 - type: 1090 name: "es2panda_GlobalTypesHolder" 1091 ptr_depth: 1 1092 name: '|arg_name|' 1093 namespace: 'cheker::' 1094 cast: 1095 expression: "" 1096 var_name: '*reinterpret_cast<checker::GlobalTypesHolder *>(|arg_name|)' 1097 1098 - es2panda_arg: 1099 name: '|arg_name|' 1100 type: 1101 name: GlobalTypesHolder 1102 namespace: 'checker' 1103 min_ptr_depth: 1 1104 new_args: 1105 - type: 1106 name: "es2panda_GlobalTypesHolder" 1107 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1108 name: '|arg_name|' 1109 namespace: 'checker::' 1110 cast: 1111 expression: >- 1112 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1113 reinterpret_cast<checker::GlobalTypesHolder |es2panda_arg.type.ptr_depth|>(|arg_name|); 1114 reverse_cast: 1115 start : >- 1116 reinterpret_cast<?const? es2panda_GlobalTypesHolder |es2panda_arg.type.ptr_depth|> 1117 call_cast: 1118 call_var: 'es2panda_GlobalTypesHolder *ast' 1119 start: >- 1120 (reinterpret_cast<?const? checker::GlobalTypesHolder *>(ast))-> 1121 constructor_cast: 1122 start: >- 1123 ctxAllocator->New<checker::GlobalTypesHolder>( 1124 end: ) 1125 var_name: '|arg_name|E2p' 1126 1127 - es2panda_arg: 1128 name: '|arg_name|' 1129 type: 1130 name: ObjectDescriptor 1131 namespace: 'checker' 1132 max_ptr_depth: 0 1133 new_args: 1134 - type: 1135 name: "es2panda_ObjectDescriptor" 1136 ptr_depth: 1 1137 name: '|arg_name|' 1138 namespace: 'cheker::' 1139 cast: 1140 expression: "" 1141 var_name: '*reinterpret_cast<checker::ObjectDescriptor *>(|arg_name|)' 1142 1143 - es2panda_arg: 1144 name: '|arg_name|' 1145 type: 1146 name: ObjectDescriptor 1147 namespace: 'checker' 1148 min_ptr_depth: 1 1149 new_args: 1150 - type: 1151 name: "es2panda_ObjectDescriptor" 1152 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1153 name: '|arg_name|' 1154 namespace: 'checker::' 1155 cast: 1156 expression: >- 1157 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1158 reinterpret_cast<checker::ObjectDescriptor |es2panda_arg.type.ptr_depth|>(|arg_name|); 1159 reverse_cast: 1160 start : >- 1161 reinterpret_cast<?const? es2panda_ObjectDescriptor |es2panda_arg.type.ptr_depth|> 1162 call_cast: 1163 call_var: 'es2panda_ObjectDescriptor *ast' 1164 start: >- 1165 (reinterpret_cast<?const? checker::ObjectDescriptor *>(ast))-> 1166 constructor_cast: 1167 start: >- 1168 ctxAllocator->New<checker::ObjectDescriptor>( 1169 end: ) 1170 var_name: '|arg_name|E2p' 1171 1172 - es2panda_arg: 1173 name: '|arg_name|' 1174 type: 1175 name: UType 1176 namespace: checker 1177 new_args: 1178 - type: 1179 name: int32_t 1180 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1181 name: '|arg_name|' 1182 cast: 1183 expression: 1184 reverse_cast: 1185 start : >- 1186 reinterpret_cast<?const? int32_t |es2panda_arg.type.ptr_depth|> 1187 var_name: '|arg_name|' 1188 1189 - es2panda_arg: 1190 name: '|arg_name|' 1191 type: 1192 name: TupleSizeType 1193 namespace: checker 1194 new_args: 1195 - type: 1196 name: int32_t 1197 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1198 name: '|arg_name|' 1199 cast: 1200 expression: 1201 reverse_cast: 1202 start : >- 1203 reinterpret_cast<?const? int32_t |es2panda_arg.type.ptr_depth|> 1204 var_name: '|arg_name|' 1205 1206 - es2panda_arg: 1207 name: '|arg_name|' 1208 type: '|Variable|' 1209 min_ptr_depth: 1 1210 new_args: 1211 - type: 1212 name: 'es2panda_Variable ' 1213 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1214 name: '|arg_name|' 1215 namespace: 'varbinder::' 1216 cast: 1217 expression: >- 1218 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1219 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1220 reverse_cast: 1221 start: >- 1222 reinterpret_cast<?const? es2panda_Variable |es2panda_arg.type.ptr_depth|> 1223 call_cast: 1224 call_var: 'es2panda_Variable *ast' 1225 start: >- 1226 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1227 constructor_cast: 1228 start: >- 1229 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1230 end: ) 1231 var_name: '|arg_name|E2p' 1232 1233 - es2panda_arg: 1234 name: '|arg_name|' 1235 type: '|Enum|' 1236 max_ptr_depth: 0 1237 new_args: 1238 - type: 1239 name: 'Es2panda|es2panda_arg.type.name|' 1240 name: '|arg_name|' 1241 cast: 1242 expression: >- 1243 auto |arg_name|E2p = E2pToIr|es2panda_arg.type.name|(|arg_name|); 1244 reverse_cast: 1245 start: >- 1246 IrToE2p|es2panda_arg.type.name| 1247 var_name: '|arg_name|E2p' 1248 1249 - es2panda_arg: 1250 name: '|arg_name|' 1251 type: '|Scope|' 1252 min_ptr_depth: 1 1253 new_args: 1254 - type: 1255 name: "es2panda_Scope" 1256 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1257 name: '|arg_name|' 1258 namespace: 'varbinder::' 1259 cast: 1260 expression: >- 1261 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1262 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1263 reverse_cast: 1264 start : >- 1265 reinterpret_cast<?const? es2panda_Scope |es2panda_arg.type.ptr_depth|> 1266 call_cast: 1267 call_var: 'es2panda_Scope *ast' 1268 start: >- 1269 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1270 constructor_cast: 1271 start: >- 1272 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1273 end: ) 1274 var_name: '|arg_name|E2p' 1275 1276 - es2panda_arg: 1277 name: '|arg_name|' 1278 type: '|Scope|' 1279 max_ptr_depth: 0 1280 new_args: 1281 - type: 1282 name: "es2panda_Scope" 1283 ptr_depth: 1 1284 name: '|arg_name|' 1285 namespace: 'varbinder::' 1286 cast: 1287 expression: "" 1288 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1289 1290 - es2panda_arg: 1291 name: '|arg_name|' 1292 type: '|Declaration|' 1293 min_ptr_depth: 1 1294 new_args: 1295 - type: 1296 name: "es2panda_Declaration" 1297 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1298 name: '|arg_name|' 1299 namespace: 'varbinder::' 1300 cast: 1301 expression: >- 1302 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1303 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1304 reverse_cast: 1305 start : >- 1306 reinterpret_cast<?const? es2panda_Declaration |es2panda_arg.type.ptr_depth|> 1307 call_cast: 1308 call_var: 'es2panda_Declaration *ast' 1309 start: >- 1310 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1311 constructor_cast: 1312 start: >- 1313 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1314 end: ) 1315 var_name: '|arg_name|E2p' 1316 1317 - es2panda_arg: 1318 name: '|arg_name|' 1319 type: '|Declaration|' 1320 max_ptr_depth: 0 1321 new_args: 1322 - type: 1323 name: "es2panda_Declaration" 1324 ptr_depth: 1 1325 name: '|arg_name|' 1326 namespace: 'varbinder::' 1327 cast: 1328 expression: "" 1329 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1330 1331 - es2panda_arg: 1332 name: '|arg_name|' 1333 type: 1334 name: 'RecordTable' 1335 namespace: varbinder 1336 min_ptr_depth: 1 1337 new_args: 1338 - type: 1339 name: "es2panda_RecordTable" 1340 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1341 name: '|arg_name|' 1342 namespace: 'varbinder::' 1343 cast: 1344 expression: >- 1345 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1346 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1347 reverse_cast: 1348 start : >- 1349 reinterpret_cast<?const? es2panda_RecordTable |es2panda_arg.type.ptr_depth|> 1350 call_cast: 1351 call_var: 'es2panda_RecordTable *ast' 1352 start: >- 1353 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1354 constructor_cast: 1355 start: >- 1356 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1357 end: ) 1358 var_name: '|arg_name|E2p' 1359 1360 - es2panda_arg: 1361 name: '|arg_name|' 1362 type: 1363 name: 'RecordTable' 1364 namespace: varbinder 1365 max_ptr_depth: 0 1366 new_args: 1367 - type: 1368 name: "es2panda_RecordTable" 1369 ptr_depth: 1 1370 name: '|arg_name|' 1371 namespace: 'varbinder::' 1372 cast: 1373 expression: "" 1374 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1375 1376 - es2panda_arg: 1377 name: '|arg_name|' 1378 type: 1379 name: 'BoundContext' 1380 namespace: varbinder 1381 min_ptr_depth: 1 1382 new_args: 1383 - type: 1384 name: "es2panda_BoundContext" 1385 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1386 name: '|arg_name|' 1387 namespace: 'varbinder::' 1388 cast: 1389 expression: >- 1390 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1391 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1392 reverse_cast: 1393 start : >- 1394 reinterpret_cast<?const? es2panda_BoundContext |es2panda_arg.type.ptr_depth|> 1395 call_cast: 1396 call_var: 'es2panda_BoundContext *ast' 1397 start: >- 1398 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1399 constructor_cast: 1400 start: >- 1401 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1402 end: ) 1403 var_name: '|arg_name|E2p' 1404 1405 - es2panda_arg: 1406 name: '|arg_name|' 1407 type: 1408 name: 'BoundContext' 1409 namespace: varbinder 1410 max_ptr_depth: 0 1411 new_args: 1412 - type: 1413 name: "es2panda_BoundContext" 1414 ptr_depth: 1 1415 name: '|arg_name|' 1416 namespace: 'varbinder::' 1417 cast: 1418 expression: "" 1419 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1420 1421 - es2panda_arg: 1422 name: '|arg_name|' 1423 type: 1424 name: 'ConstScopeFindResult' 1425 namespace: varbinder 1426 min_ptr_depth: 1 1427 new_args: 1428 - type: 1429 name: "es2panda_ScopeFindResult" 1430 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1431 name: '|arg_name|' 1432 namespace: 'varbinder::' 1433 cast: 1434 expression: >- 1435 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1436 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1437 reverse_cast: 1438 start : >- 1439 reinterpret_cast<?const? es2panda_ScopeFindResult |es2panda_arg.type.ptr_depth|> 1440 call_cast: 1441 call_var: 'es2panda_ScopeFindResult *ast' 1442 start: >- 1443 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1444 constructor_cast: 1445 start: >- 1446 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1447 end: ) 1448 var_name: '|arg_name|E2p' 1449 1450 - es2panda_arg: 1451 name: '|arg_name|' 1452 type: 1453 name: 'ConstScopeFindResult' 1454 namespace: varbinder 1455 max_ptr_depth: 0 1456 new_args: 1457 - type: 1458 name: "es2panda_ScopeFindResult" 1459 ptr_depth: 1 1460 name: '|arg_name|' 1461 namespace: 'varbinder::' 1462 cast: 1463 expression: "" 1464 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1465 reverse_cast: 1466 start: >- 1467 reinterpret_cast<?const? es2panda_ScopeFindResult *>( 1468 reinterpret_cast<Context *>(context)->allocator->New<varbinder::ConstScopeFindResult>( 1469 end: '))' 1470 1471 - es2panda_arg: 1472 name: '|arg_name|' 1473 type: 1474 name: 'ScopeFindResult' 1475 namespace: varbinder 1476 min_ptr_depth: 1 1477 new_args: 1478 - type: 1479 name: "es2panda_ScopeFindResult" 1480 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1481 name: '|arg_name|' 1482 namespace: 'varbinder::' 1483 cast: 1484 expression: >- 1485 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1486 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1487 reverse_cast: 1488 start : >- 1489 reinterpret_cast<?const? es2panda_ScopeFindResult |es2panda_arg.type.ptr_depth|> 1490 call_cast: 1491 call_var: 'es2panda_ScopeFindResult *ast' 1492 start: >- 1493 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(ast))-> 1494 constructor_cast: 1495 start: >- 1496 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1497 end: ) 1498 var_name: '|arg_name|E2p' 1499 1500 - es2panda_arg: 1501 name: '|arg_name|' 1502 type: 1503 name: 'ScopeFindResult' 1504 namespace: varbinder 1505 max_ptr_depth: 0 1506 new_args: 1507 - type: 1508 name: "es2panda_ScopeFindResult" 1509 ptr_depth: 1 1510 name: '|arg_name|' 1511 namespace: 'varbinder::' 1512 cast: 1513 expression: "" 1514 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1515 reverse_cast: 1516 start: >- 1517 reinterpret_cast<?const? es2panda_ScopeFindResult *>( 1518 reinterpret_cast<Context *>(context)->allocator->New<varbinder::ScopeFindResult>( 1519 end: '))' 1520 1521 - es2panda_arg: 1522 name: '|arg_name|' 1523 type: 1524 name: 'BindingProps' 1525 namespace: varbinder 1526 min_ptr_depth: 1 1527 new_args: 1528 - type: 1529 name: "es2panda_BindingProps" 1530 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1531 name: '|arg_name|' 1532 namespace: 'varbinder::ClassScope::' 1533 cast: 1534 expression: >- 1535 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1536 reinterpret_cast<varbinder::ClassScope::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1537 reverse_cast: 1538 start : >- 1539 reinterpret_cast<?const? es2panda_BindingProps |es2panda_arg.type.ptr_depth|> 1540 call_cast: 1541 call_var: 'es2panda_BindingProps *ast' 1542 start: >- 1543 (reinterpret_cast<?const? varbinder::ClassScope::|es2panda_arg.type.name| *>(ast))-> 1544 constructor_cast: 1545 start: >- 1546 ctxAllocator->New<varbinder::ClassScope::|es2panda_arg.type.name|>( 1547 end: ) 1548 var_name: '|arg_name|E2p' 1549 1550 - es2panda_arg: 1551 name: '|arg_name|' 1552 type: 1553 name: 'BindingProps' 1554 namespace: varbinder 1555 max_ptr_depth: 0 1556 new_args: 1557 - type: 1558 name: "es2panda_BindingProps" 1559 ptr_depth: 1 1560 name: '|arg_name|' 1561 namespace: 'varbinder::ClassScope::' 1562 cast: 1563 expression: "" 1564 var_name: '*reinterpret_cast<varbinder::ClassScope::|es2panda_arg.type.name| *>(|arg_name|)' 1565 reverse_cast: 1566 start: >- 1567 reinterpret_cast<?const? es2panda_BindingProps *>( 1568 reinterpret_cast<Context *>(context)->allocator->New<varbinder::ClassScope::BindingProps>( 1569 end: '))' 1570 1571 - es2panda_arg: 1572 name: '|arg_name|' 1573 type: 1574 name: Checker 1575 namespace: 'checker' 1576 min_ptr_depth: 1 1577 max_ptr_depth: 1 1578 new_args: 1579 cast: 1580 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->checker; 1581 call_cast: 1582 start: >- 1583 (reinterpret_cast<Context *>(context)->checker)-> 1584 var_name: '|arg_name|E2p' 1585 1586 - es2panda_arg: 1587 name: '|arg_name|' 1588 type: 1589 name: SemanticAnalyzer 1590 namespace: 'checker' 1591 min_ptr_depth: 1 1592 max_ptr_depth: 1 1593 new_args: 1594 cast: 1595 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->analyzer; 1596 call_cast: 1597 start: >- 1598 (reinterpret_cast<Context *>(context)->analyzer)-> 1599 var_name: '|arg_name|E2p' 1600 1601 - es2panda_arg: 1602 name: '|arg_name|' 1603 type: 1604 name: Context 1605 namespace: 'public_lib' 1606 min_ptr_depth: 1 1607 max_ptr_depth: 1 1608 new_args: 1609 cast: 1610 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context); 1611 var_name: '|arg_name|E2p' 1612 1613 - es2panda_arg: 1614 name: '|arg_name|' 1615 type: 1616 name: ETSChecker 1617 namespace: 'checker' 1618 min_ptr_depth: 1 1619 max_ptr_depth: 1 1620 new_args: 1621 cast: 1622 expression: >- 1623 auto *|arg_name|E2p = reinterpret_cast<Context *>(context)->checker->AsETSChecker(); 1624 call_cast: 1625 start: >- 1626 (reinterpret_cast<Context *>(context)->checker->AsETSChecker())-> 1627 var_name: '|arg_name|E2p' 1628 1629 - es2panda_arg: 1630 name: '|arg_name|' 1631 type: 1632 name: ETSParser 1633 namespace: 'parser' 1634 min_ptr_depth: 1 1635 max_ptr_depth: 1 1636 new_args: 1637 cast: 1638 expression: >- 1639 auto *|arg_name|E2p = reinterpret_cast<Context *>(context)->parser->AsETSParser(); 1640 call_cast: 1641 start: >- 1642 (reinterpret_cast<Context *>(context)->parser->AsETSParser())-> 1643 var_name: '|arg_name|E2p' 1644 1645 - es2panda_arg: 1646 name: '|arg_name|' 1647 type: 1648 name: VarBinder 1649 namespace: 'varbinder' 1650 min_ptr_depth: 1 1651 max_ptr_depth: 1 1652 new_args: 1653 cast: 1654 expression: >- 1655 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->parserProgram->VarBinder(); 1656 call_cast: 1657 start: >- 1658 (reinterpret_cast<Context *>(context)->parserProgram->VarBinder())-> 1659 var_name: '|arg_name|E2p' 1660 1661 - es2panda_arg: 1662 name: '|arg_name|' 1663 type: 1664 name: ETSBinder 1665 namespace: 'varbinder' 1666 min_ptr_depth: 1 1667 max_ptr_depth: 1 1668 new_args: 1669 cast: 1670 expression: >- 1671 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->parserProgram->VarBinder()->AsETSBinder(); 1672 call_cast: 1673 start: >- 1674 (reinterpret_cast<Context *>(context)->parserProgram->VarBinder()->AsETSBinder())-> 1675 var_name: '|arg_name|E2p' 1676 1677 - es2panda_arg: 1678 name: '|arg_name|' 1679 type: 1680 name: ArenaAllocator 1681 min_ptr_depth: 1 1682 max_ptr_depth: 1 1683 new_args: 1684 cast: 1685 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->allocator; 1686 var_name: '|arg_name|E2p' 1687 1688 - es2panda_arg: 1689 name: '|arg_name|' 1690 type: 1691 name: size_type 1692 namespace: VariableMap 1693 max_ptr_depth: 0 1694 new_args: 1695 - type: 1696 name: size_t 1697 ptr_depth: 0 1698 name: '|arg_name|' 1699 cast: 1700 expression: varbinder::VariableMap::size_type |arg_name|E2p = |arg_name|; 1701 reverse_cast: 1702 start : static_cast<?const? size_t> 1703 var_name: '|arg_name|E2p' 1704 1705 - es2panda_arg: 1706 name: '|arg_name|' 1707 type: 1708 name: Program 1709 namespace: 'pandasm' 1710 min_ptr_depth: 1 1711 max_ptr_depth: 1 1712 new_args: 1713 cast: 1714 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->program; 1715 var_name: '|arg_name|E2p' 1716 1717 - es2panda_arg: 1718 name: '|arg_name|' 1719 type: 1720 name: Program 1721 namespace: 'parser' 1722 min_ptr_depth: 1 1723 max_ptr_depth: 1 1724 new_args: 1725 cast: 1726 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->parserProgram; 1727 var_name: '|arg_name|E2p' 1728 1729 - es2panda_arg: 1730 name: '|arg_name|' 1731 type: 1732 name: 'FunctionSignature' 1733 namespace: 'ir' 1734 min_ptr_depth: 1 1735 new_args: 1736 - type: 1737 name: "es2panda_FunctionSignature" 1738 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1739 name: '|arg_name|' 1740 namespace: "ir::" 1741 cast: 1742 expression: >- 1743 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1744 reinterpret_cast<ir::FunctionSignature |es2panda_arg.type.ptr_depth|>(|arg_name|); 1745 reverse_cast: 1746 start: >- 1747 reinterpret_cast<?const? es2panda_FunctionSignature |es2panda_arg.type.ptr_depth|> 1748 call_cast: 1749 call_var: 'es2panda_FunctionSignature *ast' 1750 start: >- 1751 (reinterpret_cast<?const? ir::FunctionSignature *>(ast))-> 1752 constructor_cast: 1753 start: >- 1754 ctxAllocator->New<ir::FunctionSignature>( 1755 end: ) 1756 var_name: '|arg_name|E2p' 1757 1758 - es2panda_arg: 1759 name: '|arg_name|' 1760 type: 1761 name: 'FunctionSignature' 1762 namespace: 'ir' 1763 max_ptr_depth: 0 1764 new_args: 1765 - type: 1766 name: "es2panda_FunctionSignature" 1767 ptr_depth: 1 1768 name: '|arg_name|' 1769 namespace: "ir::" 1770 cast: 1771 expression: '' 1772 var_name: 'std::forward<ir::FunctionSignature>(*reinterpret_cast<ir::FunctionSignature *>(|arg_name|))' 1773 reverse_cast: 1774 start: >- 1775 reinterpret_cast<?const? es2panda_FunctionSignature *>( 1776 reinterpret_cast<Context *>(context)->allocator->New<ir::FunctionSignature>( 1777 end: '))' 1778 1779 - es2panda_arg: 1780 name: '|arg_name|' 1781 type: 1782 name: 'Language' 1783 min_ptr_depth: 1 1784 new_args: 1785 cast: 1786 expression: >- 1787 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1788 reinterpret_cast<Context *>(context)->allocator-> 1789 New<Language |es2panda_arg.type.ptr_depth|>(Language::Id::ETS); 1790 var_name: '|arg_name|E2p' 1791 1792 - es2panda_arg: 1793 name: '|arg_name|' 1794 type: 1795 name: 'Language' 1796 max_ptr_depth: 0 1797 new_args: 1798 cast: 1799 expression: >- 1800 ark::es2panda::Language |arg_name|E2p {Language::Id::ETS}; 1801 var_name: '|arg_name|E2p' 1802 1803 - es2panda_arg: 1804 name: '|arg_name|' 1805 type: 1806 name: 'SourcePosition' 1807 namespace: 'lexer' 1808 min_ptr_depth: 1 1809 new_args: 1810 - type: 1811 name: "es2panda_SourcePosition" 1812 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1813 name: '|arg_name|' 1814 namespace: 'lexer::' 1815 cast: 1816 expression: >- 1817 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1818 reinterpret_cast<lexer::SourcePosition |es2panda_arg.type.ptr_depth|>(|arg_name|); 1819 reverse_cast: 1820 start : >- 1821 reinterpret_cast<?const? es2panda_SourcePosition |es2panda_arg.type.ptr_depth|> 1822 call_cast: 1823 call_var: 'es2panda_SourcePosition *ast' 1824 start: >- 1825 (reinterpret_cast<?const? lexer::SourcePosition *>(ast))-> 1826 constructor_cast: 1827 start: >- 1828 ctxAllocator->New<lexer::SourcePosition>( 1829 end: ) 1830 var_name: '|arg_name|E2p' 1831 1832 - es2panda_arg: 1833 name: '|arg_name|' 1834 type: 1835 name: 'SourcePosition' 1836 namespace: 'lexer' 1837 max_ptr_depth: 0 1838 new_args: 1839 - type: 1840 name: "es2panda_SourcePosition" 1841 ptr_depth: 1 1842 name: '|arg_name|' 1843 namespace: 'lexer::' 1844 cast: 1845 expression: >- 1846 auto |arg_name|E2p = *reinterpret_cast<lexer::SourcePosition *>(|arg_name|); 1847 reverse_cast: 1848 start: >- 1849 reinterpret_cast<?const? es2panda_SourcePosition *>( 1850 reinterpret_cast<Context *>(context)->allocator->New<lexer::SourcePosition>( 1851 end: '))' 1852 var_name: '|arg_name|E2p' 1853 1854 - es2panda_arg: 1855 name: '|arg_name|' 1856 type: 1857 name: 'SourceRange' 1858 namespace: 'lexer' 1859 min_ptr_depth: 1 1860 new_args: 1861 - type: 1862 name: "es2panda_SourceRange" 1863 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1864 name: '|arg_name|' 1865 namespace: 'lexer::' 1866 cast: 1867 expression: >- 1868 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1869 reinterpret_cast<lexer::SourceRange |es2panda_arg.type.ptr_depth|>(|arg_name|); 1870 reverse_cast: 1871 start : >- 1872 reinterpret_cast<?const? es2panda_SourceRange |es2panda_arg.type.ptr_depth|> 1873 call_cast: 1874 call_var: 'es2panda_SourceRange *ast' 1875 start: >- 1876 (reinterpret_cast<?const? lexer::SourceRange *>(ast))-> 1877 constructor_cast: 1878 start: >- 1879 ctxAllocator->New<lexer::SourceRange>( 1880 end: ) 1881 var_name: '|arg_name|E2p' 1882 1883 - es2panda_arg: 1884 name: '|arg_name|' 1885 type: 1886 name: 'SourceRange' 1887 namespace: 'lexer' 1888 max_ptr_depth: 0 1889 new_args: 1890 - type: 1891 name: "es2panda_SourceRange" 1892 ptr_depth: 1 1893 name: '|arg_name|' 1894 namespace: 'lexer::' 1895 cast: 1896 expression: >- 1897 auto |arg_name|E2p = *reinterpret_cast<lexer::SourceRange *>(|arg_name|); 1898 reverse_cast: 1899 start: >- 1900 reinterpret_cast<?const? es2panda_SourceRange *>( 1901 reinterpret_cast<Context *>(context)->allocator->New<lexer::SourceRange>( 1902 end: '))' 1903 var_name: '|arg_name|E2p' 1904 1905 - es2panda_arg: 1906 name: '|arg_name|' 1907 type: 1908 name: 'ErrorLogger' 1909 namespace: 'util' 1910 min_ptr_depth: 1 1911 new_args: 1912 - type: 1913 name: "es2panda_ErrorLogger" 1914 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1915 name: '|arg_name|' 1916 namespace: 'util::' 1917 cast: 1918 expression: >- 1919 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1920 reinterpret_cast<util::ErrorLogger |es2panda_arg.type.ptr_depth|>(|arg_name|); 1921 reverse_cast: 1922 start : >- 1923 reinterpret_cast<?const? es2panda_ErrorLogger |es2panda_arg.type.ptr_depth|> 1924 call_cast: 1925 call_var: 'es2panda_ErrorLogger *ast' 1926 start: >- 1927 (reinterpret_cast<?const? util::ErrorLogger *>(ast))-> 1928 constructor_cast: 1929 start: >- 1930 ctxAllocator->New<util::ErrorLogger>( 1931 end: ) 1932 var_name: '|arg_name|E2p' 1933 1934 - es2panda_arg: 1935 name: '|arg_name|' 1936 type: 1937 name: 'ErrorLogger' 1938 namespace: 'util' 1939 max_ptr_depth: 0 1940 new_args: 1941 - type: 1942 name: "es2panda_ErrorLogger" 1943 ptr_depth: 1 1944 name: '|arg_name|' 1945 namespace: 'util::' 1946 cast: 1947 expression: >- 1948 auto |arg_name|E2p = *reinterpret_cast<util::ErrorLogger *>(|arg_name|); 1949 var_name: '|arg_name|E2p' 1950 1951 - es2panda_arg: 1952 name: '|arg_name|' 1953 type: 1954 name: 'VReg' 1955 namespace: 'compiler' 1956 min_ptr_depth: 1 1957 new_args: 1958 - type: 1959 name: "es2panda_VReg" 1960 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1961 name: '|arg_name|' 1962 namespace: 'compiler::' 1963 cast: 1964 expression: >- 1965 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1966 reinterpret_cast<compiler::VReg |es2panda_arg.type.ptr_depth|>(|arg_name|); 1967 reverse_cast: 1968 start : >- 1969 reinterpret_cast<?const? es2panda_VReg |es2panda_arg.type.ptr_depth|> 1970 call_cast: 1971 call_var: 'es2panda_VReg *ast' 1972 start: >- 1973 (reinterpret_cast<?const? compiler::VReg *>(ast))-> 1974 constructor_cast: 1975 start: >- 1976 ctxAllocator->New<compiler::VReg>( 1977 end: ) 1978 var_name: '|arg_name|E2p' 1979 1980 - es2panda_arg: 1981 name: '|arg_name|' 1982 type: 1983 name: 'VReg' 1984 namespace: 'compiler' 1985 max_ptr_depth: 0 1986 new_args: 1987 - type: 1988 name: "es2panda_VReg" 1989 ptr_depth: 1 1990 name: '|arg_name|' 1991 namespace: 'compiler::' 1992 cast: 1993 expression: >- 1994 auto |arg_name|E2p = *reinterpret_cast<compiler::VReg *>(|arg_name|); 1995 reverse_cast: 1996 start: >- 1997 reinterpret_cast<?const? es2panda_VReg *>( 1998 reinterpret_cast<Context *>(context)->allocator->New<compiler::VReg>( 1999 end: '))' 2000 var_name: '|arg_name|E2p' 2001 2002 - es2panda_arg: 2003 name: '|arg_name|' 2004 type: 2005 name: 'IRNode' 2006 namespace: 'compiler' 2007 min_ptr_depth: 1 2008 new_args: 2009 - type: 2010 name: "es2panda_IRNode" 2011 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2012 name: '|arg_name|' 2013 namespace: 'compiler::' 2014 cast: 2015 expression: >- 2016 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2017 reinterpret_cast<compiler::IRNode |es2panda_arg.type.ptr_depth|>(|arg_name|); 2018 reverse_cast: 2019 start : >- 2020 reinterpret_cast<?const? es2panda_IRNode |es2panda_arg.type.ptr_depth|> 2021 call_cast: 2022 call_var: 'es2panda_IRNode *ast' 2023 start: >- 2024 (reinterpret_cast<?const? compiler::IRNode *>(ast))-> 2025 constructor_cast: 2026 start: >- 2027 ctxAllocator->New<compiler::IRNode>( 2028 end: ) 2029 var_name: '|arg_name|E2p' 2030 2031 - es2panda_arg: 2032 name: '|arg_name|' 2033 type: 2034 name: 'IRNode' 2035 namespace: 'compiler' 2036 max_ptr_depth: 0 2037 new_args: 2038 - type: 2039 name: "es2panda_IRNode" 2040 ptr_depth: 1 2041 name: '|arg_name|' 2042 namespace: 'compiler::' 2043 cast: 2044 expression: >- 2045 auto |arg_name|E2p = *reinterpret_cast<compiler::IRNode *>(|arg_name|); 2046 reverse_cast: 2047 start: >- 2048 reinterpret_cast<?const? es2panda_IRNode *>( 2049 reinterpret_cast<Context *>(context)->allocator->New<compiler::IRNode>( 2050 end: '))' 2051 var_name: '|arg_name|E2p' 2052 2053 - es2panda_arg: 2054 name: '|arg_name|' 2055 type: 2056 name: 'SrcDumper' 2057 namespace: "ir" 2058 min_ptr_depth: 1 2059 new_args: 2060 - type: 2061 name: "es2panda_SrcDumper" 2062 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2063 name: '|arg_name|' 2064 namespace: 'ir::' 2065 cast: 2066 expression: >- 2067 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2068 reinterpret_cast<ir::SrcDumper |es2panda_arg.type.ptr_depth|>(|arg_name|); 2069 reverse_cast: 2070 start : >- 2071 reinterpret_cast<?const? es2panda_SrcDumper |es2panda_arg.type.ptr_depth|> 2072 call_cast: 2073 call_var: 'es2panda_SrcDumper *ast' 2074 start: >- 2075 (reinterpret_cast<?const? ir::SrcDumper *>(ast))-> 2076 constructor_cast: 2077 start: >- 2078 ctxAllocator->New<ir::SrcDumper>( 2079 end: ) 2080 var_name: '|arg_name|E2p' 2081 2082 - es2panda_arg: 2083 name: '|arg_name|' 2084 type: 2085 name: 'SrcDumper' 2086 namespace: "ir" 2087 max_ptr_depth: 0 2088 new_args: 2089 - type: 2090 name: "es2panda_SrcDumper" 2091 ptr_depth: 1 2092 name: '|arg_name|' 2093 namespace: 'ir::' 2094 cast: 2095 expression: '' 2096 var_name: 'std::forward<ir::SrcDumper>(*reinterpret_cast<ir::SrcDumper *>(|arg_name|))' 2097 2098 2099 - es2panda_arg: 2100 name: '|arg_name|' 2101 type: 2102 name: 'AstDumper' 2103 namespace: "ir" 2104 min_ptr_depth: 1 2105 new_args: 2106 - type: 2107 name: "es2panda_AstDumper" 2108 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2109 name: '|arg_name|' 2110 namespace: 'ir::' 2111 cast: 2112 expression: >- 2113 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2114 reinterpret_cast<ir::AstDumper |es2panda_arg.type.ptr_depth|>(|arg_name|); 2115 reverse_cast: 2116 start : >- 2117 reinterpret_cast<?const? es2panda_AstDumper |es2panda_arg.type.ptr_depth|> 2118 call_cast: 2119 call_var: 'es2panda_AstDumper *ast' 2120 start: >- 2121 (reinterpret_cast<?const? ir::AstDumper *>(ast))-> 2122 constructor_cast: 2123 start: >- 2124 ctxAllocator->New<ir::AstDumper>( 2125 end: ) 2126 var_name: '|arg_name|E2p' 2127 2128 - es2panda_arg: 2129 name: '|arg_name|' 2130 type: 2131 name: 'AstDumper' 2132 namespace: "ir" 2133 max_ptr_depth: 0 2134 new_args: 2135 - type: 2136 name: "es2panda_AstDumper" 2137 ptr_depth: 1 2138 name: '|arg_name|' 2139 namespace: 'ir::' 2140 cast: 2141 expression: '' 2142 var_name: 'std::forward<ir::AstDumper>(*reinterpret_cast<ir::AstDumper *>(|arg_name|))' 2143 2144 - es2panda_arg: 2145 name: '|arg_name|' 2146 type: 2147 name: 'LabelPair' 2148 min_ptr_depth: 1 2149 new_args: 2150 - type: 2151 name: "es2panda_LabelPair" 2152 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2153 name: '|arg_name|' 2154 namespace: 'compiler::' 2155 cast: 2156 expression: >- 2157 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2158 reinterpret_cast<compiler::LabelPair |es2panda_arg.type.ptr_depth|>(|arg_name|); 2159 reverse_cast: 2160 start : >- 2161 reinterpret_cast<?const? es2panda_LabelPair |es2panda_arg.type.ptr_depth|> 2162 call_cast: 2163 call_var: 'es2panda_LabelPair *ast' 2164 start: >- 2165 (reinterpret_cast<?const? compiler::LabelPair *>(ast))-> 2166 constructor_cast: 2167 start: >- 2168 ctxAllocator->New<compiler::LabelPair>( 2169 end: ) 2170 var_name: '|arg_name|E2p' 2171 2172 - es2panda_arg: 2173 name: '|arg_name|' 2174 type: 2175 name: 'LabelPair' 2176 max_ptr_depth: 0 2177 new_args: 2178 - type: 2179 name: "es2panda_LabelPair" 2180 ptr_depth: 1 2181 name: '|arg_name|' 2182 namespace: 'compiler::' 2183 cast: 2184 expression: '' 2185 var_name: 'std::forward<compiler::LabelPair>(*reinterpret_cast<compiler::LabelPair *>(|arg_name|))' 2186 reverse_cast: 2187 start: >- 2188 reinterpret_cast<?const? es2panda_LabelPair *>(ctxAllocator->New<compiler::LabelPair> 2189 end: ) 2190 2191 - es2panda_arg: 2192 name: '|arg_name|' 2193 type: 2194 name: 'ImportSource' 2195 namespace: "ir" 2196 min_ptr_depth: 1 2197 new_args: 2198 - type: 2199 name: "es2panda_ImportSource" 2200 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2201 name: '|arg_name|' 2202 namespace: "ir::" 2203 cast: 2204 expression: >- 2205 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2206 reinterpret_cast<ir::ImportSource |es2panda_arg.type.ptr_depth|>(|arg_name|); 2207 reverse_cast: 2208 start : >- 2209 reinterpret_cast<?const? es2panda_ImportSource |es2panda_arg.type.ptr_depth|> 2210 call_cast: 2211 call_var: 'es2panda_ImportSource *ast' 2212 start: >- 2213 (reinterpret_cast<?const? ir::ImportSource *>(ast))-> 2214 constructor_cast: 2215 start: >- 2216 ctxAllocator->New<ir::ImportSource>( 2217 end: ) 2218 var_name: '|arg_name|E2p' 2219 2220 - es2panda_arg: 2221 name: '|arg_name|' 2222 type: 2223 name: 'ValidationInfo' 2224 namespace: "ir" 2225 min_ptr_depth: 1 2226 new_args: 2227 - type: 2228 name: "es2panda_ValidationInfo" 2229 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2230 name: '|arg_name|' 2231 namespace: "ir::" 2232 cast: 2233 expression: >- 2234 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2235 reinterpret_cast<ir::ValidationInfo |es2panda_arg.type.ptr_depth|>(|arg_name|); 2236 reverse_cast: 2237 start : >- 2238 reinterpret_cast<?const? es2panda_ValidationInfo |es2panda_arg.type.ptr_depth|> 2239 call_cast: 2240 call_var: 'es2panda_ValidationInfo *ast' 2241 start: >- 2242 (reinterpret_cast<?const? ir::ValidationInfo *>(ast))-> 2243 constructor_cast: 2244 start: >- 2245 ctxAllocator->New<ir::ValidationInfo>( 2246 end: ) 2247 var_name: '|arg_name|E2p' 2248 2249 - es2panda_arg: 2250 name: '|arg_name|' 2251 type: 2252 name: 'ValidationInfo' 2253 namespace: "ir" 2254 max_ptr_depth: 0 2255 new_args: 2256 - type: 2257 name: "es2panda_ValidationInfo" 2258 ptr_depth: 1 2259 name: '|arg_name|' 2260 namespace: "ir::" 2261 cast: 2262 expression: '' 2263 reverse_cast: 2264 start : >- 2265 reinterpret_cast<?const? es2panda_ValidationInfo *>(reinterpret_cast<Context *>(context)-> 2266 allocator->New<ir::ValidationInfo>( 2267 end: '))' 2268 var_name: '*reinterpret_cast<ir::ValidationInfo |es2panda_arg.type.ptr_depth|>(|arg_name|)' 2269 2270 - es2panda_arg: 2271 name: '|arg_name|' 2272 type: 2273 name: 'ASTAbstractVisitor' 2274 namespace: 'visitor' 2275 min_ptr_depth: 1 2276 new_args: 2277 - type: 2278 name: "es2panda_AstVisitor" 2279 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2280 name: '|arg_name|' 2281 namespace: 'ir::visitor::' 2282 cast: 2283 expression: >- 2284 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2285 reinterpret_cast<ir::visitor::ASTAbstractVisitor |es2panda_arg.type.ptr_depth|>(|arg_name|); 2286 reverse_cast: 2287 start : >- 2288 reinterpret_cast<?const? es2panda_AstVisitor |es2panda_arg.type.ptr_depth|> 2289 call_cast: 2290 call_var: 'es2panda_AstVisitor *ast' 2291 start: >- 2292 (reinterpret_cast<?const? ir::visitor::ASTAbstractVisitor *>(ast))-> 2293 constructor_cast: 2294 start: >- 2295 ctxAllocator->New<ir::visitor::ASTAbstractVisitor>( 2296 end: ) 2297 var_name: '|arg_name|E2p' 2298 2299 - es2panda_arg: 2300 name: '|arg_name|' 2301 type: 2302 name: 'Signature' 2303 namespace: 'ir' 2304 min_ptr_depth: 1 2305 new_args: 2306 - type: 2307 name: "es2panda_Signature" 2308 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2309 name: '|arg_name|' 2310 namespace: 'ir::' 2311 cast: 2312 expression: >- 2313 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2314 reinterpret_cast<checker::Signature |es2panda_arg.type.ptr_depth|>(|arg_name|); 2315 reverse_cast: 2316 start: >- 2317 reinterpret_cast<?const? es2panda_Signature |es2panda_arg.type.ptr_depth|> 2318 call_cast: 2319 call_var: 'es2panda_Signature *ast' 2320 start: >- 2321 (reinterpret_cast<?const? checker::Signature *>(ast))-> 2322 constructor_cast: 2323 start: >- 2324 ctxAllocator->New<checker::Signature>( 2325 end: ) 2326 var_name: '|arg_name|E2p' 2327 2328 - es2panda_arg: 2329 name: '|arg_name|' 2330 type: 2331 name: 'Substitution' 2332 namespace: 'checker' 2333 min_ptr_depth: 1 2334 new_args: 2335 - type: 2336 name: "ArenaMap" 2337 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2338 template_args: 2339 - type: 2340 name: ETSTypeParameter 2341 ptr_depth: 1 2342 - type: 2343 name: Type 2344 ptr_depth: 1 2345 name: '|arg_name|' 2346 cast: 2347 reverse_cast: '' 2348 2349 - es2panda_arg: 2350 name: '|arg_name|' 2351 type: 2352 name: 'VariableMap' 2353 namespace: 'varbinder::Scope' 2354 new_args: 2355 - type: 2356 name: "ArenaUnorderedMap" 2357 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2358 template_args: 2359 - type: 2360 name: StringView 2361 ptr_depth: 0 2362 namespace: util 2363 - type: 2364 name: Variable 2365 ptr_depth: 1 2366 namespace: varbinder 2367 name: '|arg_name|' 2368 cast: 2369 reverse_cast: '' 2370 2371 - es2panda_arg: 2372 name: '|arg_name|' 2373 type: 2374 name: 'DynamicImportVariables' 2375 namespace: 'varbinder' 2376 new_args: 2377 - type: 2378 name: "ArenaUnorderedMap" 2379 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2380 template_args: 2381 - type: 2382 name: Variable 2383 ptr_depth: 1 2384 namespace: varbinder 2385 const: const 2386 - type: 2387 name: DynamicImportData 2388 ptr_depth: 0 2389 name: '|arg_name|' 2390 cast: 2391 reverse_cast: '' 2392 2393 - es2panda_arg: 2394 name: '|arg_name|' 2395 type: 2396 name: 'GlobalArraySignatureMap' 2397 namespace: 'checker' 2398 new_args: 2399 - type: 2400 name: "ArenaUnorderedMap" 2401 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2402 template_args: 2403 - type: 2404 name: ETSArrayType 2405 ptr_depth: 1 2406 namespace: checker 2407 const: const 2408 - type: 2409 name: Signature 2410 ptr_depth: 1 2411 namespace: checker 2412 name: '|arg_name|' 2413 cast: 2414 reverse_cast: '' 2415 2416 - es2panda_arg: 2417 name: '|arg_name|' 2418 type: 2419 name: 'CapturedVarsMap' 2420 namespace: 'checker' 2421 new_args: 2422 - type: 2423 name: "ArenaUnorderedMap" 2424 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2425 template_args: 2426 - type: 2427 name: Variable 2428 ptr_depth: 1 2429 namespace: varbinder 2430 const: const 2431 - type: 2432 name: SourcePosition 2433 ptr_depth: 0 2434 namespace: lexer 2435 name: '|arg_name|' 2436 cast: 2437 reverse_cast: '' 2438 2439 - es2panda_arg: 2440 name: '|arg_name|' 2441 type: 2442 name: 'Signature' 2443 namespace: 'checker' 2444 min_ptr_depth: 1 2445 new_args: 2446 - type: 2447 name: "es2panda_Signature" 2448 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2449 name: '|arg_name|' 2450 namespace: 'checker::' 2451 cast: 2452 expression: >- 2453 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2454 reinterpret_cast<checker::Signature |es2panda_arg.type.ptr_depth|>(|arg_name|); 2455 reverse_cast: 2456 start: >- 2457 reinterpret_cast<?const? es2panda_Signature |es2panda_arg.type.ptr_depth|> 2458 call_cast: 2459 call_var: 'es2panda_Signature *ast' 2460 start: >- 2461 (reinterpret_cast<?const? checker::Signature *>(ast))-> 2462 constructor_cast: 2463 start: >- 2464 ctxAllocator->New<checker::Signature>( 2465 end: ) 2466 var_name: '|arg_name|E2p' 2467 2468 - es2panda_arg: 2469 name: '|arg_name|' 2470 type: 2471 name: 'SignatureInfo' 2472 namespace: 'checker' 2473 min_ptr_depth: 1 2474 new_args: 2475 - type: 2476 name: "es2panda_SignatureInfo" 2477 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2478 name: '|arg_name|' 2479 namespace: 'checker::' 2480 cast: 2481 expression: >- 2482 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2483 reinterpret_cast<checker::SignatureInfo |es2panda_arg.type.ptr_depth|>(|arg_name|); 2484 reverse_cast: 2485 start: >- 2486 reinterpret_cast<?const? es2panda_SignatureInfo |es2panda_arg.type.ptr_depth|> 2487 call_cast: 2488 call_var: 'es2panda_SignatureInfo *ast' 2489 start: >- 2490 (reinterpret_cast<?const? checker::SignatureInfo *>(ast))-> 2491 constructor_cast: 2492 start: >- 2493 ctxAllocator->New<checker::SignatureInfo>( 2494 end: ) 2495 var_name: '|arg_name|E2p' 2496 2497 - es2panda_arg: 2498 name: '|arg_name|' 2499 type: 2500 name: 'CheckerContext' 2501 namespace: 'checker' 2502 min_ptr_depth: 1 2503 new_args: 2504 - type: 2505 name: "es2panda_CheckerContext" 2506 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2507 name: '|arg_name|' 2508 namespace: 'checker::' 2509 cast: 2510 expression: >- 2511 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2512 reinterpret_cast<checker::CheckerContext |es2panda_arg.type.ptr_depth|>(|arg_name|); 2513 reverse_cast: 2514 start: >- 2515 reinterpret_cast<?const? es2panda_CheckerContext |es2panda_arg.type.ptr_depth|> 2516 call_cast: 2517 call_var: 'es2panda_CheckerContext *ast' 2518 start: >- 2519 (reinterpret_cast<?const? checker::CheckerContext *>(ast))-> 2520 constructor_cast: 2521 start: >- 2522 ctxAllocator->New<checker::CheckerContext>( 2523 end: ) 2524 var_name: '|arg_name|E2p' 2525 2526 - es2panda_arg: 2527 name: '|arg_name|' 2528 type: 2529 name: 'CheckerContext' 2530 namespace: 'checker' 2531 max_ptr_depth: 0 2532 new_args: 2533 - type: 2534 name: "es2panda_CheckerContext" 2535 ptr_depth: 1 2536 name: '|arg_name|' 2537 namespace: 'checker::' 2538 cast: 2539 expression: >- 2540 auto |arg_name|E2p = 2541 *(reinterpret_cast<checker::CheckerContext *>(|arg_name|)); 2542 reverse_cast: 2543 start: >- 2544 reinterpret_cast<?const? es2panda_CheckerContext *>(reinterpret_cast<Context *>(context)->allocator-> 2545 New<checker::CheckerContext> 2546 end: ) 2547 var_name: '|arg_name|E2p' 2548 2549 - es2panda_arg: 2550 name: '|arg_name|' 2551 type: 2552 name: 'CompilerOptions' 2553 max_ptr_depth: 1 2554 min_ptr_depth: 1 2555 new_args: 2556 cast: 2557 expression: >- 2558 auto |arg_name|E2p = 2559 &(reinterpret_cast<Context *>(context)->config->options->CompilerOptions()); 2560 call_cast: 2561 start: >- 2562 (reinterpret_cast<Context *>(context)->config->options->CompilerOptions(). 2563 var_name: '|arg_name|E2p' 2564 2565 - es2panda_arg: 2566 name: '|arg_name|' 2567 type: 2568 name: 'CompilerOptions' 2569 max_ptr_depth: 0 2570 new_args: 2571 cast: 2572 expression: >- 2573 auto |arg_name|E2p = 2574 reinterpret_cast<Context *>(context)->config->options->CompilerOptions(); 2575 var_name: '|arg_name|E2p' 2576 2577 - es2panda_arg: 2578 name: '|arg_name|' 2579 type: 2580 name: 'ResolveResult' 2581 namespace: 'checker' 2582 min_ptr_depth: 1 2583 new_args: 2584 - type: 2585 name: "es2panda_ResolveResult" 2586 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2587 name: '|arg_name|' 2588 namespace: 'checker::' 2589 cast: 2590 expression: >- 2591 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2592 reinterpret_cast<checker::ResolveResult |es2panda_arg.type.ptr_depth|>(|arg_name|); 2593 reverse_cast: 2594 start: >- 2595 reinterpret_cast<?const? es2panda_ResolveResult |es2panda_arg.type.ptr_depth|> 2596 call_cast: 2597 call_var: 'es2panda_ResolveResult *ast' 2598 start: >- 2599 (reinterpret_cast<?const? checker::ResolveResult *>(ast))-> 2600 constructor_cast: 2601 start: >- 2602 ctxAllocator->New<checker::ResolveResult>( 2603 end: ) 2604 var_name: '|arg_name|E2p' 2605 2606 - es2panda_arg: 2607 name: '|arg_name|' 2608 type: 2609 name: 'ResolveResult' 2610 namespace: 'checker' 2611 max_ptr_depth: 0 2612 new_args: 2613 - type: 2614 name: "es2panda_ResolveResult" 2615 ptr_depth: 1 2616 name: '|arg_name|' 2617 namespace: 'checker::' 2618 cast: 2619 expression: >- 2620 auto |arg_name|E2p = 2621 *(reinterpret_cast<checker::ResolveResult *>(|arg_name|)); 2622 var_name: '|arg_name|E2p' 2623 2624 - es2panda_arg: 2625 name: '|arg_name|' 2626 type: 2627 name: StringView 2628 namespace: util 2629 min_ptr_depth: 0 2630 max_ptr_depth: 0 2631 new_args: 2632 - type: 2633 name: "char" 2634 ptr_depth: 1 2635 name: "|arg_name|" 2636 namespace: 'util::' 2637 cast: 2638 expression: util::StringView |arg_name|E2p {|arg_name|}; 2639 var_name: '|arg_name|E2p' 2640 reverse_cast: 2641 start: StringViewToCString(reinterpret_cast<Context *>(context)->allocator, 2642 end: ) 2643 2644 - es2panda_arg: 2645 name: '|arg_name|' 2646 type: 2647 name: UString 2648 namespace: util 2649 min_ptr_depth: 0 2650 max_ptr_depth: 0 2651 new_args: 2652 - type: 2653 name: "char" 2654 ptr_depth: 1 2655 name: "|arg_name|" 2656 namespace: 'util::' 2657 cast: 2658 expression: util::UString |arg_name|E2p {std::string(|arg_name|), reinterpret_cast<Context *>(context)->allocator}; 2659 var_name: '|arg_name|E2p' 2660 reverse_cast: 2661 start: UStringToCString(reinterpret_cast<Context *>(context)->allocator, 2662 end: ) 2663 2664 - es2panda_arg: 2665 name: '|arg_name|' 2666 type: 2667 name: string_view 2668 min_ptr_depth: 0 2669 max_ptr_depth: 0 2670 new_args: 2671 - type: 2672 name: "char" 2673 ptr_depth: 1 2674 name: "|arg_name|" 2675 cast: 2676 expression: std::string_view |arg_name|E2p {|arg_name|}; 2677 var_name: '|arg_name|E2p' 2678 reverse_cast: 2679 start: StringViewToCString(reinterpret_cast<Context *>(context)->allocator, 2680 end: ) 2681 2682 - es2panda_arg: 2683 name: '|arg_name|' 2684 type: 2685 name: "string" 2686 max_ptr_depth: 0 2687 min_ptr_depth: 0 2688 new_args: 2689 - name: '|arg_name|' 2690 type: 2691 name: char 2692 ptr_depth: 1 2693 namespace: 'std::' 2694 cast: 2695 expression: std::string |arg_name|E2p {|arg_name|}; 2696 reverse_cast: 2697 start: 'StdStringToCString(reinterpret_cast<Context *>(context)->allocator, ' 2698 end: ')' 2699 var_name: '|arg_name|E2p' 2700 2701 - es2panda_arg: 2702 name: '|arg_name|' 2703 type: 2704 name: "EnumMemberResult" 2705 namespace: 'varbinder' 2706 max_ptr_depth: 0 2707 min_ptr_depth: 0 2708 new_args: 2709 - name: '|arg_name|' 2710 type: 2711 name: es2panda_variantDoubleCharArrayBool 2712 ptr_depth: 0 2713 namespace: 'varbinder::' 2714 cast: 2715 expression: | 2716 varbinder::EnumMemberResult |arg_name|E2p; 2717 // NOLINTBEGIN(cppcoreguidelines-pro-type-union-access) 2718 switch (|arg_name|.index) { 2719 case 0: 2720 |arg_name|E2p = std::variant<double, util::StringView, bool>(|arg_name|.variant.d); 2721 break; 2722 case 1: 2723 { 2724 util::StringView |arg_name|E2pStringView {|arg_name|.variant.c}; 2725 |arg_name|E2p = std::variant<double, util::StringView, bool>(|arg_name|E2pStringView); 2726 break; 2727 } 2728 case 2: 2729 |arg_name|E2p = std::variant<double, util::StringView, bool>(|arg_name|.variant.b); 2730 break; 2731 default: 2732 break; 2733 } 2734 // NOLINTEND(cppcoreguidelines-pro-type-union-access) 2735 reverse_cast: 2736 start: 'EnumMemberResultToEs2pandaVariant(reinterpret_cast<Context *>(context)->allocator, ' 2737 end: ')' 2738 var_name: '|arg_name|E2p' 2739 2740 - es2panda_arg: 2741 name: '|arg_name|' 2742 type: 2743 name: "NodeTraverser" 2744 max_ptr_depth: 0 2745 min_ptr_depth: 0 2746 new_args: 2747 - name: '|arg_name|' 2748 type: 2749 name: NodeTraverser 2750 ptr_depth: 0 2751 namespace: '' 2752 cast: 2753 expression: >- 2754 std::function<void(ir::AstNode *)> |arg_name|E2p = 2755 [|arg_name|](ir::AstNode *traverserLambdaNode) 2756 {|arg_name|(reinterpret_cast<es2panda_AstNode *>(traverserLambdaNode));}; 2757 var_name: '|arg_name|E2p' 2758 2759 - es2panda_arg: 2760 name: '|arg_name|' 2761 type: 2762 name: "NodeTransformer" 2763 max_ptr_depth: 0 2764 min_ptr_depth: 0 2765 new_args: 2766 - name: '|arg_name|' 2767 type: 2768 name: NodeTransformer 2769 ptr_depth: 0 2770 namespace: '' 2771 cast: 2772 expression: >- 2773 std::function<ir::AstNode *(ir::AstNode *)> |arg_name|E2p = 2774 [|arg_name|](ir::AstNode *traverserLambdaNode) 2775 {return reinterpret_cast<ir::AstNode *>(|arg_name|(reinterpret_cast<es2panda_AstNode *>(traverserLambdaNode)));}; 2776 var_name: '|arg_name|E2p' 2777 2778 - es2panda_arg: 2779 name: '|arg_name|' 2780 type: 2781 name: NodePredicate 2782 max_ptr_depth: 0 2783 min_ptr_depth: 0 2784 new_args: 2785 - name: '|arg_name|' 2786 type: 2787 name: NodePredicate 2788 ptr_depth: 0 2789 namespace: '' 2790 cast: 2791 expression: >- 2792 std::function<bool(ir::AstNode *)> |arg_name|E2p = 2793 [|arg_name|](ir::AstNode *traverserLambdaNode) 2794 {return |arg_name|(reinterpret_cast<es2panda_AstNode *>(traverserLambdaNode));}; 2795 var_name: '|arg_name|E2p' 2796 2797 - es2panda_arg: 2798 name: '|arg_name|' 2799 type: 2800 name: PropertyProcesser 2801 namespace: checker 2802 max_ptr_depth: 0 2803 min_ptr_depth: 0 2804 new_args: 2805 - name: '|arg_name|' 2806 type: 2807 name: PropertyProcessor 2808 ptr_depth: 0 2809 namespace: '' 2810 cast: 2811 expression: >- 2812 std::function<varbinder::LocalVariable *(varbinder::LocalVariable *, checker::Type *)> |arg_name|E2p = 2813 [|arg_name|](varbinder::LocalVariable *propertyProcessorLambdaVariable, checker::Type *propertyProcessorLambdaType) 2814 {return reinterpret_cast<varbinder::LocalVariable *>(|arg_name|( 2815 reinterpret_cast<es2panda_Variable *>(propertyProcessorLambdaVariable), 2816 reinterpret_cast<es2panda_Type *>(propertyProcessorLambdaType)));}; 2817 var_name: '|arg_name|E2p' 2818 2819 - es2panda_arg: 2820 name: '|arg_name|' 2821 type: 2822 name: PropertyTraverser 2823 max_ptr_depth: 0 2824 min_ptr_depth: 0 2825 new_args: 2826 - name: '|arg_name|' 2827 type: 2828 name: PropertyTraverser 2829 ptr_depth: 0 2830 namespace: '' 2831 cast: 2832 expression: >- 2833 std::function<void(const varbinder::LocalVariable *)> |arg_name|E2p = 2834 [|arg_name|](const varbinder::LocalVariable *propertyTraverserLambdaVariable) 2835 {|arg_name|(reinterpret_cast<const es2panda_Variable *>(propertyTraverserLambdaVariable));}; 2836 var_name: '|arg_name|E2p' 2837 2838 - es2panda_arg: 2839 name: '|arg_name|' 2840 type: 2841 name: ClassBuilder 2842 namespace: 'checker' 2843 max_ptr_depth: 0 2844 min_ptr_depth: 0 2845 new_args: 2846 - name: '|arg_name|' 2847 type: 2848 name: ClassBuilder 2849 ptr_depth: 0 2850 namespace: 'checker::' 2851 cast: 2852 expression: >- 2853 std::function<void(ArenaVector<ir::AstNode *> *)> |arg_name|E2p = 2854 [|arg_name|](ArenaVector<ir::AstNode *> *classBuilderLambdaVariable) 2855 {|arg_name|(reinterpret_cast<es2panda_AstNode **>(classBuilderLambdaVariable->data()), classBuilderLambdaVariable->size());}; 2856 var_name: '|arg_name|E2p' 2857 2858 - es2panda_arg: 2859 name: '|arg_name|' 2860 type: 2861 name: MethodBuilder 2862 namespace: 'checker' 2863 max_ptr_depth: 0 2864 min_ptr_depth: 0 2865 new_args: 2866 - name: '|arg_name|' 2867 type: 2868 name: MethodBuilder 2869 ptr_depth: 0 2870 namespace: 'checker::' 2871 cast: 2872 expression: >- 2873 std::function<void(ArenaVector<ir::Statement *> *, ArenaVector<ir::Expression *> *, checker::Type **)> |arg_name|E2p = 2874 [|arg_name|](ArenaVector<ir::Statement *> *methodBuilderLambdaStatementVariable, 2875 ArenaVector<ir::Expression *> *methodBuilderLambdaExpressionVariable, checker::Type **methodBuilderLambdaTypeVariable) 2876 {|arg_name|(reinterpret_cast<es2panda_AstNode **>(methodBuilderLambdaStatementVariable->data()), 2877 methodBuilderLambdaStatementVariable->size(), reinterpret_cast<es2panda_AstNode **>(methodBuilderLambdaExpressionVariable->data()), 2878 methodBuilderLambdaExpressionVariable->size(), reinterpret_cast<es2panda_Type **>(methodBuilderLambdaTypeVariable));}; 2879 var_name: '|arg_name|E2p' 2880 2881 - es2panda_arg: 2882 name: '|arg_name|' 2883 type: 2884 name: ClassInitializerBuilder 2885 namespace: 'checker' 2886 max_ptr_depth: 0 2887 min_ptr_depth: 0 2888 new_args: 2889 - name: '|arg_name|' 2890 type: 2891 name: ClassInitializerBuilder 2892 ptr_depth: 0 2893 namespace: 'checker::' 2894 cast: 2895 expression: >- 2896 std::function<void(ArenaVector<ir::Statement *> *, ArenaVector<ir::Expression *> *)> |arg_name|E2p = 2897 [|arg_name|](ArenaVector<ir::Statement *> *classInitializerBuilderLambdaStatementVariable, 2898 ArenaVector<ir::Expression *> *classInitializerBuilderLambdaExpressionVariable) 2899 {|arg_name|(reinterpret_cast<es2panda_AstNode **>(classInitializerBuilderLambdaStatementVariable->data()), 2900 classInitializerBuilderLambdaStatementVariable->size(), reinterpret_cast<es2panda_AstNode **>(classInitializerBuilderLambdaExpressionVariable->data()), 2901 classInitializerBuilderLambdaExpressionVariable->size());}; 2902 var_name: '|arg_name|E2p' 2903 2904 - es2panda_arg: 2905 name: '|arg_name|' 2906 type: 2907 name: ConstructorFlags 2908 current_class: TSModuleDeclaration 2909 max_ptr_depth: 0 2910 min_ptr_depth: 0 2911 new_args: 2912 - name: declare 2913 type: 2914 name: bool 2915 - name: global 2916 type: 2917 name: bool 2918 cast: 2919 expression: "" 2920 var_name: "ir::TSModuleDeclaration::ConstructorFlags {declare, global}" 2921 2922 - es2panda_arg: 2923 name: '|arg_name|' 2924 type: 2925 name: "ConstructorFlags" 2926 current_class: TSEnumDeclaration 2927 max_ptr_depth: 0 2928 min_ptr_depth: 0 2929 new_args: 2930 - name: 'isConst' 2931 type: 2932 name: bool 2933 - name: 'isStatic' 2934 type: 2935 name: bool 2936 - name: 'isDeclare' 2937 type: 2938 name: bool 2939 cast: 2940 expression: "" 2941 var_name: "ir::TSEnumDeclaration::ConstructorFlags {isConst, isStatic, isDeclare}" 2942 2943 - es2panda_arg: 2944 name: '|arg_name|' 2945 type: 2946 name: "ConstructorData" 2947 current_class: TSInterfaceDeclaration 2948 max_ptr_depth: 0 2949 min_ptr_depth: 0 2950 new_args: 2951 - name: 'id' 2952 type: 2953 name: es2panda_AstNode 2954 ptr_depth: 1 2955 - name: 'typeParams' 2956 type: 2957 name: es2panda_AstNode 2958 ptr_depth: 1 2959 - name: 'body' 2960 type: 2961 name: es2panda_AstNode 2962 ptr_depth: 1 2963 - name: isStatic 2964 type: 2965 name: bool 2966 - name: isExternal 2967 type: 2968 name: bool 2969 cast: 2970 expression: "\ 2971 auto es2pandaId = reinterpret_cast<ir::Identifier *>(id);\n 2972 auto es2pandaTypeParams = reinterpret_cast<ir::TSTypeParameterDeclaration *>(typeParams);\n 2973 auto es2pandaBody = reinterpret_cast<ir::TSInterfaceBody *>(body);\n 2974 ark::es2panda::Language es2pandaLang {Language::Id::ETS};\n 2975 " 2976 var_name: "ir::TSInterfaceDeclaration::ConstructorData {es2pandaId, es2pandaTypeParams, es2pandaBody, isStatic, isExternal, es2pandaLang}" 2977 2978 - es2panda_arg: 2979 name: '|arg_name|' 2980 type: 2981 name: "ScriptFunctionData" 2982 current_class: ScriptFunction 2983 max_ptr_depth: 0 2984 min_ptr_depth: 0 2985 new_args: 2986 - name: '|arg_name|body' 2987 type: 2988 name: es2panda_AstNode 2989 ptr_depth: 1 2990 - name: '|arg_name|signature' 2991 type: 2992 name: es2panda_FunctionSignature 2993 ptr_depth: 1 2994 - name: '|arg_name|funcFlags' 2995 type: 2996 name: int 2997 ptr_depth: 0 2998 - name: '|arg_name|flags' 2999 type: 3000 name: int 3001 cast: 3002 expression: " 3003 auto *|arg_name|bodyE2p = reinterpret_cast<ir::AstNode *>(|arg_name|body);\n 3004 auto |arg_name|signatureE2p = (*reinterpret_cast<ir::FunctionSignature *>(|arg_name|signature));\n 3005 auto |arg_name|funcFlagsE2p = E2pToIrScriptFunctionFlags((Es2pandaScriptFunctionFlags)|arg_name|funcFlags);\n 3006 auto |arg_name|flagsE2p = E2pToIrModifierFlags((Es2pandaModifierFlags)|arg_name|flags);\n 3007 ark::es2panda::Language |arg_name|lang {Language::Id::ETS};\n 3008 " 3009 var_name: "ir::ScriptFunction::ScriptFunctionData {|arg_name|bodyE2p, std::move(|arg_name|signatureE2p), 3010 |arg_name|funcFlagsE2p, |arg_name|flagsE2p, |arg_name|lang}" 3011 3012 - es2panda_arg: 3013 name: '|arg_name|' 3014 type: 3015 name: Method 3016 namespace: checker 3017 max_ptr_depth: 0 3018 min_ptr_depth: 0 3019 new_args: 3020 - name: 'globalSignature' 3021 type: 3022 name: es2panda_Signature 3023 ptr_depth: 1 3024 namespace: 'checker::' 3025 - name: 'memberProxyType' 3026 type: 3027 name: es2panda_Type 3028 ptr_depth: 1 3029 namespace: 'checker::' 3030 return_args: 3031 - name: '|arg_name|MemberProxyType' 3032 type: 3033 name: es2panda_Type 3034 ptr_depth: 2 3035 cast: 3036 expression: "\ 3037 auto es2pandaGlobalSignature = reinterpret_cast<checker::Signature *>(globalSignature);\n 3038 auto es2pandaMemberProxyType = reinterpret_cast<checker::ETSFunctionType *>(memberProxyType);\n 3039 " 3040 reverse_cast: 3041 start: >- 3042 auto resMethod = 3043 end: ";\n 3044 \t(*|arg_name|MemberProxyType) = reinterpret_cast<es2panda_Type *>(resMethod.memberProxyType);\n 3045 \tauto res = reinterpret_cast<es2panda_Signature *>(resMethod.globalSignature)" 3046 var_name: "checker::ETSEnumType::Method {es2pandaGlobalSignature, es2pandaMemberProxyType}" 3047 3048 - es2panda_arg: 3049 name: '|arg_name|' 3050 type: 3051 name: DynamicImportData 3052 namespace: varbinder 3053 max_ptr_depth: 1 3054 min_ptr_depth: 1 3055 new_args: 3056 - name: '|arg_name|' 3057 type: 3058 name: es2panda_DynamicImportData 3059 ptr_depth: 1 3060 namespace: 'varbinder::' 3061 cast: 3062 expression: "\ 3063 auto |arg_name|import = reinterpret_cast<const ir::ETSImportDeclaration *>(|arg_name|->import);\n 3064 auto |arg_name|specifier = reinterpret_cast<const ir::AstNode *>(|arg_name|->specifier);\n 3065 auto |arg_name|variable = reinterpret_cast<varbinder::Variable *>(|arg_name|->variable);\n 3066 auto |arg_name|E2p = reinterpret_cast<Context *>(context)->allocator->New<varbinder::DynamicImportData>() 3067 |arg_name|E2p->import = |arg_name|import;\n 3068 |arg_name|E2p->specifier = |arg_name|specifier;\n 3069 |arg_name|E2p->variable = |arg_name|variable;\n" 3070 reverse_cast: 3071 start: DynamicImportDataToE2p(reinterpret_cast<Context *>(context)->allocator, 3072 end: ) 3073 var_name: "|arg_name|E2p" 3074 3075 - es2panda_arg: 3076 name: '|arg_name|' 3077 type: 3078 name: DynamicImportData 3079 namespace: varbinder 3080 max_ptr_depth: 0 3081 new_args: 3082 - name: '|arg_name|' 3083 type: 3084 name: es2panda_DynamicImportData 3085 ptr_depth: 0 3086 namespace: 'varbinder::' 3087 cast: 3088 expression: "\ 3089 auto |arg_name|import = reinterpret_cast<const ir::ETSImportDeclaration *>(|arg_name|.import);\n 3090 auto |arg_name|specifier = reinterpret_cast<const ir::AstNode *>(|arg_name|.specifier);\n 3091 auto |arg_name|variable = reinterpret_cast<varbinder::Variable *>(|arg_name|.variable);\n 3092 varbinder::DynamicImportData |arg_name|E2p; 3093 |arg_name|E2p.import = |arg_name|import;\n 3094 |arg_name|E2p.specifier = |arg_name|specifier;\n 3095 |arg_name|E2p.variable = |arg_name|variable;\n" 3096 reverse_cast: 3097 start: DynamicImportDataToE2p( 3098 end: ) 3099 var_name: "|arg_name|E2p" 3100 3101 3102 - es2panda_arg: 3103 name: '|arg_name|' 3104 type: 3105 name: Accessor 3106 namespace: checker 3107 max_ptr_depth: 0 3108 new_args: 3109 - name: '|arg_name|isGetter' 3110 type: 3111 name: bool 3112 ptr_depth: 0 3113 namespace: 'checker::' 3114 - name: '|arg_name|isSetter' 3115 type: 3116 name: bool 3117 ptr_depth: 0 3118 namespace: 'checker::' 3119 - name: '|arg_name|isExternal' 3120 type: 3121 name: bool 3122 ptr_depth: 0 3123 namespace: 'checker::' 3124 cast: 3125 expression: " 3126 checker::Accessor |arg_name|E2p; 3127 |arg_name|E2p.isGetter = |arg_name|isGetter;\n 3128 |arg_name|E2p.isSetter = |arg_name|isSetter;\n 3129 |arg_name|E2p.isExternal = |arg_name|isExternal;\n" 3130 var_name: "|arg_name|E2p" 3131