1# Copyright (c) 2021-2025 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 apiRes = 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 \t\tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 57 \t\tapiRes[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 apiRes = 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 \t\tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 103 \t\tapiRes[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 apiRes = 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 \t\tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 147 \t\tapiRes[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 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 apiRes = 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 \t\tauto toPush = |reverse_template_nested_expression_1_start|(resultVector|accessor|at(i))|reverse_template_nested_expression_1_end|;\n 195 \t\tapiRes[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 apiRes = 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\tapiRes[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 - es2panda_arg: 244 name: '|arg_name|' 245 type: 246 name: ArenaSet 247 template_args: 248 - type: '|element_type|' 249 max_ptr_depth: 0 250 new_args: 251 - type: '|element_type|' 252 name: '|arg_name|' 253 increase_ptr_depth: 1 254 local_var_name: '|arg_name|' 255 namespace: '' 256 - type: 257 name: size_t 258 name: '|arg_name|Len' 259 return_args: 260 - type: 261 name: size_t 262 ptr_depth: 1 263 name: '|arg_name|Len' 264 cast: 265 expression: "\ 266 \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 267 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 268 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 269 \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 270 \t\t|template_nested_expression_1|\n 271 \t\t\t|arg_name|ArenaSet.insert(|new_args.0.local_var_name|);\n 272 \t\t}" 273 var_name: '|arg_name|ArenaSet' 274 reverse_cast: 275 start: "\n 276 \tauto *ctx = reinterpret_cast<Context *>(context);\n 277 \tauto *ctxAllocator = ctx->allocator;\n 278 \tauto resultSet = " 279 end: ";\n 280 \t*|return_args.0.name| = resultSet|accessor|size();\n 281 \tauto apiRes = 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 282 \tsize_t i = 0;\n 283 \tfor (auto elem : resultSet) {\n 284 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 285 \t\tapiRes[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 286 \t}" 287 288 - es2panda_arg: 289 name: '|arg_name|' 290 type: 291 name: unordered_set 292 namespace: 'std' 293 template_args: 294 - type: '|element_type|' 295 max_ptr_depth: 0 296 new_args: 297 - type: '|element_type|' 298 name: '|arg_name|' 299 increase_ptr_depth: 1 300 local_var_name: '|arg_name|' 301 namespace: '' 302 - type: 303 name: size_t 304 name: '|arg_name|Len' 305 return_args: 306 - type: 307 name: size_t 308 ptr_depth: 1 309 name: '|arg_name|Len' 310 cast: 311 expression: "\ 312 \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 313 {};\n 314 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 315 \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 316 \t\t|template_nested_expression_1|\n 317 \t\t\t|arg_name|Set.insert(|new_args.0.local_var_name|);\n 318 \t\t}" 319 var_name: '|arg_name|Set' 320 reverse_cast: 321 start: "\n 322 \tauto *ctx = reinterpret_cast<Context *>(context);\n 323 \tauto *ctxAllocator = ctx->allocator;\n 324 \tauto resultSet = " 325 end: ";\n 326 \t*|return_args.0.name| = resultSet|accessor|size();\n 327 \tauto apiRes = 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 328 \tsize_t i = 0;\n 329 \tfor (auto elem : resultSet) {\n 330 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 331 \t\tapiRes[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 332 \t}" 333 334 - es2panda_arg: 335 name: '|arg_name|' 336 type: 337 name: unordered_set 338 namespace: 'std' 339 template_args: 340 - type: '|element_type|' 341 max_ptr_depth: 1 342 min_ptr_depth: 1 343 new_args: 344 - type: '|element_type|' 345 name: '|arg_name|' 346 increase_ptr_depth: 1 347 local_var_name: '|arg_name|' 348 namespace: '' 349 - type: 350 name: size_t 351 name: '|arg_name|Len' 352 return_args: 353 - type: 354 name: size_t 355 ptr_depth: 1 356 name: '|arg_name|Len' 357 cast: 358 expression: "\ 359 \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 360 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 361 \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 362 \t\t|template_nested_expression_1|\n 363 \t\t\t|arg_name|Set->insert(|new_args.0.local_var_name|);\n 364 \t\t}" 365 var_name: '|arg_name|Set' 366 reverse_cast: 367 start: "\n 368 \tauto *ctx = reinterpret_cast<Context *>(context);\n 369 \tauto *ctxAllocator = ctx->allocator;\n 370 \tauto resultSet = " 371 end: ";\n 372 \t*|return_args.0.name| = resultSet|accessor|size();\n 373 \tauto apiRes = 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 374 \tsize_t i = 0;\n 375 \tfor (auto elem : resultSet) {\n 376 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 377 \t\tapiRes[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 378 \t}" 379 380 - es2panda_arg: 381 name: '|arg_name|' 382 type: 383 name: set 384 namespace: 'std' 385 template_args: 386 - type: '|element_type|' 387 max_ptr_depth: 0 388 new_args: 389 - type: '|element_type|' 390 name: '|arg_name|' 391 increase_ptr_depth: 1 392 local_var_name: '|arg_name|' 393 namespace: '' 394 - type: 395 name: size_t 396 name: '|arg_name|Len' 397 return_args: 398 - type: 399 name: size_t 400 ptr_depth: 1 401 name: '|arg_name|Len' 402 cast: 403 expression: "\ 404 \tstd::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 405 {};\n 406 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 407 \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 408 \t\t|template_nested_expression_1|\n 409 \t\t\t|arg_name|Set.insert(|new_args.0.local_var_name|);\n 410 \t\t}" 411 var_name: '|arg_name|Set' 412 reverse_cast: 413 start: "\n 414 \tauto *ctx = reinterpret_cast<Context *>(context);\n 415 \tauto *ctxAllocator = ctx->allocator;\n 416 \tauto resultSet = " 417 end: ";\n 418 \t*|return_args.0.name| = resultSet|accessor|size();\n 419 \tauto apiRes = 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 420 \tsize_t i = 0;\n 421 \tfor (auto elem : resultSet) {\n 422 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 423 \t\tapiRes[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 424 \t}" 425 426 - es2panda_arg: 427 name: '|arg_name|' 428 type: 429 name: set 430 namespace: 'std' 431 template_args: 432 - type: '|element_type|' 433 max_ptr_depth: 1 434 min_ptr_depth: 1 435 new_args: 436 - type: '|element_type|' 437 name: '|arg_name|' 438 increase_ptr_depth: 1 439 local_var_name: '|arg_name|' 440 namespace: '' 441 - type: 442 name: size_t 443 name: '|arg_name|Len' 444 return_args: 445 - type: 446 name: size_t 447 ptr_depth: 1 448 name: '|arg_name|Len' 449 cast: 450 expression: "\ 451 \tauto *|arg_name|Set = reinterpret_cast<Context *>(context)->allocator->New<std::set<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|>>();\n 452 \t\tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 453 \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 454 \t\t|template_nested_expression_1|\n 455 \t\t\t|arg_name|Set->insert(|new_args.0.local_var_name|);\n 456 \t\t}" 457 var_name: '|arg_name|Set' 458 reverse_cast: 459 start: "\n 460 \tauto *ctx = reinterpret_cast<Context *>(context);\n 461 \tauto *ctxAllocator = ctx->allocator;\n 462 \tauto resultSet = " 463 end: ";\n 464 \t*|return_args.0.name| = resultSet|accessor|size();\n 465 \tauto apiRes = 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 466 \tsize_t i = 0;\n 467 \tfor (auto elem : resultSet) {\n 468 \t\tauto toPush = |reverse_template_nested_expression_1_start|(elem)|reverse_template_nested_expression_1_end|;\n 469 \t\tapiRes[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 470 \t}" 471 472 - es2panda_arg: 473 name: '|arg_name|' 474 type: 475 name: ArenaUnorderedMap 476 template_args: 477 - type: '|element_type_1|' 478 - type: '|element_type_2|' 479 max_ptr_depth: 0 480 new_args: 481 - type: '|element_type_1|' 482 name: '|arg_name|KeyArray' 483 local_var_name: '|arg_name|KeyArray' 484 increase_ptr_depth: 1 485 - type: '|element_type_2|' 486 name: '|arg_name|ValueArray' 487 local_var_name: '|arg_name|ValueArray' 488 increase_ptr_depth: 1 489 - type: 490 name: size_t 491 name: '|arg_name|Len' 492 return_args: 493 - type: '|element_type_2|' 494 name: 'arenaMapValueArray' 495 increase_ptr_depth: 2 496 - type: 497 name: size_t 498 ptr_depth: 1 499 name: '|arg_name|Len' 500 cast: 501 expression: "\ 502 \tArenaUnorderedMap<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 503 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|ArenaMap 504 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 505 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 506 \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 507 \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 508 \t\t|template_nested_expression_1|\n 509 \t\t|template_nested_expression_2|\n 510 \t\t|arg_name|ArenaMap[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 511 \t}" 512 var_name: '|arg_name|ArenaMap' 513 reverse_cast: 514 start: "\n 515 \tauto *ctx = reinterpret_cast<Context *>(context);\n 516 \tauto *ctxAllocator = ctx->allocator;\n 517 \tauto resultMap = " 518 end: ";\n 519 \t*|return_args.1.name| = resultMap|accessor|size();\n 520 \tauto apiRes = 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 521 \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 522 \tsize_t i = 0;\n 523 \tfor (auto [key, value] : resultMap) {\n 524 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 525 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 526 \t\t++i;\n 527 \t}" 528 529 - es2panda_arg: 530 name: '|arg_name|' 531 type: 532 name: ArenaUnorderedMap 533 template_args: 534 - type: '|element_type_1|' 535 - type: '|element_type_2|' 536 max_ptr_depth: 1 537 min_ptr_depth: 1 538 new_args: 539 - type: '|element_type_1|' 540 name: '|arg_name|KeyArray' 541 local_var_name: '|arg_name|KeyArray' 542 increase_ptr_depth: 1 543 - type: '|element_type_2|' 544 name: '|arg_name|ValueArray' 545 local_var_name: '|arg_name|ValueArray' 546 increase_ptr_depth: 1 547 - type: 548 name: size_t 549 name: '|arg_name|Len' 550 return_args: 551 - type: '|element_type_2|' 552 name: 'arenaMapValueArray' 553 increase_ptr_depth: 2 554 - type: 555 name: size_t 556 ptr_depth: 1 557 name: '|arg_name|Len' 558 cast: 559 expression: "\ 560 \tauto *|arg_name|ArenaMap = reinterpret_cast<Context *>(context)->allocator->New<ArenaUnorderedMap< 561 |new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 562 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|>> 563 (reinterpret_cast<Context *>(context)->allocator->Adapter());\n 564 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 565 \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 566 \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 567 \t\t|template_nested_expression_1|\n 568 \t\t|template_nested_expression_2|\n 569 \t\t(*|arg_name|ArenaMap)[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 570 \t}" 571 var_name: '|arg_name|ArenaMap' 572 reverse_cast: 573 start: "\n 574 \tauto *ctx = reinterpret_cast<Context *>(context);\n 575 \tauto *ctxAllocator = ctx->allocator;\n 576 \tauto resultMap = " 577 end: ";\n 578 \t*|return_args.1.name| = resultMap|accessor|size();\n 579 \tauto apiRes = 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 580 \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 581 \tsize_t i = 0;\n 582 \tfor (auto [key, value] : (*resultMap)) {\n 583 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 584 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 585 \t\t++i;\n 586 \t}" 587 588 - es2panda_arg: 589 name: '|arg_name|' 590 type: 591 name: unordered_map 592 namespace: 'std' 593 template_args: 594 - type: '|element_type_1|' 595 - type: '|element_type_2|' 596 max_ptr_depth: 0 597 new_args: 598 - type: '|element_type_1|' 599 name: '|arg_name|KeyArray' 600 local_var_name: '|arg_name|KeyArray' 601 increase_ptr_depth: 1 602 - type: '|element_type_2|' 603 name: '|arg_name|ValueArray' 604 local_var_name: '|arg_name|ValueArray' 605 increase_ptr_depth: 1 606 - type: 607 name: size_t 608 name: '|arg_name|Len' 609 return_args: 610 - type: '|element_type_2|' 611 name: 'stdMapValueArray' 612 increase_ptr_depth: 2 613 - type: 614 name: size_t 615 ptr_depth: 1 616 name: '|arg_name|Len' 617 cast: 618 expression: "\ 619 \tstd::unordered_map<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 620 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|StdMap 621 {};\n 622 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 623 \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 624 \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 625 \t\t|template_nested_expression_1|\n 626 \t\t|template_nested_expression_2|\n 627 \t\t|arg_name|StdMap[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 628 \t}" 629 var_name: '|arg_name|StdMap' 630 reverse_cast: 631 start: "\n 632 \tauto *ctx = reinterpret_cast<Context *>(context);\n 633 \tauto *ctxAllocator = ctx->allocator;\n 634 \tauto resultMap = " 635 end: ";\n 636 \t*|return_args.1.name| = resultMap|accessor|size();\n 637 \tauto apiRes = 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 638 \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 639 \tsize_t i = 0;\n 640 \tfor (auto [key, value] : resultMap) {\n 641 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 642 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 643 \t\t++i;\n 644 \t}" 645 646 - es2panda_arg: 647 name: '|arg_name|' 648 type: 649 name: unordered_map 650 namespace: std 651 template_args: 652 - type: '|element_type_1|' 653 - type: '|element_type_2|' 654 max_ptr_depth: 1 655 min_ptr_depth: 1 656 new_args: 657 - type: '|element_type_1|' 658 name: '|arg_name|KeyArray' 659 local_var_name: '|arg_name|KeyArray' 660 increase_ptr_depth: 1 661 - type: '|element_type_2|' 662 name: '|arg_name|ValueArray' 663 local_var_name: '|arg_name|ValueArray' 664 increase_ptr_depth: 1 665 - type: 666 name: size_t 667 name: '|arg_name|Len' 668 return_args: 669 - type: '|element_type_2|' 670 name: 'stdMapValueArray' 671 increase_ptr_depth: 2 672 - type: 673 name: size_t 674 ptr_depth: 1 675 name: '|arg_name|Len' 676 cast: 677 expression: "\ 678 \tauto *|arg_name|StdMap = reinterpret_cast<Context *>(context)->allocator->New<std::unordered_map< 679 |new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 680 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|>> 681 ();\n 682 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 683 \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 684 \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 685 \t\t|template_nested_expression_1|\n 686 \t\t|template_nested_expression_2|\n 687 \t\t(*|arg_name|StdMap)[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 688 \t}" 689 var_name: '|arg_name|StdMap' 690 reverse_cast: 691 start: "\n 692 \tauto *ctx = reinterpret_cast<Context *>(context);\n 693 \tauto *ctxAllocator = ctx->allocator;\n 694 \tauto resultMap = " 695 end: ";\n 696 \t*|return_args.1.name| = resultMap|accessor|size();\n 697 \tauto apiRes = 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 698 \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 699 \tsize_t i = 0;\n 700 \tfor (auto [key, value] : (*resultMap)) {\n 701 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 702 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 703 \t\t++i;\n 704 \t}" 705 706 - es2panda_arg: 707 name: '|arg_name|' 708 type: 709 name: ArenaMultiMap 710 template_args: 711 - type: '|element_type_1|' 712 - type: '|element_type_2|' 713 max_ptr_depth: 0 714 new_args: 715 - type: '|element_type_1|' 716 name: '|arg_name|KeyArray' 717 local_var_name: '|arg_name|KeyArray' 718 increase_ptr_depth: 1 719 - type: '|element_type_2|' 720 name: '|arg_name|ValueArray' 721 local_var_name: '|arg_name|ValueArray' 722 increase_ptr_depth: 1 723 - type: 724 name: size_t 725 name: '|arg_name|Len' 726 return_args: 727 - type: '|element_type_2|' 728 name: 'arenaMapValueArray' 729 increase_ptr_depth: 2 730 - type: 731 name: size_t 732 ptr_depth: 1 733 name: '|arg_name|Len' 734 cast: 735 expression: "\ 736 \tArenaMultiMap<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 737 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|ArenaMap 738 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 739 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 740 \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 741 \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 742 \t\t|template_nested_expression_1|\n 743 \t\t|template_nested_expression_2|\n 744 \t\t|arg_name|ArenaMap.emplace(|new_args.0.local_var_name|, |new_args.1.local_var_name|);\n 745 \t}" 746 var_name: '|arg_name|ArenaMap' 747 reverse_cast: 748 start: "\n 749 \tauto *ctx = reinterpret_cast<Context *>(context);\n 750 \tauto *ctxAllocator = ctx->allocator;\n 751 \tauto resultMap = " 752 end: ";\n 753 \t*|return_args.1.name| = resultMap|accessor|size();\n 754 \tauto apiRes = 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 755 \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 756 \tsize_t i = 0;\n 757 \tfor (auto [key, value] : resultMap) {\n 758 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 759 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 760 \t\t++i;\n 761 \t}" 762 763 - es2panda_arg: 764 name: '|arg_name|' 765 type: 766 name: pair 767 template_args: 768 - type: '|element_type_1|' 769 - type: '|element_type_2|' 770 max_ptr_depth: 0 771 new_args: 772 - type: '|element_type_1|' 773 name: '|arg_name|First' 774 local_var_name: '|arg_name|First' 775 - type: '|element_type_2|' 776 name: '|arg_name|Second' 777 local_var_name: '|arg_name|Second' 778 return_args: 779 - type: '|element_type_2|' 780 name: '|arg_name|Second' 781 increase_ptr_depth: 1 782 cast: 783 expression: " /* ERROR! NOT IMPLEMENTED EXPRESSION FOR STD::PAIR */ \n" 784 var_name: '|arg_name|ArenaSet' 785 reverse_cast: 786 start: "\n 787 \tauto *ctx = reinterpret_cast<Context *>(context);\n 788 \t[[maybe_unused]] auto *ctxAllocator = ctx->allocator;\n 789 \tauto resultPair = " 790 end: ";\n 791 \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 792 \tauto apiRes = |reverse_template_nested_expression_1_start|(resultPair|accessor|first)|reverse_template_nested_expression_1_end|;\n 793 " 794 795 - es2panda_arg: 796 name: '|arg_name|' 797 type: 798 name: ArenaMap 799 template_args: 800 - type: '|element_type_1|' 801 - type: '|element_type_2|' 802 max_ptr_depth: 0 803 new_args: 804 - type: '|element_type_1|' 805 name: '|arg_name|KeyArray' 806 local_var_name: '|arg_name|KeyArray' 807 increase_ptr_depth: 1 808 - type: '|element_type_2|' 809 name: '|arg_name|ValueArray' 810 local_var_name: '|arg_name|ValueArray' 811 increase_ptr_depth: 1 812 - type: 813 name: size_t 814 name: '|arg_name|Len' 815 return_args: 816 - type: '|element_type_2|' 817 name: 'arenaMapValueArray' 818 increase_ptr_depth: 2 819 - type: 820 name: size_t 821 ptr_depth: 1 822 name: '|arg_name|Len' 823 cast: 824 expression: "\ 825 \tArenaMap<|new_args.0.namespace||es2panda_arg.type.template_args.0.type.name| |es2panda_arg.type.template_args.0.type.ptr_depth|, 826 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| |es2panda_arg.type.template_args.1.type.ptr_depth|> |arg_name|ArenaMap 827 {reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 828 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 829 \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 830 \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 831 \t\t|template_nested_expression_1|\n 832 \t\t|template_nested_expression_2|\n 833 \t\t|arg_name|ArenaMap[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 834 \t}" 835 var_name: '|arg_name|ArenaMap' 836 reverse_cast: 837 start: "\n 838 \tauto *ctx = reinterpret_cast<Context *>(context);\n 839 \tauto *ctxAllocator = ctx->allocator;\n 840 \tauto resultMap = " 841 end: ";\n 842 \t*|return_args.1.name| = resultMap|accessor|size();\n 843 \tauto apiRes = 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 844 \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 845 \tsize_t i = 0;\n 846 \tfor (auto [key, value] : resultMap) {\n 847 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 848 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 849 \t\t++i;\n 850 \t}" 851 852 - es2panda_arg: 853 name: '|arg_name|' 854 type: 855 name: ArenaMap 856 template_args: 857 - type: '|element_type_1|' 858 - type: '|element_type_2|' 859 max_ptr_depth: 1 860 min_ptr_depth: 1 861 new_args: 862 - type: '|element_type_1|' 863 name: '|arg_name|KeyArray' 864 local_var_name: '|arg_name|KeyArray' 865 increase_ptr_depth: 1 866 - type: '|element_type_2|' 867 name: '|arg_name|ValueArray' 868 local_var_name: '|arg_name|ValueArray' 869 increase_ptr_depth: 1 870 - type: 871 name: size_t 872 name: '|arg_name|Len' 873 return_args: 874 - type: '|element_type_2|' 875 name: 'arenaMapValueArray' 876 increase_ptr_depth: 2 877 - type: 878 name: size_t 879 ptr_depth: 1 880 name: '|arg_name|Len' 881 cast: 882 expression: "\ 883 \tauto *|arg_name|ArenaMap = reinterpret_cast<Context *>(context)->allocator->New<ArenaMap<|new_args.0.namespace| 884 |es2panda_arg.type.template_args.0.type.name||es2panda_arg.type.template_args.0.type.ptr_depth|, 885 |new_args.1.namespace||es2panda_arg.type.template_args.1.type.name| 886 |es2panda_arg.type.template_args.1.type.ptr_depth|>>(reinterpret_cast<Context *>(context)->allocator->Adapter());\n 887 \tfor (size_t i = 0; i < |arg_name|Len; ++i) {\n 888 \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 889 \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 890 \t\t|template_nested_expression_1|\n 891 \t\t|template_nested_expression_2|\n 892 \t\t(*|arg_name|ArenaMap)[|new_args.0.local_var_name|] = |new_args.1.local_var_name|;\n 893 \t}" 894 var_name: '|arg_name|ArenaMap' 895 reverse_cast: 896 start: "\n 897 \tauto *ctx = reinterpret_cast<Context *>(context);\n 898 \tauto *ctxAllocator = ctx->allocator;\n 899 \tauto resultMap = " 900 end: ";\n 901 \t*|return_args.1.name| = resultMap|accessor|size();\n 902 \tauto apiRes = 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 903 \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 904 \tsize_t i = 0;\n 905 \tfor (auto [key, value] : (*resultMap)) {\n 906 \t\tapiRes[i] = |reverse_template_nested_expression_1_start|(key)|reverse_template_nested_expression_1_end|;\n 907 \t\t(*|return_args.0.name|)[i] = |reverse_template_nested_expression_2_start|(value)|reverse_template_nested_expression_2_end|;\n 908 \t\t++i;\n 909 \t}" 910 911 - es2panda_arg: 912 name: '|arg_name|' 913 type: 914 name: shared_ptr 915 namespace: std 916 template_args: 917 - type: '|element_type_1|' 918 max_ptr_depth: 0 919 new_args: 920 - type: '|element_type_1|' 921 name: '|arg_name|Ptr' 922 local_var_name: '|arg_name|Ptr' 923 cast: 924 reverse_cast: 925 start: "\n 926 \tauto resultPtr = " 927 end: ";\n 928 \tauto &resultRef = *resultPtr;\n 929 \tauto *apiRes = |reverse_template_nested_expression_1_start|(resultRef)|reverse_template_nested_expression_1_end|;" 930 931 - es2panda_arg: 932 name: '|arg_name|' 933 type: 934 name: 'ArkTsConfig' 935 min_ptr_depth: 1 936 new_args: 937 - type: 938 name: 'es2panda_ArkTsConfig' 939 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 940 name: '|arg_name|' 941 cast: 942 expression: >- 943 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 944 reinterpret_cast<ArkTsConfig |es2panda_arg.type.ptr_depth|>(|arg_name|); 945 reverse_cast: 946 start: >- 947 reinterpret_cast<?const? es2panda_ArkTsConfig |es2panda_arg.type.ptr_depth|> 948 call_cast: 949 call_var: 950 name: classInstance 951 type: 952 name: es2panda_ArkTsConfig 953 ptr_depth: 1 954 start: >- 955 (reinterpret_cast<?const? ArkTsConfig *>(classInstance))-> 956 constructor_cast: 957 start: >- 958 ctxAllocator->New<ArkTsConfig>( 959 end: ) 960 var_name: '|arg_name|E2p' 961 962 - es2panda_arg: 963 name: '|arg_name|' 964 type: 965 name: 'ArkTsConfig' 966 max_ptr_depth: 0 967 new_args: 968 - type: 969 name: 'es2panda_ArkTsConfig' 970 ptr_depth: 1 971 name: '|arg_name|' 972 cast: 973 reverse_cast: 974 start: >- 975 reinterpret_cast<?const? es2panda_ArkTsConfig *>( 976 reinterpret_cast<Context *>(context)->allocator->New<ArkTsConfig>( 977 end: )) 978 var_name: '|arg_name|E2p' 979 980 - es2panda_arg: 981 name: '|arg_name|' 982 type: 983 name: 'Typed' 984 ptr_depth: '|arg_ptr_depth|' 985 namespace: 'ir' 986 min_ptr_depth: 1 987 new_args: 988 - type: 989 name: 'es2panda_AstNode' 990 ptr_depth: '|arg_ptr_depth|' 991 name: '|arg_name|' 992 namespace: 'ir::' 993 cast: 994 expression: >- 995 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 996 reinterpret_cast<ir::Typed<ir::AstNode> |es2panda_arg.type.ptr_depth|>(|arg_name|); 997 reverse_cast: 998 start: >- 999 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 1000 call_cast: 1001 call_var: 1002 name: classInstance 1003 type: 1004 name: es2panda_AstNode 1005 ptr_depth: 1 1006 start: >- 1007 (reinterpret_cast<?const? ir::Typed<ir::AstNode> *>(classInstance))-> 1008 constructor_cast: 1009 start: >- 1010 ctxAllocator->New<ir::Typed<ir::AstNode>>( 1011 end: ) 1012 var_name: '|arg_name|E2p' 1013 1014 - es2panda_arg: 1015 name: '|arg_name|' 1016 type: '|AstNode|' 1017 min_ptr_depth: 1 1018 new_args: 1019 - type: 1020 name: "es2panda_AstNode" 1021 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1022 name: '|arg_name|' 1023 namespace: 'ir::' 1024 cast: 1025 expression: >- 1026 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1027 reinterpret_cast<ir::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1028 reverse_cast: 1029 start: >- 1030 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 1031 call_cast: 1032 call_var: 1033 name: classInstance 1034 type: 1035 name: es2panda_AstNode 1036 ptr_depth: 1 1037 start: >- 1038 (reinterpret_cast<?const? ir::|es2panda_arg.type.name| *>(classInstance))-> 1039 constructor_cast: 1040 start: >- 1041 ctxAllocator->New<ir::|es2panda_arg.type.name|>( 1042 end: ) 1043 var_name: '|arg_name|E2p' 1044 1045 - es2panda_arg: 1046 name: '|arg_name|' 1047 type: '|AstNode|' 1048 max_ptr_depth: 0 1049 new_args: 1050 - type: 1051 name: "es2panda_AstNode" 1052 ptr_depth: 1 1053 name: '|arg_name|' 1054 namespace: 'ir::' 1055 cast: 1056 expression: "" 1057 var_name: '*reinterpret_cast<ir::|es2panda_arg.type.name| *>(|arg_name|)' 1058 1059 - es2panda_arg: 1060 name: '|arg_name|' 1061 type: '|AstNodeAdditionalChildren|' 1062 min_ptr_depth: 1 1063 new_args: 1064 - type: 1065 name: "es2panda_AstNode" 1066 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1067 name: '|arg_name|' 1068 namespace: 'ir::' 1069 cast: 1070 expression: >- 1071 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1072 reinterpret_cast<ir::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1073 reverse_cast: 1074 start : >- 1075 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 1076 call_cast: 1077 call_var: 1078 name: classInstance 1079 type: 1080 name: es2panda_AstNode 1081 ptr_depth: 1 1082 start: >- 1083 (reinterpret_cast<?const? ir::|es2panda_arg.type.name| *>(classInstance))-> 1084 constructor_cast: 1085 start: >- 1086 ctxAllocator->New<ir::|es2panda_arg.type.name|>( 1087 end: ) 1088 var_name: '|arg_name|E2p' 1089 1090 - es2panda_arg: 1091 name: '|arg_name|' 1092 type: '|AstNodeAdditionalChildren|' 1093 max_ptr_depth: 0 1094 new_args: 1095 - type: 1096 name: "es2panda_AstNode" 1097 ptr_depth: 1 1098 name: '|arg_name|' 1099 namespace: 'ir::' 1100 cast: 1101 expression: "" 1102 var_name: '*reinterpret_cast<ir::|es2panda_arg.type.name| *>(|arg_name|)' 1103 1104 - es2panda_arg: 1105 name: '|arg_name|' 1106 type: '|CodeGen|' 1107 min_ptr_depth: 1 1108 new_args: 1109 - type: 1110 name: "es2panda_CodeGen" 1111 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1112 name: '|arg_name|' 1113 namespace: 'compiler::' 1114 cast: 1115 expression: >- 1116 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1117 reinterpret_cast<compiler::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1118 reverse_cast: 1119 start : >- 1120 reinterpret_cast<?const? es2panda_CodeGen |es2panda_arg.type.ptr_depth|> 1121 call_cast: 1122 call_var: 1123 name: classInstance 1124 type: 1125 name: es2panda_CodeGen 1126 ptr_depth: 1 1127 start: >- 1128 (reinterpret_cast<?const? compiler::|es2panda_arg.type.name| *>(classInstance))-> 1129 constructor_cast: 1130 start: >- 1131 ctxAllocator->New<compiler::|es2panda_arg.type.name|>( 1132 end: ) 1133 var_name: '|arg_name|E2p' 1134 1135 - es2panda_arg: 1136 name: '|arg_name|' 1137 type: '|AstType|' 1138 min_ptr_depth: 1 1139 new_args: 1140 - type: 1141 name: 'es2panda_Type' 1142 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1143 name: '|arg_name|' 1144 namespace: 'checker::' 1145 cast: 1146 expression: >- 1147 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1148 reinterpret_cast<checker::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1149 reverse_cast: 1150 start: >- 1151 reinterpret_cast<?const? es2panda_Type |es2panda_arg.type.ptr_depth|> 1152 call_cast: 1153 call_var: 1154 name: classInstance 1155 type: 1156 name: es2panda_Type 1157 ptr_depth: 1 1158 start: >- 1159 (reinterpret_cast<?const? checker::|es2panda_arg.type.name| *>(classInstance))-> 1160 constructor_cast: 1161 start: >- 1162 ctxAllocator->New<checker::|es2panda_arg.type.name|>( 1163 end: ) 1164 var_name: '|arg_name|E2p' 1165 1166 - es2panda_arg: 1167 name: '|arg_name|' 1168 type: '|AstType|' 1169 max_ptr_depth: 0 1170 new_args: 1171 - type: 1172 name: 'es2panda_Type' 1173 ptr_depth: 1 1174 name: '|arg_name|' 1175 namespace: 'checker::' 1176 cast: 1177 expression: >- 1178 auto &|arg_name|E2p = 1179 *(reinterpret_cast<checker::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|)); 1180 var_name: '|arg_name|E2p' 1181 1182 - es2panda_arg: 1183 name: '|arg_name|' 1184 type: '|AstTypeAdditionalChildren|' 1185 min_ptr_depth: 1 1186 new_args: 1187 - type: 1188 name: "es2panda_Type" 1189 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1190 name: '|arg_name|' 1191 namespace: 'checker::' 1192 cast: 1193 expression: >- 1194 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1195 reinterpret_cast<checker::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1196 reverse_cast: 1197 start : >- 1198 reinterpret_cast<?const? es2panda_Type |es2panda_arg.type.ptr_depth|> 1199 call_cast: 1200 call_var: 1201 name: classInstance 1202 type: 1203 name: es2panda_Type 1204 ptr_depth: 1 1205 start: >- 1206 (reinterpret_cast<?const? checker::|es2panda_arg.type.name| *>(classInstance))-> 1207 constructor_cast: 1208 start: >- 1209 ctxAllocator->New<checker::|es2panda_arg.type.name|>( 1210 end: ) 1211 var_name: '|arg_name|E2p' 1212 1213 - es2panda_arg: 1214 name: '|arg_name|' 1215 type: '|AstTypeAdditionalChildren|' 1216 max_ptr_depth: 0 1217 new_args: 1218 - type: 1219 name: "es2panda_Type" 1220 ptr_depth: 1 1221 name: '|arg_name|' 1222 namespace: 'cheker::' 1223 cast: 1224 expression: "" 1225 var_name: '*reinterpret_cast<checker::|es2panda_arg.type.name| *>(|arg_name|)' 1226 1227 - es2panda_arg: 1228 name: '|arg_name|' 1229 type: 1230 name: 'VerifiedType' 1231 namespace: 'checker' 1232 max_ptr_depth: 0 1233 new_args: 1234 - type: 1235 name: "es2panda_Type" 1236 ptr_depth: 1 1237 name: '|arg_name|' 1238 namespace: 'checker::' 1239 cast: 1240 expression: >- 1241 auto |arg_name|E2p = 1242 static_cast<checker::VerifiedType>( 1243 reinterpret_cast<checker::Type *>(|arg_name|)); 1244 reverse_cast: 1245 start : >- 1246 reinterpret_cast<?const? es2panda_Type *>( 1247 static_cast<?const? checker::Type *> 1248 end: ) 1249 call_cast: 1250 call_var: 1251 name: classInstance 1252 type: 1253 name: es2panda_Type 1254 ptr_depth: 1 1255 start: >- 1256 (static_cast<?const? checker::VerifiedType>( 1257 reinterpret_cast<?const? checker::Type *>(classInstance)))-> 1258 var_name: '|arg_name|E2p' 1259 1260 - es2panda_arg: 1261 name: '|arg_name|' 1262 type: 1263 name: 'AnnotationAllowed' 1264 namespace: 'ir' 1265 min_ptr_depth: 1 1266 new_args: 1267 - type: 1268 name: "es2panda_AstNode" 1269 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1270 name: '|arg_name|' 1271 namespace: 'ir::' 1272 cast: 1273 expression: >- 1274 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1275 reinterpret_cast<ir::AnnotationAllowed<ir::AstNode> |es2panda_arg.type.ptr_depth|>(|arg_name|); 1276 reverse_cast: 1277 start : >- 1278 reinterpret_cast<?const? es2panda_AstNode |es2panda_arg.type.ptr_depth|> 1279 call_cast: 1280 call_var: 1281 name: classInstance 1282 type: 1283 name: es2panda_AstNode 1284 ptr_depth: 1 1285 start: >- 1286 (reinterpret_cast<?const? ir::AnnotationAllowed<ir::AstNode> *>(classInstance))-> 1287 constructor_cast: 1288 start: >- 1289 ctxAllocator->New<ir::AnnotationAllowed<ir::AstNode>>( 1290 end: ) 1291 var_name: '|arg_name|E2p' 1292 1293 - es2panda_arg: 1294 name: '|arg_name|' 1295 type: 1296 name: 'AnnotationAllowed' 1297 namespace: 'ir' 1298 max_ptr_depth: 0 1299 new_args: 1300 - type: 1301 name: "es2panda_AstNode" 1302 ptr_depth: 1 1303 name: '|arg_name|' 1304 namespace: 'ir::' 1305 cast: 1306 expression: "" 1307 var_name: '*reinterpret_cast<ir::AnnotationAllowed<ir::AstNode> *>(|arg_name|)' 1308 1309 - es2panda_arg: 1310 name: '|arg_name|' 1311 type: 1312 name: TypeRelation 1313 namespace: 'checker' 1314 max_ptr_depth: 0 1315 new_args: 1316 - type: 1317 name: "es2panda_TypeRelation" 1318 ptr_depth: 1 1319 name: '|arg_name|' 1320 namespace: 'cheker::' 1321 cast: 1322 expression: "" 1323 var_name: '*reinterpret_cast<checker::TypeRelation *>(|arg_name|)' 1324 1325 - es2panda_arg: 1326 name: '|arg_name|' 1327 type: 1328 name: TypeRelation 1329 namespace: 'checker' 1330 min_ptr_depth: 1 1331 new_args: 1332 - type: 1333 name: "es2panda_TypeRelation" 1334 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1335 name: '|arg_name|' 1336 namespace: 'checker::' 1337 cast: 1338 expression: >- 1339 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1340 reinterpret_cast<checker::TypeRelation |es2panda_arg.type.ptr_depth|>(|arg_name|); 1341 reverse_cast: 1342 start : >- 1343 reinterpret_cast<?const? es2panda_TypeRelation |es2panda_arg.type.ptr_depth|> 1344 call_cast: 1345 call_var: 1346 name: classInstance 1347 type: 1348 name: es2panda_TypeRelation 1349 ptr_depth: 1 1350 start: >- 1351 (reinterpret_cast<?const? checker::TypeRelation *>(classInstance))-> 1352 constructor_cast: 1353 start: >- 1354 ctxAllocator->New<checker::TypeRelation>( 1355 end: ) 1356 var_name: '|arg_name|E2p' 1357 1358 - es2panda_arg: 1359 name: '|arg_name|' 1360 type: 1361 name: IndexInfo 1362 namespace: 'checker' 1363 max_ptr_depth: 0 1364 new_args: 1365 - type: 1366 name: "es2panda_IndexInfo" 1367 ptr_depth: 1 1368 name: '|arg_name|' 1369 namespace: 'cheker::' 1370 cast: 1371 expression: "" 1372 var_name: '*reinterpret_cast<checker::IndexInfo *>(|arg_name|)' 1373 1374 - es2panda_arg: 1375 name: '|arg_name|' 1376 type: 1377 name: IndexInfo 1378 namespace: 'checker' 1379 min_ptr_depth: 1 1380 new_args: 1381 - type: 1382 name: "es2panda_IndexInfo" 1383 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1384 name: '|arg_name|' 1385 namespace: 'checker::' 1386 cast: 1387 expression: >- 1388 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1389 reinterpret_cast<checker::IndexInfo |es2panda_arg.type.ptr_depth|>(|arg_name|); 1390 reverse_cast: 1391 start : >- 1392 reinterpret_cast<?const? es2panda_IndexInfo |es2panda_arg.type.ptr_depth|> 1393 call_cast: 1394 call_var: 1395 name: classInstance 1396 type: 1397 name: es2panda_IndexInfo 1398 ptr_depth: 1 1399 start: >- 1400 (reinterpret_cast<?const? checker::IndexInfo *>(classInstance))-> 1401 constructor_cast: 1402 start: >- 1403 ctxAllocator->New<checker::IndexInfo>( 1404 end: ) 1405 var_name: '|arg_name|E2p' 1406 1407 - es2panda_arg: 1408 name: '|arg_name|' 1409 type: 1410 name: GlobalTypesHolder 1411 namespace: 'checker' 1412 max_ptr_depth: 0 1413 new_args: 1414 - type: 1415 name: "es2panda_GlobalTypesHolder" 1416 ptr_depth: 1 1417 name: '|arg_name|' 1418 namespace: 'cheker::' 1419 cast: 1420 expression: "" 1421 var_name: '*reinterpret_cast<checker::GlobalTypesHolder *>(|arg_name|)' 1422 1423 - es2panda_arg: 1424 name: '|arg_name|' 1425 type: 1426 name: GlobalTypesHolder 1427 namespace: 'checker' 1428 min_ptr_depth: 1 1429 new_args: 1430 - type: 1431 name: "es2panda_GlobalTypesHolder" 1432 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1433 name: '|arg_name|' 1434 namespace: 'checker::' 1435 cast: 1436 expression: >- 1437 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1438 reinterpret_cast<checker::GlobalTypesHolder |es2panda_arg.type.ptr_depth|>(|arg_name|); 1439 reverse_cast: 1440 start : >- 1441 reinterpret_cast<?const? es2panda_GlobalTypesHolder |es2panda_arg.type.ptr_depth|> 1442 call_cast: 1443 call_var: 1444 name: classInstance 1445 type: 1446 name: es2panda_GlobalTypesHolder 1447 ptr_depth: 1 1448 start: >- 1449 (reinterpret_cast<?const? checker::GlobalTypesHolder *>(classInstance))-> 1450 constructor_cast: 1451 start: >- 1452 ctxAllocator->New<checker::GlobalTypesHolder>( 1453 end: ) 1454 var_name: '|arg_name|E2p' 1455 1456 - es2panda_arg: 1457 name: '|arg_name|' 1458 type: 1459 name: ObjectDescriptor 1460 namespace: 'checker' 1461 max_ptr_depth: 0 1462 new_args: 1463 - type: 1464 name: "es2panda_ObjectDescriptor" 1465 ptr_depth: 1 1466 name: '|arg_name|' 1467 namespace: 'cheker::' 1468 cast: 1469 expression: "" 1470 var_name: '*reinterpret_cast<checker::ObjectDescriptor *>(|arg_name|)' 1471 1472 - es2panda_arg: 1473 name: '|arg_name|' 1474 type: 1475 name: ObjectDescriptor 1476 namespace: 'checker' 1477 min_ptr_depth: 1 1478 new_args: 1479 - type: 1480 name: "es2panda_ObjectDescriptor" 1481 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1482 name: '|arg_name|' 1483 namespace: 'checker::' 1484 cast: 1485 expression: >- 1486 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1487 reinterpret_cast<checker::ObjectDescriptor |es2panda_arg.type.ptr_depth|>(|arg_name|); 1488 reverse_cast: 1489 start : >- 1490 reinterpret_cast<?const? es2panda_ObjectDescriptor |es2panda_arg.type.ptr_depth|> 1491 call_cast: 1492 call_var: 1493 name: classInstance 1494 type: 1495 name: es2panda_ObjectDescriptor 1496 ptr_depth: 1 1497 start: >- 1498 (reinterpret_cast<?const? checker::ObjectDescriptor *>(classInstance))-> 1499 constructor_cast: 1500 start: >- 1501 ctxAllocator->New<checker::ObjectDescriptor>( 1502 end: ) 1503 var_name: '|arg_name|E2p' 1504 1505 - es2panda_arg: 1506 name: '|arg_name|' 1507 type: 1508 name: UType 1509 namespace: checker 1510 new_args: 1511 - type: 1512 name: int32_t 1513 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1514 name: '|arg_name|' 1515 cast: 1516 expression: 1517 reverse_cast: 1518 start : >- 1519 reinterpret_cast<?const? int32_t |es2panda_arg.type.ptr_depth|> 1520 var_name: '|arg_name|' 1521 1522 - es2panda_arg: 1523 name: '|arg_name|' 1524 type: 1525 name: TupleSizeType 1526 namespace: checker 1527 new_args: 1528 - type: 1529 name: size_t 1530 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1531 name: '|arg_name|' 1532 cast: 1533 expression: 1534 reverse_cast: 1535 start : >- 1536 reinterpret_cast<?const? size_t |es2panda_arg.type.ptr_depth|> 1537 var_name: '|arg_name|' 1538 1539 - es2panda_arg: 1540 name: '|arg_name|' 1541 type: '|Variable|' 1542 min_ptr_depth: 1 1543 new_args: 1544 - type: 1545 name: 'es2panda_Variable' 1546 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1547 name: '|arg_name|' 1548 namespace: 'varbinder::' 1549 cast: 1550 expression: >- 1551 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1552 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1553 reverse_cast: 1554 start: >- 1555 reinterpret_cast<?const? es2panda_Variable |es2panda_arg.type.ptr_depth|> 1556 call_cast: 1557 call_var: 1558 name: classInstance 1559 type: 1560 name: es2panda_Variable 1561 ptr_depth: 1 1562 start: >- 1563 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1564 constructor_cast: 1565 start: >- 1566 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1567 end: ) 1568 var_name: '|arg_name|E2p' 1569 1570 - es2panda_arg: 1571 name: '|arg_name|' 1572 type: '|Enum|' 1573 max_ptr_depth: 0 1574 new_args: 1575 - type: 1576 name: 'Es2panda|es2panda_arg.type.name|' 1577 name: '|arg_name|' 1578 cast: 1579 expression: >- 1580 auto |arg_name|E2p = E2pToIr|es2panda_arg.type.name|(|arg_name|); 1581 reverse_cast: 1582 start: >- 1583 IrToE2p|es2panda_arg.type.name| 1584 var_name: '|arg_name|E2p' 1585 1586 - es2panda_arg: 1587 name: '|arg_name|' 1588 type: '|Scope|' 1589 min_ptr_depth: 1 1590 new_args: 1591 - type: 1592 name: "es2panda_Scope" 1593 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1594 name: '|arg_name|' 1595 namespace: 'varbinder::' 1596 cast: 1597 expression: >- 1598 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1599 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1600 reverse_cast: 1601 start : >- 1602 reinterpret_cast<?const? es2panda_Scope |es2panda_arg.type.ptr_depth|> 1603 call_cast: 1604 call_var: 1605 name: classInstance 1606 type: 1607 name: es2panda_Scope 1608 ptr_depth: 1 1609 start: >- 1610 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1611 constructor_cast: 1612 start: >- 1613 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1614 end: ) 1615 var_name: '|arg_name|E2p' 1616 1617 - es2panda_arg: 1618 name: '|arg_name|' 1619 type: '|Scope|' 1620 max_ptr_depth: 0 1621 new_args: 1622 - type: 1623 name: "es2panda_Scope" 1624 ptr_depth: 1 1625 name: '|arg_name|' 1626 namespace: 'varbinder::' 1627 cast: 1628 expression: "" 1629 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1630 1631 - es2panda_arg: 1632 name: '|arg_name|' 1633 type: '|Declaration|' 1634 min_ptr_depth: 1 1635 new_args: 1636 - type: 1637 name: "es2panda_Declaration" 1638 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1639 name: '|arg_name|' 1640 namespace: 'varbinder::' 1641 cast: 1642 expression: >- 1643 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1644 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1645 reverse_cast: 1646 start : >- 1647 reinterpret_cast<?const? es2panda_Declaration |es2panda_arg.type.ptr_depth|> 1648 call_cast: 1649 call_var: 1650 name: classInstance 1651 type: 1652 name: es2panda_Declaration 1653 ptr_depth: 1 1654 start: >- 1655 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1656 constructor_cast: 1657 start: >- 1658 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1659 end: ) 1660 var_name: '|arg_name|E2p' 1661 1662 - es2panda_arg: 1663 name: '|arg_name|' 1664 type: '|Declaration|' 1665 max_ptr_depth: 0 1666 new_args: 1667 - type: 1668 name: "es2panda_Declaration" 1669 ptr_depth: 1 1670 name: '|arg_name|' 1671 namespace: 'varbinder::' 1672 cast: 1673 expression: "" 1674 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1675 1676 - es2panda_arg: 1677 name: '|arg_name|' 1678 type: 1679 name: 'RecordTable' 1680 namespace: varbinder 1681 min_ptr_depth: 1 1682 new_args: 1683 - type: 1684 name: "es2panda_RecordTable" 1685 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1686 name: '|arg_name|' 1687 namespace: 'varbinder::' 1688 cast: 1689 expression: >- 1690 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1691 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1692 reverse_cast: 1693 start : >- 1694 reinterpret_cast<?const? es2panda_RecordTable |es2panda_arg.type.ptr_depth|> 1695 call_cast: 1696 call_var: 1697 name: classInstance 1698 type: 1699 name: es2panda_RecordTable 1700 ptr_depth: 1 1701 start: >- 1702 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1703 constructor_cast: 1704 start: >- 1705 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1706 end: ) 1707 var_name: '|arg_name|E2p' 1708 1709 - es2panda_arg: 1710 name: '|arg_name|' 1711 type: 1712 name: 'RecordTable' 1713 namespace: varbinder 1714 max_ptr_depth: 0 1715 new_args: 1716 - type: 1717 name: "es2panda_RecordTable" 1718 ptr_depth: 1 1719 name: '|arg_name|' 1720 namespace: 'varbinder::' 1721 cast: 1722 expression: "" 1723 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1724 1725 - es2panda_arg: 1726 name: '|arg_name|' 1727 type: 1728 name: 'BoundContext' 1729 namespace: varbinder 1730 min_ptr_depth: 1 1731 new_args: 1732 - type: 1733 name: "es2panda_BoundContext" 1734 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1735 name: '|arg_name|' 1736 namespace: 'varbinder::' 1737 cast: 1738 expression: >- 1739 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1740 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1741 reverse_cast: 1742 start : >- 1743 reinterpret_cast<?const? es2panda_BoundContext |es2panda_arg.type.ptr_depth|> 1744 call_cast: 1745 call_var: 1746 name: classInstance 1747 type: 1748 name: es2panda_BoundContext 1749 ptr_depth: 1 1750 start: >- 1751 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1752 constructor_cast: 1753 start: >- 1754 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1755 end: ) 1756 var_name: '|arg_name|E2p' 1757 1758 - es2panda_arg: 1759 name: '|arg_name|' 1760 type: 1761 name: 'BoundContext' 1762 namespace: varbinder 1763 max_ptr_depth: 0 1764 new_args: 1765 - type: 1766 name: "es2panda_BoundContext" 1767 ptr_depth: 1 1768 name: '|arg_name|' 1769 namespace: 'varbinder::' 1770 cast: 1771 expression: "" 1772 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1773 1774 - es2panda_arg: 1775 name: '|arg_name|' 1776 type: 1777 name: 'ConstScopeFindResult' 1778 namespace: varbinder 1779 min_ptr_depth: 1 1780 new_args: 1781 - type: 1782 name: "es2panda_ScopeFindResult" 1783 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1784 name: '|arg_name|' 1785 namespace: 'varbinder::' 1786 cast: 1787 expression: >- 1788 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1789 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1790 reverse_cast: 1791 start : >- 1792 reinterpret_cast<?const? es2panda_ScopeFindResult |es2panda_arg.type.ptr_depth|> 1793 call_cast: 1794 call_var: 1795 name: classInstance 1796 type: 1797 name: es2panda_ScopeFindResult 1798 ptr_depth: 1 1799 start: >- 1800 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1801 constructor_cast: 1802 start: >- 1803 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1804 end: ) 1805 var_name: '|arg_name|E2p' 1806 1807 - es2panda_arg: 1808 name: '|arg_name|' 1809 type: 1810 name: 'ConstScopeFindResult' 1811 namespace: varbinder 1812 max_ptr_depth: 0 1813 new_args: 1814 - type: 1815 name: "es2panda_ScopeFindResult" 1816 ptr_depth: 1 1817 name: '|arg_name|' 1818 namespace: 'varbinder::' 1819 cast: 1820 expression: "" 1821 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1822 reverse_cast: 1823 start: >- 1824 reinterpret_cast<?const? es2panda_ScopeFindResult *>( 1825 reinterpret_cast<Context *>(context)->allocator->New<varbinder::ConstScopeFindResult>( 1826 end: '))' 1827 1828 - es2panda_arg: 1829 name: '|arg_name|' 1830 type: 1831 name: 'ScopeFindResult' 1832 namespace: varbinder 1833 min_ptr_depth: 1 1834 new_args: 1835 - type: 1836 name: "es2panda_ScopeFindResult" 1837 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1838 name: '|arg_name|' 1839 namespace: 'varbinder::' 1840 cast: 1841 expression: >- 1842 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1843 reinterpret_cast<varbinder::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1844 reverse_cast: 1845 start : >- 1846 reinterpret_cast<?const? es2panda_ScopeFindResult |es2panda_arg.type.ptr_depth|> 1847 call_cast: 1848 call_var: 1849 name: classInstance 1850 type: 1851 name: es2panda_ScopeFindResult 1852 ptr_depth: 1 1853 start: >- 1854 (reinterpret_cast<?const? varbinder::|es2panda_arg.type.name| *>(classInstance))-> 1855 constructor_cast: 1856 start: >- 1857 ctxAllocator->New<varbinder::|es2panda_arg.type.name|>( 1858 end: ) 1859 var_name: '|arg_name|E2p' 1860 1861 - es2panda_arg: 1862 name: '|arg_name|' 1863 type: 1864 name: 'ScopeFindResult' 1865 namespace: varbinder 1866 max_ptr_depth: 0 1867 new_args: 1868 - type: 1869 name: "es2panda_ScopeFindResult" 1870 ptr_depth: 1 1871 name: '|arg_name|' 1872 namespace: 'varbinder::' 1873 cast: 1874 expression: "" 1875 var_name: '*reinterpret_cast<varbinder::|es2panda_arg.type.name| *>(|arg_name|)' 1876 reverse_cast: 1877 start: >- 1878 reinterpret_cast<?const? es2panda_ScopeFindResult *>( 1879 reinterpret_cast<Context *>(context)->allocator->New<varbinder::ScopeFindResult>( 1880 end: '))' 1881 1882 - es2panda_arg: 1883 name: '|arg_name|' 1884 type: 1885 name: 'BindingProps' 1886 namespace: varbinder 1887 min_ptr_depth: 1 1888 new_args: 1889 - type: 1890 name: "es2panda_BindingProps" 1891 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 1892 name: '|arg_name|' 1893 namespace: 'varbinder::ClassScope::' 1894 cast: 1895 expression: >- 1896 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 1897 reinterpret_cast<varbinder::ClassScope::|es2panda_arg.type.name| |es2panda_arg.type.ptr_depth|>(|arg_name|); 1898 reverse_cast: 1899 start : >- 1900 reinterpret_cast<?const? es2panda_BindingProps |es2panda_arg.type.ptr_depth|> 1901 call_cast: 1902 call_var: 1903 name: classInstance 1904 type: 1905 name: es2panda_BindingProps 1906 ptr_depth: 1 1907 start: >- 1908 (reinterpret_cast<?const? varbinder::ClassScope::|es2panda_arg.type.name| *>(classInstance))-> 1909 constructor_cast: 1910 start: >- 1911 ctxAllocator->New<varbinder::ClassScope::|es2panda_arg.type.name|>( 1912 end: ) 1913 var_name: '|arg_name|E2p' 1914 1915 - es2panda_arg: 1916 name: '|arg_name|' 1917 type: 1918 name: 'BindingProps' 1919 namespace: varbinder 1920 max_ptr_depth: 0 1921 new_args: 1922 - type: 1923 name: "es2panda_BindingProps" 1924 ptr_depth: 1 1925 name: '|arg_name|' 1926 namespace: 'varbinder::ClassScope::' 1927 cast: 1928 expression: "" 1929 var_name: '*reinterpret_cast<varbinder::ClassScope::|es2panda_arg.type.name| *>(|arg_name|)' 1930 reverse_cast: 1931 start: >- 1932 reinterpret_cast<?const? es2panda_BindingProps *>( 1933 reinterpret_cast<Context *>(context)->allocator->New<varbinder::ClassScope::BindingProps>( 1934 end: '))' 1935 1936 - es2panda_arg: 1937 name: '|arg_name|' 1938 type: 1939 name: Checker 1940 namespace: 'checker' 1941 min_ptr_depth: 1 1942 max_ptr_depth: 1 1943 new_args: 1944 cast: 1945 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->checker; 1946 call_cast: 1947 start: >- 1948 (reinterpret_cast<Context *>(context)->checker)-> 1949 var_name: '|arg_name|E2p' 1950 1951 - es2panda_arg: 1952 name: '|arg_name|' 1953 type: 1954 name: SemanticAnalyzer 1955 namespace: 'checker' 1956 min_ptr_depth: 1 1957 max_ptr_depth: 1 1958 new_args: 1959 cast: 1960 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->analyzer; 1961 call_cast: 1962 start: >- 1963 (reinterpret_cast<Context *>(context)->analyzer)-> 1964 var_name: '|arg_name|E2p' 1965 1966 - es2panda_arg: 1967 name: '|arg_name|' 1968 type: 1969 name: Context 1970 namespace: 'public_lib' 1971 min_ptr_depth: 1 1972 max_ptr_depth: 1 1973 new_args: 1974 cast: 1975 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context); 1976 var_name: '|arg_name|E2p' 1977 1978 - es2panda_arg: 1979 name: '|arg_name|' 1980 type: 1981 name: Context 1982 namespace: 'public_lib' 1983 min_ptr_depth: 0 1984 max_ptr_depth: 0 1985 new_args: 1986 cast: 1987 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = *(reinterpret_cast<Context *>(context)); 1988 var_name: '|arg_name|E2p' 1989 1990 - es2panda_arg: 1991 name: '|arg_name|' 1992 type: 1993 name: ETSChecker 1994 namespace: 'checker' 1995 min_ptr_depth: 1 1996 max_ptr_depth: 1 1997 new_args: 1998 cast: 1999 expression: >- 2000 auto *|arg_name|E2p = reinterpret_cast<Context *>(context)->checker->AsETSChecker(); 2001 call_cast: 2002 start: >- 2003 (reinterpret_cast<Context *>(context)->checker->AsETSChecker())-> 2004 var_name: '|arg_name|E2p' 2005 2006 - es2panda_arg: 2007 name: '|arg_name|' 2008 type: 2009 name: ETSParser 2010 namespace: 'parser' 2011 min_ptr_depth: 1 2012 max_ptr_depth: 1 2013 new_args: 2014 cast: 2015 expression: >- 2016 auto *|arg_name|E2p = reinterpret_cast<Context *>(context)->parser->AsETSParser(); 2017 call_cast: 2018 start: >- 2019 (reinterpret_cast<Context *>(context)->parser->AsETSParser())-> 2020 var_name: '|arg_name|E2p' 2021 2022 - es2panda_arg: 2023 name: '|arg_name|' 2024 type: 2025 name: VarBinder 2026 namespace: 'varbinder' 2027 min_ptr_depth: 1 2028 max_ptr_depth: 1 2029 new_args: 2030 cast: 2031 expression: >- 2032 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->parserProgram->VarBinder(); 2033 call_cast: 2034 start: >- 2035 (reinterpret_cast<Context *>(context)->parserProgram->VarBinder())-> 2036 var_name: '|arg_name|E2p' 2037 2038 - es2panda_arg: 2039 name: '|arg_name|' 2040 type: 2041 name: ETSBinder 2042 namespace: 'varbinder' 2043 min_ptr_depth: 1 2044 max_ptr_depth: 1 2045 new_args: 2046 cast: 2047 expression: >- 2048 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->parserProgram->VarBinder()->AsETSBinder(); 2049 call_cast: 2050 start: >- 2051 (reinterpret_cast<Context *>(context)->parserProgram->VarBinder()->AsETSBinder())-> 2052 var_name: '|arg_name|E2p' 2053 2054 - es2panda_arg: 2055 name: '|arg_name|' 2056 type: 2057 name: ArenaAllocator 2058 min_ptr_depth: 1 2059 max_ptr_depth: 1 2060 new_args: 2061 cast: 2062 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->allocator; 2063 var_name: '|arg_name|E2p' 2064 2065 - es2panda_arg: 2066 name: '|arg_name|' 2067 type: 2068 name: size_type 2069 namespace: VariableMap 2070 max_ptr_depth: 0 2071 new_args: 2072 - type: 2073 name: size_t 2074 ptr_depth: 0 2075 name: '|arg_name|' 2076 cast: 2077 expression: varbinder::VariableMap::size_type |arg_name|E2p = |arg_name|; 2078 reverse_cast: 2079 start : static_cast<?const? size_t> 2080 var_name: '|arg_name|E2p' 2081 2082 - es2panda_arg: 2083 name: '|arg_name|' 2084 type: 2085 name: Program 2086 namespace: 'pandasm' 2087 min_ptr_depth: 1 2088 max_ptr_depth: 1 2089 new_args: 2090 cast: 2091 expression: auto |es2panda_arg.type.ptr_depth||arg_name|E2p = reinterpret_cast<Context *>(context)->program; 2092 var_name: '|arg_name|E2p' 2093 2094 - es2panda_arg: 2095 name: '|arg_name|' 2096 type: 2097 name: Program 2098 namespace: 'parser' 2099 min_ptr_depth: 1 2100 new_args: 2101 - type: 2102 name: "es2panda_Program" 2103 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2104 name: '|arg_name|' 2105 namespace: "parser::" 2106 cast: 2107 expression: >- 2108 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2109 reinterpret_cast<parser::Program *>(|arg_name|); 2110 var_name: '|arg_name|E2p' 2111 reverse_cast: 2112 start: reinterpret_cast<?const? es2panda_Program *> 2113 call_cast: 2114 call_var: 2115 name: classInstance 2116 type: 2117 name: es2panda_Program 2118 ptr_depth: 1 2119 start: >- 2120 (reinterpret_cast<?const? parser::Program *>(classInstance))-> 2121 2122 - es2panda_arg: 2123 name: '|arg_name|' 2124 type: 2125 name: Program 2126 namespace: 'parser' 2127 max_ptr_depth: 0 2128 new_args: 2129 - type: 2130 name: "es2panda_Program" 2131 ptr_depth: 1 2132 name: '|arg_name|' 2133 namespace: "parser::" 2134 cast: 2135 expression: auto &|arg_name|E2p = *reinterpret_cast<parser::Program *>(|arg_name|); 2136 var_name: '|arg_name|E2p' 2137 reverse_cast: 2138 start: >- 2139 reinterpret_cast<?const? es2panda_Program *>( 2140 reinterpret_cast<Context *>(context)->allocator->New<parser::Program>( 2141 end: '))' 2142 2143 - es2panda_arg: 2144 name: '|arg_name|' 2145 type: 2146 name: 'FunctionSignature' 2147 namespace: 'ir' 2148 min_ptr_depth: 1 2149 new_args: 2150 - type: 2151 name: "es2panda_FunctionSignature" 2152 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2153 name: '|arg_name|' 2154 namespace: "ir::" 2155 cast: 2156 expression: >- 2157 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2158 reinterpret_cast<ir::FunctionSignature |es2panda_arg.type.ptr_depth|>(|arg_name|); 2159 reverse_cast: 2160 start: >- 2161 reinterpret_cast<?const? es2panda_FunctionSignature |es2panda_arg.type.ptr_depth|> 2162 call_cast: 2163 call_var: 2164 name: classInstance 2165 type: 2166 name: es2panda_FunctionSignature 2167 ptr_depth: 1 2168 start: >- 2169 (reinterpret_cast<?const? ir::FunctionSignature *>(classInstance))-> 2170 constructor_cast: 2171 start: >- 2172 ctxAllocator->New<ir::FunctionSignature>( 2173 end: ) 2174 var_name: '|arg_name|E2p' 2175 2176 - es2panda_arg: 2177 name: '|arg_name|' 2178 type: 2179 name: 'FunctionSignature' 2180 namespace: 'ir' 2181 max_ptr_depth: 0 2182 new_args: 2183 - type: 2184 name: "es2panda_FunctionSignature" 2185 ptr_depth: 1 2186 name: '|arg_name|' 2187 namespace: "ir::" 2188 cast: 2189 expression: '' 2190 var_name: 'std::forward<ir::FunctionSignature>(*reinterpret_cast<ir::FunctionSignature *>(|arg_name|))' 2191 reverse_cast: 2192 start: >- 2193 reinterpret_cast<?const? es2panda_FunctionSignature *>( 2194 reinterpret_cast<Context *>(context)->allocator->New<ir::FunctionSignature>( 2195 end: '))' 2196 2197 - es2panda_arg: 2198 name: '|arg_name|' 2199 type: 2200 name: 'Language' 2201 min_ptr_depth: 1 2202 new_args: 2203 cast: 2204 expression: >- 2205 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2206 reinterpret_cast<Context *>(context)->allocator-> 2207 New<Language |es2panda_arg.type.ptr_depth|>(Language::Id::ETS); 2208 var_name: '|arg_name|E2p' 2209 2210 - es2panda_arg: 2211 name: '|arg_name|' 2212 type: 2213 name: 'Language' 2214 max_ptr_depth: 0 2215 new_args: 2216 cast: 2217 expression: >- 2218 ark::es2panda::Language |arg_name|E2p {Language::Id::ETS}; 2219 var_name: '|arg_name|E2p' 2220 2221 - es2panda_arg: 2222 name: '|arg_name|' 2223 type: 2224 name: 'ScriptExtension' 2225 min_ptr_depth: 1 2226 new_args: 2227 cast: 2228 expression: >- 2229 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2230 reinterpret_cast<Context *>(context)->allocator-> 2231 New<ScriptExtension |es2panda_arg.type.ptr_depth|>(ScriptExtension::ETS); 2232 var_name: '|arg_name|E2p' 2233 2234 - es2panda_arg: 2235 name: '|arg_name|' 2236 type: 2237 name: 'ScriptExtension' 2238 max_ptr_depth: 0 2239 new_args: 2240 cast: 2241 expression: >- 2242 ark::es2panda::ScriptExtension |arg_name|E2p {ScriptExtension::ETS}; 2243 var_name: '|arg_name|E2p' 2244 2245 - es2panda_arg: 2246 name: '|arg_name|' 2247 type: 2248 name: 'SourcePosition' 2249 namespace: 'lexer' 2250 min_ptr_depth: 1 2251 new_args: 2252 - type: 2253 name: "es2panda_SourcePosition" 2254 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2255 name: '|arg_name|' 2256 namespace: 'lexer::' 2257 cast: 2258 expression: >- 2259 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2260 reinterpret_cast<lexer::SourcePosition |es2panda_arg.type.ptr_depth|>(|arg_name|); 2261 reverse_cast: 2262 start : >- 2263 reinterpret_cast<?const? es2panda_SourcePosition |es2panda_arg.type.ptr_depth|> 2264 call_cast: 2265 call_var: 2266 name: classInstance 2267 type: 2268 name: es2panda_SourcePosition 2269 ptr_depth: 1 2270 start: >- 2271 (reinterpret_cast<?const? lexer::SourcePosition *>(classInstance))-> 2272 constructor_cast: 2273 start: >- 2274 ctxAllocator->New<lexer::SourcePosition>( 2275 end: ) 2276 var_name: '|arg_name|E2p' 2277 2278 - es2panda_arg: 2279 name: '|arg_name|' 2280 type: 2281 name: 'SourcePosition' 2282 namespace: 'lexer' 2283 max_ptr_depth: 0 2284 new_args: 2285 - type: 2286 name: "es2panda_SourcePosition" 2287 ptr_depth: 1 2288 name: '|arg_name|' 2289 namespace: 'lexer::' 2290 cast: 2291 expression: >- 2292 auto &|arg_name|E2p = *reinterpret_cast<lexer::SourcePosition *>(|arg_name|); 2293 reverse_cast: 2294 start: >- 2295 reinterpret_cast<?const? es2panda_SourcePosition *>( 2296 reinterpret_cast<Context *>(context)->allocator->New<lexer::SourcePosition>( 2297 end: '))' 2298 var_name: '|arg_name|E2p' 2299 2300 - es2panda_arg: 2301 name: '|arg_name|' 2302 type: 2303 name: 'SourceRange' 2304 namespace: 'lexer' 2305 min_ptr_depth: 1 2306 new_args: 2307 - type: 2308 name: "es2panda_SourceRange" 2309 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2310 name: '|arg_name|' 2311 namespace: 'lexer::' 2312 cast: 2313 expression: >- 2314 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2315 reinterpret_cast<lexer::SourceRange |es2panda_arg.type.ptr_depth|>(|arg_name|); 2316 reverse_cast: 2317 start : >- 2318 reinterpret_cast<?const? es2panda_SourceRange |es2panda_arg.type.ptr_depth|> 2319 call_cast: 2320 call_var: 2321 name: classInstance 2322 type: 2323 name: es2panda_SourceRange 2324 ptr_depth: 1 2325 start: >- 2326 (reinterpret_cast<?const? lexer::SourceRange *>(classInstance))-> 2327 constructor_cast: 2328 start: >- 2329 ctxAllocator->New<lexer::SourceRange>( 2330 end: ) 2331 var_name: '|arg_name|E2p' 2332 2333 - es2panda_arg: 2334 name: '|arg_name|' 2335 type: 2336 name: 'SourceRange' 2337 namespace: 'lexer' 2338 max_ptr_depth: 0 2339 new_args: 2340 - type: 2341 name: "es2panda_SourceRange" 2342 ptr_depth: 1 2343 name: '|arg_name|' 2344 namespace: 'lexer::' 2345 cast: 2346 expression: >- 2347 auto &|arg_name|E2p = *reinterpret_cast<lexer::SourceRange *>(|arg_name|); 2348 reverse_cast: 2349 start: >- 2350 reinterpret_cast<?const? es2panda_SourceRange *>( 2351 reinterpret_cast<Context *>(context)->allocator->New<lexer::SourceRange>( 2352 end: '))' 2353 var_name: '|arg_name|E2p' 2354 2355 - es2panda_arg: 2356 name: '|arg_name|' 2357 type: 2358 name: 'DiagnosticEngine' 2359 namespace: 'util' 2360 min_ptr_depth: 1 2361 new_args: 2362 - type: 2363 name: "es2panda_ErrorLogger" 2364 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2365 name: '|arg_name|' 2366 namespace: 'util::' 2367 cast: 2368 expression: >- 2369 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2370 reinterpret_cast<util::DiagnosticEngine |es2panda_arg.type.ptr_depth|>(|arg_name|); 2371 reverse_cast: 2372 start : >- 2373 reinterpret_cast<?const? es2panda_ErrorLogger |es2panda_arg.type.ptr_depth|> 2374 call_cast: 2375 call_var: 2376 name: classInstance 2377 type: 2378 name: es2panda_ErrorLogger 2379 ptr_depth: 1 2380 start: >- 2381 (reinterpret_cast<?const? util::DiagnosticEngine *>(ast))-> 2382 constructor_cast: 2383 start: >- 2384 ctxAllocator->New<util::DiagnosticEngine>( 2385 end: ) 2386 var_name: '|arg_name|E2p' 2387 2388 - es2panda_arg: 2389 name: '|arg_name|' 2390 type: 2391 name: 'DiagnosticEngine' 2392 namespace: 'util' 2393 max_ptr_depth: 0 2394 new_args: 2395 - type: 2396 name: "es2panda_ErrorLogger" 2397 ptr_depth: 1 2398 name: '|arg_name|' 2399 namespace: 'util::' 2400 cast: 2401 expression: >- 2402 auto &|arg_name|E2p = *(reinterpret_cast<util::DiagnosticEngine *>(|arg_name|)); 2403 var_name: '|arg_name|E2p' 2404 2405 - es2panda_arg: 2406 name: '|arg_name|' 2407 type: 2408 name: 'VReg' 2409 namespace: 'compiler' 2410 min_ptr_depth: 1 2411 new_args: 2412 - type: 2413 name: "es2panda_VReg" 2414 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2415 name: '|arg_name|' 2416 namespace: 'compiler::' 2417 cast: 2418 expression: >- 2419 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2420 reinterpret_cast<compiler::VReg |es2panda_arg.type.ptr_depth|>(|arg_name|); 2421 reverse_cast: 2422 start : >- 2423 reinterpret_cast<?const? es2panda_VReg |es2panda_arg.type.ptr_depth|> 2424 call_cast: 2425 call_var: 2426 name: classInstance 2427 type: 2428 name: es2panda_VReg 2429 ptr_depth: 1 2430 start: >- 2431 (reinterpret_cast<?const? compiler::VReg *>(classInstance))-> 2432 constructor_cast: 2433 start: >- 2434 ctxAllocator->New<compiler::VReg>( 2435 end: ) 2436 var_name: '|arg_name|E2p' 2437 2438 - es2panda_arg: 2439 name: '|arg_name|' 2440 type: 2441 name: 'VReg' 2442 namespace: 'compiler' 2443 max_ptr_depth: 0 2444 new_args: 2445 - type: 2446 name: "es2panda_VReg" 2447 ptr_depth: 1 2448 name: '|arg_name|' 2449 namespace: 'compiler::' 2450 cast: 2451 expression: >- 2452 auto &|arg_name|E2p = *reinterpret_cast<compiler::VReg *>(|arg_name|); 2453 reverse_cast: 2454 start: >- 2455 reinterpret_cast<?const? es2panda_VReg *>( 2456 reinterpret_cast<Context *>(context)->allocator->New<compiler::VReg>( 2457 end: '))' 2458 var_name: '|arg_name|E2p' 2459 2460 - es2panda_arg: 2461 name: '|arg_name|' 2462 type: 2463 name: 'IRNode' 2464 namespace: 'compiler' 2465 min_ptr_depth: 1 2466 new_args: 2467 - type: 2468 name: "es2panda_IRNode" 2469 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2470 name: '|arg_name|' 2471 namespace: 'compiler::' 2472 cast: 2473 expression: >- 2474 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2475 reinterpret_cast<compiler::IRNode |es2panda_arg.type.ptr_depth|>(|arg_name|); 2476 reverse_cast: 2477 start : >- 2478 reinterpret_cast<?const? es2panda_IRNode |es2panda_arg.type.ptr_depth|> 2479 call_cast: 2480 call_var: 2481 name: classInstance 2482 type: 2483 name: es2panda_IRNode 2484 ptr_depth: 1 2485 start: >- 2486 (reinterpret_cast<?const? compiler::IRNode *>(classInstance))-> 2487 constructor_cast: 2488 start: >- 2489 ctxAllocator->New<compiler::IRNode>( 2490 end: ) 2491 var_name: '|arg_name|E2p' 2492 2493 - es2panda_arg: 2494 name: '|arg_name|' 2495 type: 2496 name: 'IRNode' 2497 namespace: 'compiler' 2498 max_ptr_depth: 0 2499 new_args: 2500 - type: 2501 name: "es2panda_IRNode" 2502 ptr_depth: 1 2503 name: '|arg_name|' 2504 namespace: 'compiler::' 2505 cast: 2506 expression: >- 2507 auto &|arg_name|E2p = *reinterpret_cast<compiler::IRNode *>(|arg_name|); 2508 reverse_cast: 2509 start: >- 2510 reinterpret_cast<?const? es2panda_IRNode *>( 2511 reinterpret_cast<Context *>(context)->allocator->New<compiler::IRNode>( 2512 end: '))' 2513 var_name: '|arg_name|E2p' 2514 2515 - es2panda_arg: 2516 name: '|arg_name|' 2517 type: 2518 name: 'SrcDumper' 2519 namespace: "ir" 2520 min_ptr_depth: 1 2521 new_args: 2522 - type: 2523 name: "es2panda_SrcDumper" 2524 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2525 name: '|arg_name|' 2526 namespace: 'ir::' 2527 cast: 2528 expression: >- 2529 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2530 reinterpret_cast<ir::SrcDumper |es2panda_arg.type.ptr_depth|>(|arg_name|); 2531 reverse_cast: 2532 start : >- 2533 reinterpret_cast<?const? es2panda_SrcDumper |es2panda_arg.type.ptr_depth|> 2534 call_cast: 2535 call_var: 2536 name: classInstance 2537 type: 2538 name: es2panda_SrcDumper 2539 ptr_depth: 1 2540 start: >- 2541 (reinterpret_cast<?const? ir::SrcDumper *>(classInstance))-> 2542 constructor_cast: 2543 start: >- 2544 ctxAllocator->New<ir::SrcDumper>( 2545 end: ) 2546 var_name: '|arg_name|E2p' 2547 2548 - es2panda_arg: 2549 name: '|arg_name|' 2550 type: 2551 name: 'SrcDumper' 2552 namespace: "ir" 2553 max_ptr_depth: 0 2554 new_args: 2555 - type: 2556 name: "es2panda_SrcDumper" 2557 ptr_depth: 1 2558 name: '|arg_name|' 2559 namespace: 'ir::' 2560 cast: 2561 expression: '' 2562 var_name: 'std::forward<ir::SrcDumper>(*reinterpret_cast<ir::SrcDumper *>(|arg_name|))' 2563 2564 - es2panda_arg: 2565 name: '|arg_name|' 2566 type: 2567 name: 'AstDumper' 2568 namespace: "ir" 2569 min_ptr_depth: 1 2570 new_args: 2571 - type: 2572 name: "es2panda_AstDumper" 2573 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2574 name: '|arg_name|' 2575 namespace: 'ir::' 2576 cast: 2577 expression: >- 2578 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2579 reinterpret_cast<ir::AstDumper |es2panda_arg.type.ptr_depth|>(|arg_name|); 2580 reverse_cast: 2581 start : >- 2582 reinterpret_cast<?const? es2panda_AstDumper |es2panda_arg.type.ptr_depth|> 2583 call_cast: 2584 call_var: 2585 name: classInstance 2586 type: 2587 name: es2panda_AstDumper 2588 ptr_depth: 1 2589 start: >- 2590 (reinterpret_cast<?const? ir::AstDumper *>(classInstance))-> 2591 constructor_cast: 2592 start: >- 2593 ctxAllocator->New<ir::AstDumper>( 2594 end: ) 2595 var_name: '|arg_name|E2p' 2596 2597 - es2panda_arg: 2598 name: '|arg_name|' 2599 type: 2600 name: 'AstDumper' 2601 namespace: "ir" 2602 max_ptr_depth: 0 2603 new_args: 2604 - type: 2605 name: "es2panda_AstDumper" 2606 ptr_depth: 1 2607 name: '|arg_name|' 2608 namespace: 'ir::' 2609 cast: 2610 expression: '' 2611 var_name: 'std::forward<ir::AstDumper>(*reinterpret_cast<ir::AstDumper *>(|arg_name|))' 2612 2613 - es2panda_arg: 2614 name: '|arg_name|' 2615 type: 2616 name: 'LabelPair' 2617 min_ptr_depth: 1 2618 new_args: 2619 - type: 2620 name: "es2panda_LabelPair" 2621 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2622 name: '|arg_name|' 2623 namespace: 'compiler::' 2624 cast: 2625 expression: >- 2626 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2627 reinterpret_cast<compiler::LabelPair |es2panda_arg.type.ptr_depth|>(|arg_name|); 2628 reverse_cast: 2629 start : >- 2630 reinterpret_cast<?const? es2panda_LabelPair |es2panda_arg.type.ptr_depth|> 2631 call_cast: 2632 call_var: 2633 name: classInstance 2634 type: 2635 name: es2panda_LabelPair 2636 ptr_depth: 1 2637 start: >- 2638 (reinterpret_cast<?const? compiler::LabelPair *>(classInstance))-> 2639 constructor_cast: 2640 start: >- 2641 ctxAllocator->New<compiler::LabelPair>( 2642 end: ) 2643 var_name: '|arg_name|E2p' 2644 2645 - es2panda_arg: 2646 name: '|arg_name|' 2647 type: 2648 name: 'LabelPair' 2649 max_ptr_depth: 0 2650 new_args: 2651 - type: 2652 name: "es2panda_LabelPair" 2653 ptr_depth: 1 2654 name: '|arg_name|' 2655 namespace: 'compiler::' 2656 cast: 2657 expression: '' 2658 var_name: 'std::forward<compiler::LabelPair>(*reinterpret_cast<compiler::LabelPair *>(|arg_name|))' 2659 reverse_cast: 2660 start: >- 2661 reinterpret_cast<?const? es2panda_LabelPair *>(ctxAllocator->New<compiler::LabelPair> 2662 end: ) 2663 2664 - es2panda_arg: 2665 name: '|arg_name|' 2666 type: 2667 name: 'ValidationInfo' 2668 namespace: "ir" 2669 min_ptr_depth: 1 2670 new_args: 2671 - type: 2672 name: "es2panda_ValidationInfo" 2673 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2674 name: '|arg_name|' 2675 namespace: "ir::" 2676 cast: 2677 expression: >- 2678 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2679 reinterpret_cast<ir::ValidationInfo |es2panda_arg.type.ptr_depth|>(|arg_name|); 2680 reverse_cast: 2681 start : >- 2682 reinterpret_cast<?const? es2panda_ValidationInfo |es2panda_arg.type.ptr_depth|> 2683 call_cast: 2684 call_var: 2685 name: classInstance 2686 type: 2687 name: es2panda_ValidationInfo 2688 ptr_depth: 1 2689 start: >- 2690 (reinterpret_cast<?const? ir::ValidationInfo *>(classInstance))-> 2691 constructor_cast: 2692 start: >- 2693 ctxAllocator->New<ir::ValidationInfo>( 2694 end: ) 2695 var_name: '|arg_name|E2p' 2696 2697 - es2panda_arg: 2698 name: '|arg_name|' 2699 type: 2700 name: 'ValidationInfo' 2701 namespace: "ir" 2702 max_ptr_depth: 0 2703 new_args: 2704 - type: 2705 name: "es2panda_ValidationInfo" 2706 ptr_depth: 1 2707 name: '|arg_name|' 2708 namespace: "ir::" 2709 cast: 2710 expression: '' 2711 reverse_cast: 2712 start : >- 2713 reinterpret_cast<?const? es2panda_ValidationInfo *>(reinterpret_cast<Context *>(context)-> 2714 allocator->New<ir::ValidationInfo>( 2715 end: '))' 2716 var_name: '*reinterpret_cast<ir::ValidationInfo |es2panda_arg.type.ptr_depth|>(|arg_name|)' 2717 2718 - es2panda_arg: 2719 name: '|arg_name|' 2720 type: 2721 name: 'ASTAbstractVisitor' 2722 namespace: 'visitor' 2723 min_ptr_depth: 1 2724 new_args: 2725 - type: 2726 name: "es2panda_AstVisitor" 2727 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2728 name: '|arg_name|' 2729 namespace: 'ir::visitor::' 2730 cast: 2731 expression: >- 2732 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2733 reinterpret_cast<ir::visitor::ASTAbstractVisitor |es2panda_arg.type.ptr_depth|>(|arg_name|); 2734 reverse_cast: 2735 start : >- 2736 reinterpret_cast<?const? es2panda_AstVisitor |es2panda_arg.type.ptr_depth|> 2737 call_cast: 2738 call_var: 2739 name: classInstance 2740 type: 2741 name: es2panda_AstVisitor 2742 ptr_depth: 1 2743 start: >- 2744 (reinterpret_cast<?const? ir::visitor::ASTAbstractVisitor *>(classInstance))-> 2745 constructor_cast: 2746 start: >- 2747 ctxAllocator->New<ir::visitor::ASTAbstractVisitor>( 2748 end: ) 2749 var_name: '|arg_name|E2p' 2750 2751 - es2panda_arg: 2752 name: '|arg_name|' 2753 type: 2754 name: 'Signature' 2755 namespace: 'ir' 2756 min_ptr_depth: 1 2757 new_args: 2758 - type: 2759 name: "es2panda_Signature" 2760 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2761 name: '|arg_name|' 2762 namespace: 'ir::' 2763 cast: 2764 expression: >- 2765 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2766 reinterpret_cast<checker::Signature |es2panda_arg.type.ptr_depth|>(|arg_name|); 2767 reverse_cast: 2768 start: >- 2769 reinterpret_cast<?const? es2panda_Signature |es2panda_arg.type.ptr_depth|> 2770 call_cast: 2771 call_var: 2772 name: classInstance 2773 type: 2774 name: es2panda_Signature 2775 ptr_depth: 1 2776 start: >- 2777 (reinterpret_cast<?const? checker::Signature *>(classInstance))-> 2778 constructor_cast: 2779 start: >- 2780 ctxAllocator->New<checker::Signature>( 2781 end: ) 2782 var_name: '|arg_name|E2p' 2783 2784 - es2panda_arg: 2785 name: '|arg_name|' 2786 type: 2787 name: 'Substitution' 2788 namespace: 'checker' 2789 min_ptr_depth: 1 2790 new_args: 2791 - type: 2792 name: "ArenaMap" 2793 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2794 template_args: 2795 - type: 2796 name: ETSTypeParameter 2797 ptr_depth: 1 2798 - type: 2799 name: Type 2800 ptr_depth: 1 2801 name: '|arg_name|' 2802 cast: 2803 reverse_cast: '' 2804 2805 - es2panda_arg: 2806 name: '|arg_name|' 2807 type: 2808 name: 'VariableMap' 2809 namespace: 'varbinder::Scope' 2810 new_args: 2811 - type: 2812 name: "ArenaUnorderedMap" 2813 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2814 template_args: 2815 - type: 2816 name: StringView 2817 ptr_depth: 0 2818 namespace: util 2819 - type: 2820 name: Variable 2821 ptr_depth: 1 2822 namespace: varbinder 2823 name: '|arg_name|' 2824 cast: 2825 reverse_cast: '' 2826 2827 - es2panda_arg: 2828 name: '|arg_name|' 2829 type: 2830 name: 'DynamicImportVariables' 2831 namespace: 'varbinder' 2832 new_args: 2833 - type: 2834 name: "ArenaUnorderedMap" 2835 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2836 template_args: 2837 - type: 2838 name: Variable 2839 ptr_depth: 1 2840 namespace: varbinder 2841 const: const 2842 - type: 2843 name: DynamicImportData 2844 ptr_depth: 0 2845 name: '|arg_name|' 2846 cast: 2847 reverse_cast: '' 2848 2849 - es2panda_arg: 2850 name: '|arg_name|' 2851 type: 2852 name: 'GlobalArraySignatureMap' 2853 namespace: 'checker' 2854 new_args: 2855 - type: 2856 name: "ArenaUnorderedMap" 2857 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2858 template_args: 2859 - type: 2860 name: ETSArrayType 2861 ptr_depth: 1 2862 namespace: checker 2863 const: const 2864 - type: 2865 name: Signature 2866 ptr_depth: 1 2867 namespace: checker 2868 name: '|arg_name|' 2869 cast: 2870 reverse_cast: '' 2871 2872 - es2panda_arg: 2873 name: '|arg_name|' 2874 type: 2875 name: 'CapturedVarsMap' 2876 namespace: 'checker' 2877 new_args: 2878 - type: 2879 name: "ArenaUnorderedMap" 2880 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2881 template_args: 2882 - type: 2883 name: Variable 2884 ptr_depth: 1 2885 namespace: varbinder 2886 const: const 2887 - type: 2888 name: SourcePosition 2889 ptr_depth: 0 2890 namespace: lexer 2891 name: '|arg_name|' 2892 cast: 2893 reverse_cast: '' 2894 2895 - es2panda_arg: 2896 name: '|arg_name|' 2897 type: 2898 name: JsDocInfo 2899 max_ptr_depth: 0 2900 new_args: 2901 - type: 2902 name: es2panda_JsDocInfo 2903 ptr_depth: 1 2904 namespace: 'ir::' 2905 name: '|arg_name|' 2906 cast: 2907 expression: "\ 2908 \tir::JsDocInfo |arg_name|ArenaUnorderedMap{reinterpret_cast<Context *>(context)->allocator->Adapter()};\n 2909 \tfor (size_t j = 0; j < |arg_name|->len; ++j) {\n 2910 \t\t|arg_name|ArenaUnorderedMap.emplace(|arg_name|->strings[j], JsDocRecordToE2p(|arg_name|->jsDocRecords[j]));\n 2911 \t}" 2912 var_name: '|arg_name|ArenaUnorderedMap' 2913 reverse_cast: 2914 start: JsDocInfoFromE2p(reinterpret_cast<Context *>(context)->allocator, 2915 end: ) 2916 2917 - es2panda_arg: 2918 name: '|arg_name|' 2919 type: 2920 name: 'Signature' 2921 namespace: 'checker' 2922 min_ptr_depth: 1 2923 new_args: 2924 - type: 2925 name: "es2panda_Signature" 2926 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2927 name: '|arg_name|' 2928 namespace: 'checker::' 2929 cast: 2930 expression: >- 2931 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2932 reinterpret_cast<checker::Signature |es2panda_arg.type.ptr_depth|>(|arg_name|); 2933 reverse_cast: 2934 start: >- 2935 reinterpret_cast<?const? es2panda_Signature |es2panda_arg.type.ptr_depth|> 2936 call_cast: 2937 call_var: 2938 name: classInstance 2939 type: 2940 name: es2panda_Signature 2941 ptr_depth: 1 2942 start: >- 2943 (reinterpret_cast<?const? checker::Signature *>(classInstance))-> 2944 constructor_cast: 2945 start: >- 2946 ctxAllocator->New<checker::Signature>( 2947 end: ) 2948 var_name: '|arg_name|E2p' 2949 2950 - es2panda_arg: 2951 name: '|arg_name|' 2952 type: 2953 name: 'SignatureInfo' 2954 namespace: 'checker' 2955 min_ptr_depth: 1 2956 new_args: 2957 - type: 2958 name: "es2panda_SignatureInfo" 2959 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2960 name: '|arg_name|' 2961 namespace: 'checker::' 2962 cast: 2963 expression: >- 2964 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2965 reinterpret_cast<checker::SignatureInfo |es2panda_arg.type.ptr_depth|>(|arg_name|); 2966 reverse_cast: 2967 start: >- 2968 reinterpret_cast<?const? es2panda_SignatureInfo |es2panda_arg.type.ptr_depth|> 2969 call_cast: 2970 call_var: 2971 name: classInstance 2972 type: 2973 name: es2panda_SignatureInfo 2974 ptr_depth: 1 2975 start: >- 2976 (reinterpret_cast<?const? checker::SignatureInfo *>(classInstance))-> 2977 constructor_cast: 2978 start: >- 2979 ctxAllocator->New<checker::SignatureInfo>( 2980 end: ) 2981 var_name: '|arg_name|E2p' 2982 2983 - es2panda_arg: 2984 name: '|arg_name|' 2985 type: 2986 name: 'CheckerContext' 2987 namespace: 'checker' 2988 min_ptr_depth: 1 2989 new_args: 2990 - type: 2991 name: "es2panda_CheckerContext" 2992 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 2993 name: '|arg_name|' 2994 namespace: 'checker::' 2995 cast: 2996 expression: >- 2997 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 2998 reinterpret_cast<checker::CheckerContext |es2panda_arg.type.ptr_depth|>(|arg_name|); 2999 reverse_cast: 3000 start: >- 3001 reinterpret_cast<?const? es2panda_CheckerContext |es2panda_arg.type.ptr_depth|> 3002 call_cast: 3003 call_var: 3004 name: classInstance 3005 type: 3006 name: es2panda_CheckerContext 3007 ptr_depth: 1 3008 start: >- 3009 (reinterpret_cast<?const? checker::CheckerContext *>(classInstance))-> 3010 constructor_cast: 3011 start: >- 3012 ctxAllocator->New<checker::CheckerContext>( 3013 end: ) 3014 var_name: '|arg_name|E2p' 3015 3016 - es2panda_arg: 3017 name: '|arg_name|' 3018 type: 3019 name: 'CheckerContext' 3020 namespace: 'checker' 3021 max_ptr_depth: 0 3022 new_args: 3023 - type: 3024 name: "es2panda_CheckerContext" 3025 ptr_depth: 1 3026 name: '|arg_name|' 3027 namespace: 'checker::' 3028 cast: 3029 expression: >- 3030 auto &|arg_name|E2p = 3031 *(reinterpret_cast<checker::CheckerContext *>(|arg_name|)); 3032 reverse_cast: 3033 start: >- 3034 reinterpret_cast<?const? es2panda_CheckerContext *>(reinterpret_cast<Context *>(context)->allocator-> 3035 New<checker::CheckerContext> 3036 end: ) 3037 var_name: '|arg_name|E2p' 3038 3039 - es2panda_arg: 3040 name: '|arg_name|' 3041 type: 3042 name: 'ResolveResult' 3043 namespace: 'checker' 3044 min_ptr_depth: 1 3045 new_args: 3046 - type: 3047 name: "es2panda_ResolveResult" 3048 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3049 name: '|arg_name|' 3050 namespace: 'checker::' 3051 cast: 3052 expression: >- 3053 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 3054 reinterpret_cast<checker::ResolveResult |es2panda_arg.type.ptr_depth|>(|arg_name|); 3055 reverse_cast: 3056 start: >- 3057 reinterpret_cast<?const? es2panda_ResolveResult |es2panda_arg.type.ptr_depth|> 3058 call_cast: 3059 call_var: 3060 name: classInstance 3061 type: 3062 name: es2panda_ResolveResult 3063 ptr_depth: 1 3064 start: >- 3065 (reinterpret_cast<?const? checker::ResolveResult *>(classInstance))-> 3066 constructor_cast: 3067 start: >- 3068 ctxAllocator->New<checker::ResolveResult>( 3069 end: ) 3070 var_name: '|arg_name|E2p' 3071 3072 - es2panda_arg: 3073 name: '|arg_name|' 3074 type: 3075 name: 'ResolveResult' 3076 namespace: 'checker' 3077 max_ptr_depth: 0 3078 new_args: 3079 - type: 3080 name: "es2panda_ResolveResult" 3081 ptr_depth: 1 3082 name: '|arg_name|' 3083 namespace: 'checker::' 3084 cast: 3085 expression: >- 3086 auto &|arg_name|E2p = 3087 *(reinterpret_cast<checker::ResolveResult *>(|arg_name|)); 3088 var_name: '|arg_name|E2p' 3089 3090 - es2panda_arg: 3091 name: '|arg_name|' 3092 type: 3093 name: StringView 3094 namespace: util 3095 min_ptr_depth: 0 3096 max_ptr_depth: 0 3097 new_args: 3098 - type: 3099 name: "char" 3100 ptr_depth: 1 3101 name: "|arg_name|" 3102 namespace: 'util::' 3103 cast: 3104 expression: util::StringView |arg_name|E2p {|arg_name|}; 3105 var_name: '|arg_name|E2p' 3106 reverse_cast: 3107 start: StringViewToCString(reinterpret_cast<Context *>(context)->allocator, 3108 end: ) 3109 3110 - es2panda_arg: 3111 name: '|arg_name|' 3112 type: 3113 name: UString 3114 namespace: util 3115 min_ptr_depth: 0 3116 max_ptr_depth: 0 3117 new_args: 3118 - type: 3119 name: "char" 3120 ptr_depth: 1 3121 name: "|arg_name|" 3122 namespace: 'util::' 3123 cast: 3124 expression: util::UString |arg_name|E2p {std::string(|arg_name|), reinterpret_cast<Context *>(context)->allocator}; 3125 var_name: '|arg_name|E2p' 3126 reverse_cast: 3127 start: UStringToCString(reinterpret_cast<Context *>(context)->allocator, 3128 end: ) 3129 3130 - es2panda_arg: 3131 name: '|arg_name|' 3132 type: 3133 name: string_view 3134 min_ptr_depth: 0 3135 max_ptr_depth: 0 3136 new_args: 3137 - type: 3138 name: "char" 3139 ptr_depth: 1 3140 name: "|arg_name|" 3141 cast: 3142 expression: std::string_view |arg_name|E2p {|arg_name|}; 3143 var_name: '|arg_name|E2p' 3144 reverse_cast: 3145 start: StringViewToCString(reinterpret_cast<Context *>(context)->allocator, 3146 end: ) 3147 3148 - es2panda_arg: 3149 name: '|arg_name|' 3150 type: 3151 name: "string" 3152 max_ptr_depth: 0 3153 min_ptr_depth: 0 3154 new_args: 3155 - name: '|arg_name|' 3156 type: 3157 name: char 3158 ptr_depth: 1 3159 namespace: 'std::' 3160 cast: 3161 expression: std::string |arg_name|E2p {|arg_name|}; 3162 reverse_cast: 3163 start: 'StdStringToCString(reinterpret_cast<Context *>(context)->allocator, ' 3164 end: ')' 3165 var_name: '|arg_name|E2p' 3166 3167 - es2panda_arg: 3168 name: '|arg_name|' 3169 type: 3170 name: "ExternalSource" 3171 max_ptr_depth: 0 3172 min_ptr_depth: 0 3173 new_args: 3174 - name: '|arg_name|' 3175 type: 3176 name: es2panda_ExternalSource 3177 ptr_depth: 2 3178 namespace: 'parser::' 3179 return_args: 3180 - name: '|arg_name|Len' 3181 type: 3182 name: size_t 3183 ptr_depth: 1 3184 cast: 3185 reverse_cast: 3186 start: 'auto apiRes = const_cast<?const? es2panda_ExternalSource **>(ExternalSourcesToE2p(reinterpret_cast<Context *>(context)->allocator, ' 3187 end: ', |arg_name|Len))' 3188 var_name: '|arg_name|E2p' 3189 3190 - es2panda_arg: 3191 name: '|arg_name|' 3192 type: 3193 name: "DirectExternalSource" 3194 max_ptr_depth: 0 3195 min_ptr_depth: 0 3196 new_args: 3197 - name: '|arg_name|' 3198 type: 3199 name: es2panda_ExternalSource 3200 ptr_depth: 2 3201 namespace: 'parser::' 3202 return_args: 3203 - name: '|arg_name|Len' 3204 type: 3205 name: size_t 3206 ptr_depth: 1 3207 cast: 3208 reverse_cast: 3209 start: 'auto apiRes = const_cast<?const? es2panda_ExternalSource **>(ExternalSourcesToE2p(reinterpret_cast<Context *>(context)->allocator, ' 3210 end: ', |arg_name|Len))' 3211 var_name: '|arg_name|E2p' 3212 3213 - es2panda_arg: 3214 name: '|arg_name|' 3215 type: 3216 name: 'VerificationContext' 3217 namespace: 'compiler::ast_verifier' 3218 min_ptr_depth: 1 3219 new_args: 3220 - type: 3221 name: "es2panda_VerificationContext" 3222 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3223 name: '|arg_name|' 3224 namespace: 'compiler::ast_verifier::' 3225 cast: 3226 expression: >- 3227 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 3228 reinterpret_cast<compiler::ast_verifier::VerificationContext |es2panda_arg.type.ptr_depth|>(|arg_name|); 3229 reverse_cast: 3230 start: >- 3231 reinterpret_cast<?const? es2panda_VerificationContext |es2panda_arg.type.ptr_depth|> 3232 call_cast: 3233 call_var: 'es2panda_VerificationContext *classInstance' 3234 start: >- 3235 (reinterpret_cast<?const? compiler::ast_verifier::VerificationContext *>(classInstance))-> 3236 constructor_cast: 3237 start: >- 3238 ctxAllocator->New<compiler::ast_verifier::VerificationContext>( 3239 end: ) 3240 var_name: '|arg_name|E2p' 3241 3242 - es2panda_arg: 3243 name: '|arg_name|' 3244 type: 3245 name: 'VerificationContext' 3246 namespace: 'compiler::ast_verifier' 3247 max_ptr_depth: 0 3248 new_args: 3249 - type: 3250 name: "es2panda_VerificationContext" 3251 ptr_depth: 1 3252 name: '|arg_name|' 3253 namespace: 'compiler::ast_verifier::' 3254 cast: 3255 expression: >- 3256 auto &|arg_name|E2p = 3257 *(reinterpret_cast<compiler::ast_verifier::VerificationContext *>(|arg_name|)); 3258 var_name: '|arg_name|E2p' 3259 3260 - es2panda_arg: 3261 name: '|arg_name|' 3262 type: 3263 name: 'ASTVerifier' 3264 namespace: 'compiler::ast_verifier' 3265 min_ptr_depth: 1 3266 new_args: 3267 - type: 3268 name: "es2panda_AstVerifier" 3269 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3270 name: '|arg_name|' 3271 namespace: 'compiler::ast_verifier::' 3272 cast: 3273 expression: >- 3274 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 3275 reinterpret_cast<compiler::ast_verifier::ASTVerifier |es2panda_arg.type.ptr_depth|>(|arg_name|); 3276 reverse_cast: 3277 start: >- 3278 reinterpret_cast<?const? es2panda_AstVerifier |es2panda_arg.type.ptr_depth|> 3279 call_cast: 3280 call_var: 3281 name: classInstance 3282 type: 3283 name: es2panda_AstVerifier 3284 ptr_depth: 1 3285 start: >- 3286 (reinterpret_cast<?const? compiler::ast_verifier::ASTVerifier *>(classInstance))-> 3287 constructor_cast: 3288 start: >- 3289 ctxAllocator->New<compiler::ast_verifier::ASTVerifier>( 3290 end: ) 3291 var_name: '|arg_name|E2p' 3292 3293 - es2panda_arg: 3294 name: '|arg_name|' 3295 type: 3296 name: 'ASTVerifier' 3297 namespace: 'compiler::ast_verifier' 3298 max_ptr_depth: 0 3299 new_args: 3300 - type: 3301 name: "es2panda_AstVerifier" 3302 ptr_depth: 1 3303 name: '|arg_name|' 3304 namespace: 'compiler::ast_verifier::' 3305 cast: 3306 expression: >- 3307 auto &|arg_name|E2p = 3308 *(reinterpret_cast<compiler::ast_verifier::ASTVerifier *>(|arg_name|)); 3309 var_name: '|arg_name|E2p' 3310 3311 - es2panda_arg: 3312 name: '|arg_name|' 3313 type: 3314 name: 'CheckMessage' 3315 namespace: 'compiler::ast_verifier' 3316 min_ptr_depth: 1 3317 new_args: 3318 - type: 3319 name: "es2panda_VerifierMessage" 3320 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3321 name: '|arg_name|' 3322 namespace: 'compiler::ast_verifier::' 3323 cast: 3324 expression: >- 3325 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 3326 reinterpret_cast<compiler::ast_verifier::CheckMessage |es2panda_arg.type.ptr_depth|>(|arg_name|); 3327 reverse_cast: 3328 start: >- 3329 reinterpret_cast<?const? es2panda_VerifierMessage |es2panda_arg.type.ptr_depth|> 3330 call_cast: 3331 call_var: 3332 name: classInstance 3333 type: 3334 name: es2panda_VerifierMessage 3335 ptr_depth: 1 3336 start: >- 3337 (reinterpret_cast<?const? compiler::ast_verifier::CheckMessage *>(classInstance))-> 3338 constructor_cast: 3339 start: >- 3340 ctxAllocator->New<compiler::ast_verifier::CheckMessage>( 3341 end: ) 3342 var_name: '|arg_name|E2p' 3343 3344 - es2panda_arg: 3345 name: '|arg_name|' 3346 type: 3347 name: 'CheckMessage' 3348 namespace: 'compiler::ast_verifier' 3349 max_ptr_depth: 0 3350 new_args: 3351 - type: 3352 name: "es2panda_VerifierMessage" 3353 ptr_depth: 1 3354 name: '|arg_name|' 3355 namespace: 'compiler::ast_verifier::' 3356 cast: 3357 expression: >- 3358 auto &|arg_name|E2p = 3359 *(reinterpret_cast<compiler::ast_verifier::CheckMessage *>(|arg_name|)); 3360 reverse_cast: 3361 start: >- 3362 reinterpret_cast<?const? es2panda_VerifierMessage *>(ctxAllocator->New<compiler::ast_verifier::CheckMessage> 3363 end: ) 3364 var_name: '|arg_name|E2p' 3365 3366 - es2panda_arg: 3367 name: '|arg_name|' 3368 type: 3369 name: 'InvariantNameSet' 3370 namespace: 'compiler::ast_verifier' 3371 new_args: 3372 - type: 3373 name: 'set' 3374 namespace: 'std' 3375 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3376 template_args: 3377 - type: 3378 name: string 3379 ptr_depth: 0 3380 namespace: std 3381 const: '' 3382 name: '|arg_name|' 3383 cast: 3384 reverse_cast: '' 3385 3386 - es2panda_arg: 3387 name: '|arg_name|' 3388 type: 3389 name: 'Messages' 3390 namespace: 'compiler::ast_verifier' 3391 new_args: 3392 - type: 3393 name: 'vector' 3394 namespace: 'std' 3395 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3396 template_args: 3397 - type: 3398 name: CheckMessage 3399 ptr_depth: 0 3400 namespace: compiler::ast_verifier 3401 const: '' 3402 name: '|arg_name|' 3403 cast: 3404 reverse_cast: '' 3405 3406 - es2panda_arg: 3407 name: '|arg_name|' 3408 type: 3409 name: 'VerifierInvariants' 3410 namespace: 'compiler::ast_verifier' 3411 new_args: 3412 - type: 3413 name: 'Enum' 3414 namespace: 'verifier_invariants' 3415 ptr_depth: 0 3416 name: '|arg_name|' 3417 cast: 3418 reverse_cast: '' 3419 3420 - es2panda_arg: 3421 name: '|arg_name|' 3422 type: 3423 name: "EnumMemberResult" 3424 namespace: 'varbinder' 3425 max_ptr_depth: 0 3426 min_ptr_depth: 0 3427 new_args: 3428 - name: '|arg_name|' 3429 type: 3430 name: es2panda_variantDoubleCharArrayBool 3431 ptr_depth: 0 3432 namespace: 'varbinder::' 3433 cast: 3434 expression: | 3435 varbinder::EnumMemberResult |arg_name|E2p; 3436 // NOLINTBEGIN(cppcoreguidelines-pro-type-union-access) 3437 switch (|arg_name|.index) { 3438 case 0: 3439 |arg_name|E2p = std::variant<double, util::StringView, bool>(|arg_name|.variant.d); 3440 break; 3441 case 1: 3442 { 3443 util::StringView |arg_name|E2pStringView {|arg_name|.variant.c}; 3444 |arg_name|E2p = std::variant<double, util::StringView, bool>(|arg_name|E2pStringView); 3445 break; 3446 } 3447 case 2: 3448 |arg_name|E2p = std::variant<double, util::StringView, bool>(|arg_name|.variant.b); 3449 break; 3450 default: 3451 break; 3452 } 3453 // NOLINTEND(cppcoreguidelines-pro-type-union-access) 3454 reverse_cast: 3455 start: 'EnumMemberResultToEs2pandaVariant(reinterpret_cast<Context *>(context)->allocator, ' 3456 end: ')' 3457 var_name: '|arg_name|E2p' 3458 3459 - es2panda_arg: 3460 name: '|arg_name|' 3461 type: 3462 name: "NodeTraverser" 3463 max_ptr_depth: 0 3464 min_ptr_depth: 0 3465 new_args: 3466 - name: '|arg_name|' 3467 type: 3468 name: NodeTraverser 3469 ptr_depth: 0 3470 namespace: '' 3471 cast: 3472 expression: >- 3473 std::function<void(ir::AstNode *)> |arg_name|E2p = 3474 [|arg_name|](ir::AstNode *traverserLambdaNode) 3475 {|arg_name|(reinterpret_cast<es2panda_AstNode *>(traverserLambdaNode));}; 3476 var_name: '|arg_name|E2p' 3477 3478 - es2panda_arg: 3479 name: '|arg_name|' 3480 type: 3481 name: "NodeTransformer" 3482 max_ptr_depth: 0 3483 min_ptr_depth: 0 3484 new_args: 3485 - name: '|arg_name|' 3486 type: 3487 name: NodeTransformer 3488 ptr_depth: 0 3489 namespace: '' 3490 cast: 3491 expression: >- 3492 std::function<ir::AstNode *(ir::AstNode *)> |arg_name|E2p = 3493 [|arg_name|](ir::AstNode *traverserLambdaNode) 3494 {return reinterpret_cast<ir::AstNode *>(|arg_name|(reinterpret_cast<es2panda_AstNode *>(traverserLambdaNode)));}; 3495 var_name: '|arg_name|E2p' 3496 3497 - es2panda_arg: 3498 name: '|arg_name|' 3499 type: 3500 name: NodePredicate 3501 max_ptr_depth: 0 3502 min_ptr_depth: 0 3503 new_args: 3504 - name: '|arg_name|' 3505 type: 3506 name: NodePredicate 3507 ptr_depth: 0 3508 namespace: '' 3509 cast: 3510 expression: >- 3511 std::function<bool(ir::AstNode *)> |arg_name|E2p = 3512 [|arg_name|](ir::AstNode *traverserLambdaNode) 3513 {return |arg_name|(reinterpret_cast<es2panda_AstNode *>(traverserLambdaNode));}; 3514 var_name: '|arg_name|E2p' 3515 3516 - es2panda_arg: 3517 name: '|arg_name|' 3518 type: 3519 name: PropertyProcesser 3520 namespace: checker 3521 max_ptr_depth: 0 3522 min_ptr_depth: 0 3523 new_args: 3524 - name: '|arg_name|' 3525 type: 3526 name: PropertyProcessor 3527 ptr_depth: 0 3528 namespace: '' 3529 cast: 3530 expression: >- 3531 std::function<varbinder::LocalVariable *(varbinder::LocalVariable *, checker::Type *)> |arg_name|E2p = 3532 [|arg_name|](varbinder::LocalVariable *propertyProcessorLambdaVariable, checker::Type *propertyProcessorLambdaType) 3533 {return reinterpret_cast<varbinder::LocalVariable *>(|arg_name|( 3534 reinterpret_cast<es2panda_Variable *>(propertyProcessorLambdaVariable), 3535 reinterpret_cast<es2panda_Type *>(propertyProcessorLambdaType)));}; 3536 var_name: '|arg_name|E2p' 3537 3538 - es2panda_arg: 3539 name: '|arg_name|' 3540 type: 3541 name: PropertyTraverser 3542 max_ptr_depth: 0 3543 min_ptr_depth: 0 3544 new_args: 3545 - name: '|arg_name|' 3546 type: 3547 name: PropertyTraverser 3548 ptr_depth: 0 3549 namespace: '' 3550 cast: 3551 expression: >- 3552 std::function<void(const varbinder::LocalVariable *)> |arg_name|E2p = 3553 [|arg_name|](const varbinder::LocalVariable *propertyTraverserLambdaVariable) 3554 {|arg_name|(reinterpret_cast<const es2panda_Variable *>(propertyTraverserLambdaVariable));}; 3555 var_name: '|arg_name|E2p' 3556 3557 - es2panda_arg: 3558 name: '|arg_name|' 3559 type: 3560 name: ClassBuilder 3561 namespace: 'checker' 3562 max_ptr_depth: 0 3563 min_ptr_depth: 0 3564 new_args: 3565 - name: '|arg_name|' 3566 type: 3567 name: ClassBuilder 3568 ptr_depth: 0 3569 namespace: 'checker::' 3570 cast: 3571 expression: >- 3572 std::function<void(ArenaVector<ir::AstNode *> *)> |arg_name|E2p = 3573 [|arg_name|](ArenaVector<ir::AstNode *> *classBuilderLambdaVariable) 3574 {|arg_name|(reinterpret_cast<es2panda_AstNode **>(classBuilderLambdaVariable->data()), classBuilderLambdaVariable->size());}; 3575 var_name: '|arg_name|E2p' 3576 3577 - es2panda_arg: 3578 name: '|arg_name|' 3579 type: 3580 name: MethodBuilder 3581 namespace: 'checker' 3582 max_ptr_depth: 0 3583 min_ptr_depth: 0 3584 new_args: 3585 - name: '|arg_name|' 3586 type: 3587 name: MethodBuilder 3588 ptr_depth: 0 3589 namespace: 'checker::' 3590 cast: 3591 expression: >- 3592 std::function<void(ArenaVector<ir::Statement *> *, ArenaVector<ir::Expression *> *, checker::Type **)> |arg_name|E2p = 3593 [|arg_name|](ArenaVector<ir::Statement *> *methodBuilderLambdaStatementVariable, 3594 ArenaVector<ir::Expression *> *methodBuilderLambdaExpressionVariable, checker::Type **methodBuilderLambdaTypeVariable) 3595 {|arg_name|(reinterpret_cast<es2panda_AstNode **>(methodBuilderLambdaStatementVariable->data()), 3596 methodBuilderLambdaStatementVariable->size(), reinterpret_cast<es2panda_AstNode **>(methodBuilderLambdaExpressionVariable->data()), 3597 methodBuilderLambdaExpressionVariable->size(), reinterpret_cast<es2panda_Type **>(methodBuilderLambdaTypeVariable));}; 3598 var_name: '|arg_name|E2p' 3599 3600 - es2panda_arg: 3601 name: '|arg_name|' 3602 type: 3603 name: ClassInitializerBuilder 3604 namespace: 'checker' 3605 max_ptr_depth: 0 3606 min_ptr_depth: 0 3607 new_args: 3608 - name: '|arg_name|' 3609 type: 3610 name: ClassInitializerBuilder 3611 ptr_depth: 0 3612 namespace: 'checker::' 3613 cast: 3614 expression: >- 3615 std::function<void(ArenaVector<ir::Statement *> *, ArenaVector<ir::Expression *> *)> |arg_name|E2p = 3616 [|arg_name|](ArenaVector<ir::Statement *> *classInitializerBuilderLambdaStatementVariable, 3617 ArenaVector<ir::Expression *> *classInitializerBuilderLambdaExpressionVariable) 3618 {|arg_name|(reinterpret_cast<es2panda_AstNode **>(classInitializerBuilderLambdaStatementVariable->data()), 3619 classInitializerBuilderLambdaStatementVariable->size(), reinterpret_cast<es2panda_AstNode **>(classInitializerBuilderLambdaExpressionVariable->data()), 3620 classInitializerBuilderLambdaExpressionVariable->size());}; 3621 var_name: '|arg_name|E2p' 3622 3623 - es2panda_arg: 3624 name: '|arg_name|' 3625 type: 3626 name: ConstructorFlags 3627 current_class: TSModuleDeclaration 3628 max_ptr_depth: 0 3629 min_ptr_depth: 0 3630 new_args: 3631 - name: declare 3632 type: 3633 name: bool 3634 - name: global 3635 type: 3636 name: bool 3637 cast: 3638 expression: "" 3639 var_name: "ir::TSModuleDeclaration::ConstructorFlags {declare, global}" 3640 3641 - es2panda_arg: 3642 name: '|arg_name|' 3643 type: 3644 name: "ConstructorFlags" 3645 current_class: TSEnumDeclaration 3646 max_ptr_depth: 0 3647 min_ptr_depth: 0 3648 new_args: 3649 - name: 'isConst' 3650 type: 3651 name: bool 3652 - name: 'isStatic' 3653 type: 3654 name: bool 3655 - name: 'isDeclare' 3656 type: 3657 name: bool 3658 cast: 3659 expression: "" 3660 var_name: "ir::TSEnumDeclaration::ConstructorFlags {isConst, isStatic, isDeclare}" 3661 3662 - es2panda_arg: 3663 name: '|arg_name|' 3664 type: 3665 name: "ConstructorData" 3666 current_class: TSInterfaceDeclaration 3667 max_ptr_depth: 0 3668 min_ptr_depth: 0 3669 new_args: 3670 - name: 'id' 3671 type: 3672 name: es2panda_AstNode 3673 ptr_depth: 1 3674 - name: 'typeParams' 3675 type: 3676 name: es2panda_AstNode 3677 ptr_depth: 1 3678 - name: 'body' 3679 type: 3680 name: es2panda_AstNode 3681 ptr_depth: 1 3682 - name: isStatic 3683 type: 3684 name: bool 3685 - name: isExternal 3686 type: 3687 name: bool 3688 cast: 3689 expression: "\ 3690 auto es2pandaId = reinterpret_cast<ir::Identifier *>(id);\n 3691 auto es2pandaTypeParams = reinterpret_cast<ir::TSTypeParameterDeclaration *>(typeParams);\n 3692 auto es2pandaBody = reinterpret_cast<ir::TSInterfaceBody *>(body);\n 3693 ark::es2panda::Language es2pandaLang {Language::Id::ETS};\n 3694 " 3695 var_name: "ir::TSInterfaceDeclaration::ConstructorData {es2pandaId, es2pandaTypeParams, es2pandaBody, isStatic, isExternal, es2pandaLang}" 3696 3697 - es2panda_arg: 3698 name: '|arg_name|' 3699 type: 3700 name: "ScriptFunctionData" 3701 current_class: ScriptFunction 3702 max_ptr_depth: 0 3703 min_ptr_depth: 0 3704 new_args: 3705 - name: '|arg_name|body' 3706 type: 3707 name: es2panda_AstNode 3708 ptr_depth: 1 3709 - name: '|arg_name|signature' 3710 type: 3711 name: es2panda_FunctionSignature 3712 ptr_depth: 1 3713 - name: '|arg_name|funcFlags' 3714 type: 3715 name: int 3716 ptr_depth: 0 3717 - name: '|arg_name|flags' 3718 type: 3719 name: int 3720 cast: 3721 expression: " 3722 auto *|arg_name|bodyE2p = reinterpret_cast<ir::AstNode *>(|arg_name|body);\n 3723 auto |arg_name|signatureE2p = std::move(*reinterpret_cast<ir::FunctionSignature *>(|arg_name|signature));\n 3724 auto |arg_name|funcFlagsE2p = E2pToIrScriptFunctionFlags((Es2pandaScriptFunctionFlags)|arg_name|funcFlags);\n 3725 auto |arg_name|flagsE2p = E2pToIrModifierFlags((Es2pandaModifierFlags)|arg_name|flags);\n 3726 ark::es2panda::Language |arg_name|lang {Language::Id::ETS};\n 3727 " 3728 var_name: "ir::ScriptFunction::ScriptFunctionData {|arg_name|bodyE2p, std::move(|arg_name|signatureE2p), 3729 |arg_name|funcFlagsE2p, |arg_name|flagsE2p, |arg_name|lang}" 3730 3731 - es2panda_arg: 3732 name: '|arg_name|' 3733 type: 3734 name: Method 3735 namespace: checker 3736 max_ptr_depth: 0 3737 min_ptr_depth: 0 3738 new_args: 3739 - name: 'globalSignature' 3740 type: 3741 name: es2panda_Signature 3742 ptr_depth: 1 3743 namespace: 'checker::' 3744 - name: 'memberProxyType' 3745 type: 3746 name: es2panda_Type 3747 ptr_depth: 1 3748 namespace: 'checker::' 3749 return_args: 3750 - name: '|arg_name|MemberProxyType' 3751 type: 3752 name: es2panda_Type 3753 ptr_depth: 2 3754 cast: 3755 expression: "\ 3756 auto es2pandaGlobalSignature = reinterpret_cast<checker::Signature *>(globalSignature);\n 3757 auto es2pandaMemberProxyType = reinterpret_cast<checker::ETSFunctionType *>(memberProxyType);\n 3758 " 3759 reverse_cast: 3760 start: >- 3761 auto resMethod = 3762 end: ";\n 3763 \t(*|arg_name|MemberProxyType) = reinterpret_cast<es2panda_Type *>(resMethod.memberProxyType);\n 3764 \tauto apiRes = reinterpret_cast<es2panda_Signature *>(resMethod.globalSignature)" 3765 var_name: "checker::ETSEnumType::Method {es2pandaGlobalSignature, es2pandaMemberProxyType}" 3766 3767 - es2panda_arg: 3768 name: '|arg_name|' 3769 type: 3770 name: DynamicImportData 3771 namespace: varbinder 3772 max_ptr_depth: 1 3773 min_ptr_depth: 1 3774 new_args: 3775 - name: '|arg_name|' 3776 type: 3777 name: es2panda_DynamicImportData 3778 ptr_depth: 1 3779 namespace: 'varbinder::' 3780 cast: 3781 expression: "\ 3782 auto |arg_name|import = reinterpret_cast<const ir::ETSImportDeclaration *>(|arg_name|->import);\n 3783 auto |arg_name|specifier = reinterpret_cast<const ir::AstNode *>(|arg_name|->specifier);\n 3784 auto |arg_name|variable = reinterpret_cast<varbinder::Variable *>(|arg_name|->variable);\n 3785 auto |arg_name|E2p = reinterpret_cast<Context *>(context)->allocator->New<varbinder::DynamicImportData>() 3786 |arg_name|E2p->import = |arg_name|import;\n 3787 |arg_name|E2p->specifier = |arg_name|specifier;\n 3788 |arg_name|E2p->variable = |arg_name|variable;\n" 3789 reverse_cast: 3790 start: DynamicImportDataToE2pPtr(reinterpret_cast<Context *>(context)->allocator, 3791 end: ) 3792 var_name: "|arg_name|E2p" 3793 3794 - es2panda_arg: 3795 name: '|arg_name|' 3796 type: 3797 name: DynamicImportData 3798 namespace: varbinder 3799 max_ptr_depth: 0 3800 new_args: 3801 - name: '|arg_name|' 3802 type: 3803 name: es2panda_DynamicImportData 3804 ptr_depth: 0 3805 namespace: 'varbinder::' 3806 cast: 3807 expression: "\ 3808 auto |arg_name|import = reinterpret_cast<const ir::ETSImportDeclaration *>(|arg_name|.import);\n 3809 auto |arg_name|specifier = reinterpret_cast<const ir::AstNode *>(|arg_name|.specifier);\n 3810 auto |arg_name|variable = reinterpret_cast<varbinder::Variable *>(|arg_name|.variable);\n 3811 varbinder::DynamicImportData |arg_name|E2p; 3812 |arg_name|E2p.import = |arg_name|import;\n 3813 |arg_name|E2p.specifier = |arg_name|specifier;\n 3814 |arg_name|E2p.variable = |arg_name|variable;\n" 3815 reverse_cast: 3816 start: DynamicImportDataToE2p( 3817 end: ) 3818 var_name: "|arg_name|E2p" 3819 3820 - es2panda_arg: 3821 name: '|arg_name|' 3822 type: 3823 name: OverloadInfo 3824 namespace: ir 3825 max_ptr_depth: 1 3826 min_ptr_depth: 1 3827 new_args: 3828 - name: '|arg_name|' 3829 type: 3830 name: es2panda_OverloadInfo 3831 ptr_depth: 1 3832 namespace: 'ir::' 3833 cast: 3834 expression: "\ 3835 auto |arg_name|E2p = reinterpret_cast<Context *>(context)->allocator->New<ir::OverloadInfo>(); 3836 |arg_name|E2p->minArg = |arg_name|->minArg;\n 3837 |arg_name|E2p->maxArg = |arg_name|->maxArg;\n 3838 |arg_name|E2p->needHelperOverload = |arg_name|->needHelperOverload;\n 3839 |arg_name|E2p->isDeclare = |arg_name|->isDeclare;\n 3840 |arg_name|E2p->hasRestVar = |arg_name|->hasRestVar;\n 3841 |arg_name|E2p->returnVoid = |arg_name|->returnVoid;\n" 3842 reverse_cast: 3843 start: OverloadInfoToE2pPtr(reinterpret_cast<Context *>(context)->allocator, 3844 end: ) 3845 var_name: "|arg_name|E2p" 3846 3847 - es2panda_arg: 3848 name: '|arg_name|' 3849 type: 3850 name: OverloadInfo 3851 namespace: ir 3852 max_ptr_depth: 0 3853 new_args: 3854 - name: '|arg_name|' 3855 type: 3856 name: es2panda_OverloadInfo 3857 ptr_depth: 0 3858 namespace: 'ir::' 3859 cast: 3860 expression: "\ 3861 ir::OverloadInfo |arg_name|E2p; 3862 |arg_name|E2p.minArg = |arg_name|.minArg;\n 3863 |arg_name|E2p.maxArg = |arg_name|.maxArg;\n 3864 |arg_name|E2p.needHelperOverload = |arg_name|.needHelperOverload;\n 3865 |arg_name|E2p.isDeclare = |arg_name|.isDeclare;\n 3866 |arg_name|E2p.hasRestVar = |arg_name|.hasRestVar;\n 3867 |arg_name|E2p.returnVoid = |arg_name|.returnVoid;\n" 3868 reverse_cast: 3869 start: OverloadInfoToE2p( 3870 end: ) 3871 var_name: "|arg_name|E2p" 3872 3873 - es2panda_arg: 3874 name: '|arg_name|' 3875 type: 3876 name: Accessor 3877 namespace: checker 3878 max_ptr_depth: 0 3879 new_args: 3880 - name: '|arg_name|isGetter' 3881 type: 3882 name: bool 3883 ptr_depth: 0 3884 namespace: 'checker::' 3885 - name: '|arg_name|isSetter' 3886 type: 3887 name: bool 3888 ptr_depth: 0 3889 namespace: 'checker::' 3890 - name: '|arg_name|isExternal' 3891 type: 3892 name: bool 3893 ptr_depth: 0 3894 namespace: 'checker::' 3895 cast: 3896 expression: " 3897 checker::Accessor |arg_name|E2p; 3898 |arg_name|E2p.isGetter = |arg_name|isGetter;\n 3899 |arg_name|E2p.isSetter = |arg_name|isSetter;\n 3900 |arg_name|E2p.isExternal = |arg_name|isExternal;\n" 3901 var_name: "|arg_name|E2p" 3902 3903 - es2panda_arg: 3904 name: '|arg_name|' 3905 type: 3906 name: 'ImportPathManager' 3907 min_ptr_depth: 1 3908 new_args: 3909 - type: 3910 name: 'es2panda_ImportPathManager' 3911 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3912 name: '|arg_name|' 3913 cast: 3914 expression: >- 3915 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 3916 reinterpret_cast<util::ImportPathManager |es2panda_arg.type.ptr_depth|>(|arg_name|); 3917 reverse_cast: 3918 start: >- 3919 reinterpret_cast<?const? es2panda_ImportPathManager |es2panda_arg.type.ptr_depth|> 3920 call_cast: 3921 call_var: 3922 name: classInstance 3923 type: 3924 name: es2panda_ImportPathManager 3925 ptr_depth: 1 3926 start: >- 3927 (reinterpret_cast<?const? util::ImportPathManager *>(classInstance))-> 3928 constructor_cast: 3929 start: >- 3930 ctxAllocator->New<util::ImportPathManager>( 3931 end: ) 3932 var_name: '|arg_name|E2p' 3933 3934 - es2panda_arg: 3935 name: '|arg_name|' 3936 type: 3937 name: Path 3938 namespace: util 3939 max_ptr_depth: 0 3940 new_args: 3941 - type: 3942 name: es2panda_Path 3943 ptr_depth: 1 3944 name: '|arg_name|' 3945 cast: 3946 expression: >- 3947 auto &|arg_name|E2p = 3948 *(reinterpret_cast<util::Path *>(|arg_name|)); 3949 reverse_cast: 3950 start: >- 3951 reinterpret_cast<?const? es2panda_Path *>(reinterpret_cast<Context *>(context)->allocator-> 3952 New<util::Path> 3953 end: ) 3954 var_name: '|arg_name|E2p' 3955 3956 - es2panda_arg: 3957 name: '|arg_name|' 3958 type: 3959 name: Path 3960 namespace: util 3961 min_ptr_depth: 1 3962 new_args: 3963 - type: 3964 name: 'es2panda_Path' 3965 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3966 name: '|arg_name|' 3967 cast: 3968 expression: >- 3969 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 3970 reinterpret_cast<util::Path |es2panda_arg.type.ptr_depth|>(|arg_name|); 3971 reverse_cast: 3972 start: >- 3973 reinterpret_cast<?const? es2panda_Path |es2panda_arg.type.ptr_depth|> 3974 call_cast: 3975 call_var: 3976 name: classInstance 3977 type: 3978 name: es2panda_Path 3979 ptr_depth: 1 3980 start: >- 3981 (reinterpret_cast<?const? util::Path *>(classInstance))-> 3982 constructor_cast: 3983 start: >- 3984 ctxAllocator->New<util::Path>( 3985 end: ) 3986 var_name: '|arg_name|E2p' 3987 3988 - es2panda_arg: 3989 name: '|arg_name|' 3990 type: 3991 name: 'Options' 3992 namespace: 'gen' 3993 min_ptr_depth: 1 3994 new_args: 3995 - type: 3996 name: 'es2panda_Options' 3997 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 3998 name: '|arg_name|' 3999 cast: 4000 expression: >- 4001 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 4002 reinterpret_cast<util::gen::Options |es2panda_arg.type.ptr_depth|>(|arg_name|); 4003 reverse_cast: 4004 start: >- 4005 reinterpret_cast<?const? es2panda_Options |es2panda_arg.type.ptr_depth|> 4006 call_cast: 4007 call_var: 4008 name: classInstance 4009 type: 4010 name: es2panda_Options 4011 ptr_depth: 1 4012 start: >- 4013 (reinterpret_cast<?const? util::gen::Options *>(classInstance))-> 4014 constructor_cast: 4015 start: >- 4016 ctxAllocator->New<util::gen::Options>( 4017 end: ) 4018 var_name: '|arg_name|E2p' 4019 4020 - es2panda_arg: 4021 name: '|arg_name|' 4022 type: 4023 name: 'Options' 4024 namespace: 'util' 4025 min_ptr_depth: 1 4026 new_args: 4027 - type: 4028 name: 'es2panda_Options' 4029 ptr_depth: '|es2panda_arg.type.ptr_depth_int|' 4030 name: '|arg_name|' 4031 cast: 4032 expression: >- 4033 auto |es2panda_arg.type.ptr_depth||arg_name|E2p = 4034 reinterpret_cast<util::Options |es2panda_arg.type.ptr_depth|>(|arg_name|); 4035 reverse_cast: 4036 start: >- 4037 reinterpret_cast<?const? es2panda_Options |es2panda_arg.type.ptr_depth|> 4038 call_cast: 4039 call_var: 4040 name: classInstance 4041 type: 4042 name: es2panda_Options 4043 ptr_depth: 1 4044 start: >- 4045 (reinterpret_cast<?const? util::Options *>(classInstance))-> 4046 constructor_cast: 4047 start: >- 4048 ctxAllocator->New<util::Options>( 4049 end: ) 4050 var_name: '|arg_name|E2p' 4051 4052 - es2panda_arg: 4053 name: '|arg_name|' 4054 type: 4055 name: arg_list_t 4056 namespace: gen 4057 max_ptr_depth: 0 4058 new_args: 4059 - name: '|arg_name|' 4060 type: 4061 name: vector 4062 namespace: std 4063 ref_depth: 2 4064 template_args: 4065 - type: 4066 name: string 4067 namespace: std 4068 cast: 4069 reverse_cast: {} 4070