1Hi there! 2--- 3After parse: 4--- 5Found Expression: 6{ 7 "type": "Identifier", 8 "name": "GoodGreeter", 9 "decorators": [] 10} 11--- 12Found Expression: 13{ 14 "type": "Identifier", 15 "name": "name", 16 "decorators": [] 17} 18--- 19Found Expression: 20{ 21 "type": "ETSTypeReference", 22 "part": { 23 "type": "ETSTypeReferencePart", 24 "name": { 25 "type": "Identifier", 26 "name": "string", 27 "decorators": [] 28 } 29 } 30} 31--- 32Found Expression: 33{ 34 "type": "ETSTypeReferencePart", 35 "name": { 36 "type": "Identifier", 37 "name": "string", 38 "decorators": [] 39 } 40} 41--- 42Found Expression: 43{ 44 "type": "Identifier", 45 "name": "string", 46 "decorators": [] 47} 48--- 49Found Expression: 50{ 51 "type": "Identifier", 52 "name": "invoke", 53 "decorators": [] 54} 55--- 56Found Expression: 57{ 58 "type": "FunctionExpression", 59 "function": { 60 "type": "ScriptFunction", 61 "id": { 62 "type": "Identifier", 63 "name": "invoke", 64 "decorators": [] 65 }, 66 "generator": false, 67 "async": false, 68 "expression": false, 69 "params": [], 70 "returnType": { 71 "type": "ETSPrimitiveType" 72 }, 73 "body": { 74 "type": "BlockStatement", 75 "statements": [ 76 { 77 "type": "ReturnStatement", 78 "argument": { 79 "type": "NumberLiteral", 80 "value": 5 81 } 82 } 83 ] 84 } 85 } 86} 87--- 88Found Expression: 89{ 90 "type": "Identifier", 91 "name": "invoke", 92 "decorators": [] 93} 94--- 95Found Expression: 96{ 97 "type": "ETSPrimitiveType" 98} 99--- 100Found Expression: 101{ 102 "type": "NumberLiteral", 103 "value": 5 104} 105--- 106Found Expression: 107{ 108 "type": "Identifier", 109 "name": "constructor", 110 "decorators": [] 111} 112--- 113Found Expression: 114{ 115 "type": "FunctionExpression", 116 "function": { 117 "type": "ScriptFunction", 118 "id": { 119 "type": "Identifier", 120 "name": "constructor", 121 "decorators": [] 122 }, 123 "generator": false, 124 "async": false, 125 "expression": false, 126 "params": [], 127 "body": { 128 "type": "BlockStatement", 129 "statements": [ 130 { 131 "type": "ExpressionStatement", 132 "expression": { 133 "type": "AssignmentExpression", 134 "operator": "=", 135 "left": { 136 "type": "MemberExpression", 137 "object": { 138 "type": "ThisExpression" 139 }, 140 "property": { 141 "type": "Identifier", 142 "name": "name", 143 "decorators": [] 144 }, 145 "computed": false, 146 "optional": false 147 }, 148 "right": { 149 "type": "StringLiteral", 150 "value": "hello" 151 } 152 } 153 } 154 ] 155 } 156 } 157} 158--- 159Found Expression: 160{ 161 "type": "Identifier", 162 "name": "constructor", 163 "decorators": [] 164} 165--- 166Found Expression: 167{ 168 "type": "AssignmentExpression", 169 "operator": "=", 170 "left": { 171 "type": "MemberExpression", 172 "object": { 173 "type": "ThisExpression" 174 }, 175 "property": { 176 "type": "Identifier", 177 "name": "name", 178 "decorators": [] 179 }, 180 "computed": false, 181 "optional": false 182 }, 183 "right": { 184 "type": "StringLiteral", 185 "value": "hello" 186 } 187} 188--- 189Found Expression: 190{ 191 "type": "MemberExpression", 192 "object": { 193 "type": "ThisExpression" 194 }, 195 "property": { 196 "type": "Identifier", 197 "name": "name", 198 "decorators": [] 199 }, 200 "computed": false, 201 "optional": false 202} 203--- 204Found Expression: 205{ 206 "type": "ThisExpression" 207} 208--- 209Found Expression: 210{ 211 "type": "Identifier", 212 "name": "name", 213 "decorators": [] 214} 215--- 216Found Expression: 217{ 218 "type": "StringLiteral", 219 "value": "hello" 220} 221--- 222Found Expression: 223{ 224 "type": "Identifier", 225 "name": "a", 226 "decorators": [] 227} 228--- 229Found Expression: 230{ 231 "type": "CallExpression", 232 "callee": { 233 "type": "Identifier", 234 "name": "GoodGreeter", 235 "decorators": [] 236 }, 237 "arguments": [], 238 "optional": false 239} 240--- 241Found Expression: 242{ 243 "type": "Identifier", 244 "name": "GoodGreeter", 245 "decorators": [] 246} 247--- 248Found Expression: 249{ 250 "type": "Identifier", 251 "name": "main", 252 "decorators": [] 253} 254--- 255Found Expression: 256{ 257 "type": "Identifier", 258 "name": "m", 259 "typeAnnotation": { 260 "type": "ETSPrimitiveType" 261 }, 262 "decorators": [] 263} 264--- 265Found Expression: 266{ 267 "type": "ETSPrimitiveType" 268} 269--- 270Found Expression: 271{ 272 "type": "NumberLiteral", 273 "value": 1 274} 275--- 276Found Expression: 277{ 278 "type": "Identifier", 279 "name": "n", 280 "typeAnnotation": { 281 "type": "ETSPrimitiveType" 282 }, 283 "decorators": [] 284} 285--- 286Found Expression: 287{ 288 "type": "ETSPrimitiveType" 289} 290--- 291Found Expression: 292{ 293 "type": "NumberLiteral", 294 "value": 2 295} 296--- 297Found Expression: 298{ 299 "type": "CallExpression", 300 "callee": { 301 "type": "MemberExpression", 302 "object": { 303 "type": "Identifier", 304 "name": "console", 305 "decorators": [] 306 }, 307 "property": { 308 "type": "Identifier", 309 "name": "log", 310 "decorators": [] 311 }, 312 "computed": false, 313 "optional": false 314 }, 315 "arguments": [ 316 { 317 "type": "BinaryExpression", 318 "operator": "+", 319 "left": { 320 "type": "Identifier", 321 "name": "m", 322 "decorators": [] 323 }, 324 "right": { 325 "type": "Identifier", 326 "name": "n", 327 "decorators": [] 328 } 329 } 330 ], 331 "optional": false 332} 333--- 334Found Expression: 335{ 336 "type": "MemberExpression", 337 "object": { 338 "type": "Identifier", 339 "name": "console", 340 "decorators": [] 341 }, 342 "property": { 343 "type": "Identifier", 344 "name": "log", 345 "decorators": [] 346 }, 347 "computed": false, 348 "optional": false 349} 350--- 351Found Expression: 352{ 353 "type": "Identifier", 354 "name": "console", 355 "decorators": [] 356} 357--- 358Found Expression: 359{ 360 "type": "Identifier", 361 "name": "log", 362 "decorators": [] 363} 364--- 365Found Expression: 366{ 367 "type": "BinaryExpression", 368 "operator": "+", 369 "left": { 370 "type": "Identifier", 371 "name": "m", 372 "decorators": [] 373 }, 374 "right": { 375 "type": "Identifier", 376 "name": "n", 377 "decorators": [] 378 } 379} 380--- 381Found Expression: 382{ 383 "type": "Identifier", 384 "name": "m", 385 "decorators": [] 386} 387--- 388Found Expression: 389{ 390 "type": "Identifier", 391 "name": "n", 392 "decorators": [] 393} 394--- 395After check: 396--- 397After lowerings: 398--- 399