[{"__symbolic":"module","version":3,"metadata":{"TypeModifier":{"Const":0},"Type":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":18,"character":32}]}],"visitType":[{"__symbolic":"method"}],"hasModifier":[{"__symbolic":"method"}]}},"BuiltinTypeName":{"Dynamic":0,"Bool":1,"String":2,"Int":3,"Number":4,"Function":5,"Inferred":6},"BuiltinType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":39,"character":27,"context":{"typeName":"BuiltinTypeName"}},{"__symbolic":"error","message":"Expression form not supported","line":39,"character":55}]}],"visitType":[{"__symbolic":"method"}]}},"ExpressionType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":48,"character":51}]}],"visitType":[{"__symbolic":"method"}]}},"ArrayType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type"},{"__symbolic":"error","message":"Expression form not supported","line":56,"character":43}]}],"visitType":[{"__symbolic":"method"}]}},"MapType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":65,"character":25},{"__symbolic":"error","message":"Expression form not supported","line":65,"character":57}]}],"visitType":[{"__symbolic":"method"}]}},"DYNAMIC_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Dynamic"}]},"INFERRED_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Inferred"}]},"BOOL_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Bool"}]},"INT_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Int"}]},"NUMBER_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Number"}]},"STRING_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"String"}]},"FUNCTION_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Function"}]},"TypeVisitor":{"__symbolic":"interface"},"BinaryOperator":{"Equals":0,"NotEquals":1,"Identical":2,"NotIdentical":3,"Minus":4,"Plus":5,"Divide":6,"Multiply":7,"Modulo":8,"And":9,"Or":10,"Lower":11,"LowerEquals":12,"Bigger":13,"BiggerEquals":14},"Expression":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":112,"character":20},{"__symbolic":"error","message":"Expression form not supported","line":112,"character":54}]}],"visitExpression":[{"__symbolic":"method"}],"prop":[{"__symbolic":"method"}],"key":[{"__symbolic":"method"}],"callMethod":[{"__symbolic":"method"}],"callFn":[{"__symbolic":"method"}],"instantiate":[{"__symbolic":"method"}],"conditional":[{"__symbolic":"method"}],"equals":[{"__symbolic":"method"}],"notEquals":[{"__symbolic":"method"}],"identical":[{"__symbolic":"method"}],"notIdentical":[{"__symbolic":"method"}],"minus":[{"__symbolic":"method"}],"plus":[{"__symbolic":"method"}],"divide":[{"__symbolic":"method"}],"multiply":[{"__symbolic":"method"}],"modulo":[{"__symbolic":"method"}],"and":[{"__symbolic":"method"}],"or":[{"__symbolic":"method"}],"lower":[{"__symbolic":"method"}],"lowerEquals":[{"__symbolic":"method"}],"bigger":[{"__symbolic":"method"}],"biggerEquals":[{"__symbolic":"method"}],"isBlank":[{"__symbolic":"method"}],"cast":[{"__symbolic":"method"}],"toStmt":[{"__symbolic":"method"}]}},"BuiltinVar":{"This":0,"Super":1,"CatchError":2,"CatchStack":3},"ReadVarExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":215,"character":20},{"__symbolic":"error","message":"Expression form not supported","line":215,"character":46},{"__symbolic":"error","message":"Expression form not supported","line":215,"character":70}]}],"visitExpression":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"WriteVarExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":241,"character":53},{"__symbolic":"error","message":"Expression form not supported","line":241,"character":77}]}],"visitExpression":[{"__symbolic":"method"}],"toDeclStmt":[{"__symbolic":"method"}]}},"WriteKeyExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":259,"character":87},{"__symbolic":"error","message":"Expression form not supported","line":260,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"WritePropExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":273,"character":82},{"__symbolic":"error","message":"Expression form not supported","line":274,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"BuiltinMethod":{"ConcatArray":0,"SubscribeObservable":1,"Bind":2},"InvokeMethodExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":293,"character":43},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":294,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":294,"character":37}]}],"visitExpression":[{"__symbolic":"method"}]}},"InvokeFunctionExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":312,"character":63},{"__symbolic":"error","message":"Expression form not supported","line":313,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"InstantiateExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":324,"character":70},{"__symbolic":"error","message":"Expression form not supported","line":325,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"LiteralExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"error","message":"Expression form not supported","line":335,"character":40},{"__symbolic":"error","message":"Expression form not supported","line":335,"character":64}]}],"visitExpression":[{"__symbolic":"method"}]}},"ExternalExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../compile_metadata","name":"CompileIdentifierMetadata"},{"__symbolic":"error","message":"Expression form not supported","line":346,"character":54},{"__symbolic":"error","message":"Expression form not supported","line":347,"character":25},{"__symbolic":"error","message":"Expression form not supported","line":347,"character":58}]}],"visitExpression":[{"__symbolic":"method"}]}},"ConditionalExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":359,"character":76},{"__symbolic":"error","message":"Expression form not supported","line":360,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":360,"character":37}]}],"visitExpression":[{"__symbolic":"method"}]}},"NotExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":371,"character":57}]}],"visitExpression":[{"__symbolic":"method"}]}},"CastExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":380,"character":47},{"__symbolic":"error","message":"Expression form not supported","line":380,"character":71}]}],"visitExpression":[{"__symbolic":"method"}]}},"FnParam":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":390,"character":48}]}]}},"FunctionExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"FnParam"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":396,"character":71},{"__symbolic":"error","message":"Expression form not supported","line":397,"character":19}]}],"visitExpression":[{"__symbolic":"method"}],"toDeclStmt":[{"__symbolic":"method"}]}},"BinaryOperatorExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":414,"character":23,"context":{"typeName":"BinaryOperator"}},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":414,"character":87},{"__symbolic":"error","message":"Expression form not supported","line":415,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"ReadPropExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":427,"character":63},{"__symbolic":"error","message":"Expression form not supported","line":428,"character":19}]}],"visitExpression":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"ReadKeyExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":442,"character":68},{"__symbolic":"error","message":"Expression form not supported","line":443,"character":19}]}],"visitExpression":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"LiteralArrayExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":457,"character":44},{"__symbolic":"error","message":"Expression form not supported","line":457,"character":68}]}],"visitExpression":[{"__symbolic":"method"}]}},"LiteralMapEntry":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"boolean"}]}]}},"LiteralMapExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"LiteralMapEntry"}]},{"__symbolic":"error","message":"Expression form not supported","line":473,"character":48},{"__symbolic":"error","message":"Expression form not supported","line":473,"character":75}]}],"visitExpression":[{"__symbolic":"method"}]}},"CommaExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":485,"character":55}]}],"visitExpression":[{"__symbolic":"method"}]}},"ExpressionVisitor":{"__symbolic":"interface"},"THIS_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"This"},null,null]},"SUPER_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"Super"},null,null]},"CATCH_ERROR_VAR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"CatchError"},null,null]},"CATCH_STACK_VAR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"CatchStack"},null,null]},"NULL_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralExpr"},"arguments":[null,null,null]},"TYPED_NULL_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralExpr"},"arguments":[null,{"__symbolic":"reference","name":"INFERRED_TYPE"},null]},"StmtModifier":{"Final":0,"Private":1},"Statement":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":531,"character":26},{"__symbolic":"error","message":"Expression form not supported","line":531,"character":60}]}],"visitStatement":[{"__symbolic":"method"}],"hasModifier":[{"__symbolic":"method"}]}},"DeclareVarStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":545,"character":60},{"__symbolic":"error","message":"Expression form not supported","line":546,"character":17},{"__symbolic":"error","message":"Expression form not supported","line":546,"character":58}]}],"visitStatement":[{"__symbolic":"method"}]}},"DeclareFunctionStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"FnParam"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":560,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":560,"character":35},{"__symbolic":"error","message":"Expression form not supported","line":560,"character":76}]}],"visitStatement":[{"__symbolic":"method"}]}},"ExpressionStatement":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":571,"character":52}]}],"visitStatement":[{"__symbolic":"method"}]}},"ReturnStatement":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":582,"character":53}]}],"visitStatement":[{"__symbolic":"method"}]}},"AbstractClassPart":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":592,"character":20},{"__symbolic":"error","message":"Expression form not supported","line":592,"character":59}]}],"hasModifier":[{"__symbolic":"method"}]}},"ClassField":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractClassPart"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":602,"character":42},{"__symbolic":"error","message":"Expression form not supported","line":602,"character":64}]}]}},"ClassMethod":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractClassPart"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":610,"character":19},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"FnParam"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":611,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":611,"character":35}]}]}},"ClassGetter":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractClassPart"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":619,"character":60},{"__symbolic":"error","message":"Expression form not supported","line":620,"character":17}]}]}},"ClassStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":628,"character":42},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ClassField"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ClassGetter"}]},{"__symbolic":"reference","name":"ClassMethod"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ClassMethod"}]},{"__symbolic":"error","message":"Expression form not supported","line":630,"character":48},{"__symbolic":"error","message":"Expression form not supported","line":631,"character":19}]}],"visitStatement":[{"__symbolic":"method"}]}},"IfStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":643,"character":55}]}],"visitStatement":[{"__symbolic":"method"}]}},"CommentStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":653,"character":51}]}],"visitStatement":[{"__symbolic":"method"}]}},"TryCatchStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":665,"character":19}]}],"visitStatement":[{"__symbolic":"method"}]}},"ThrowStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":675,"character":53}]}],"visitStatement":[{"__symbolic":"method"}]}},"StatementVisitor":{"__symbolic":"interface"},"AstTransformer":{"__symbolic":"class","members":{"transformExpr":[{"__symbolic":"method"}],"transformStmt":[{"__symbolic":"method"}],"visitReadVarExpr":[{"__symbolic":"method"}],"visitWriteVarExpr":[{"__symbolic":"method"}],"visitWriteKeyExpr":[{"__symbolic":"method"}],"visitWritePropExpr":[{"__symbolic":"method"}],"visitInvokeMethodExpr":[{"__symbolic":"method"}],"visitInvokeFunctionExpr":[{"__symbolic":"method"}],"visitInstantiateExpr":[{"__symbolic":"method"}],"visitLiteralExpr":[{"__symbolic":"method"}],"visitExternalExpr":[{"__symbolic":"method"}],"visitConditionalExpr":[{"__symbolic":"method"}],"visitNotExpr":[{"__symbolic":"method"}],"visitCastExpr":[{"__symbolic":"method"}],"visitFunctionExpr":[{"__symbolic":"method"}],"visitBinaryOperatorExpr":[{"__symbolic":"method"}],"visitReadPropExpr":[{"__symbolic":"method"}],"visitReadKeyExpr":[{"__symbolic":"method"}],"visitLiteralArrayExpr":[{"__symbolic":"method"}],"visitLiteralMapExpr":[{"__symbolic":"method"}],"visitCommaExpr":[{"__symbolic":"method"}],"visitAllExpressions":[{"__symbolic":"method"}],"visitDeclareVarStmt":[{"__symbolic":"method"}],"visitDeclareFunctionStmt":[{"__symbolic":"method"}],"visitExpressionStmt":[{"__symbolic":"method"}],"visitReturnStmt":[{"__symbolic":"method"}],"visitDeclareClassStmt":[{"__symbolic":"method"}],"visitIfStmt":[{"__symbolic":"method"}],"visitTryCatchStmt":[{"__symbolic":"method"}],"visitThrowStmt":[{"__symbolic":"method"}],"visitCommentStmt":[{"__symbolic":"method"}],"visitAllStatements":[{"__symbolic":"method"}]}},"RecursiveAstVisitor":{"__symbolic":"class","members":{"visitReadVarExpr":[{"__symbolic":"method"}],"visitWriteVarExpr":[{"__symbolic":"method"}],"visitWriteKeyExpr":[{"__symbolic":"method"}],"visitWritePropExpr":[{"__symbolic":"method"}],"visitInvokeMethodExpr":[{"__symbolic":"method"}],"visitInvokeFunctionExpr":[{"__symbolic":"method"}],"visitInstantiateExpr":[{"__symbolic":"method"}],"visitLiteralExpr":[{"__symbolic":"method"}],"visitExternalExpr":[{"__symbolic":"method"}],"visitConditionalExpr":[{"__symbolic":"method"}],"visitNotExpr":[{"__symbolic":"method"}],"visitCastExpr":[{"__symbolic":"method"}],"visitFunctionExpr":[{"__symbolic":"method"}],"visitBinaryOperatorExpr":[{"__symbolic":"method"}],"visitReadPropExpr":[{"__symbolic":"method"}],"visitReadKeyExpr":[{"__symbolic":"method"}],"visitLiteralArrayExpr":[{"__symbolic":"method"}],"visitLiteralMapExpr":[{"__symbolic":"method"}],"visitCommaExpr":[{"__symbolic":"method"}],"visitAllExpressions":[{"__symbolic":"method"}],"visitDeclareVarStmt":[{"__symbolic":"method"}],"visitDeclareFunctionStmt":[{"__symbolic":"method"}],"visitExpressionStmt":[{"__symbolic":"method"}],"visitReturnStmt":[{"__symbolic":"method"}],"visitDeclareClassStmt":[{"__symbolic":"method"}],"visitIfStmt":[{"__symbolic":"method"}],"visitTryCatchStmt":[{"__symbolic":"method"}],"visitThrowStmt":[{"__symbolic":"method"}],"visitCommentStmt":[{"__symbolic":"method"}],"visitAllStatements":[{"__symbolic":"method"}]}},"findReadVarNames":{"__symbolic":"function"},"applySourceSpanToStatementIfNeeded":{"__symbolic":"function"},"applySourceSpanToExpressionIfNeeded":{"__symbolic":"function"},"variable":{"__symbolic":"function","parameters":["name","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"reference","name":"name"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}},"importExpr":{"__symbolic":"function","parameters":["id","typeParams","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ExternalExpr"},"arguments":[{"__symbolic":"reference","name":"id"},null,{"__symbolic":"reference","name":"typeParams"},{"__symbolic":"reference","name":"sourceSpan"}]},"defaults":[null,null,null]},"importType":{"__symbolic":"function","parameters":["id","typeParams","typeModifiers"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"id"},"right":null},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"expressionType"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"importExpr"},"arguments":[{"__symbolic":"reference","name":"id"},{"__symbolic":"reference","name":"typeParams"},null]},{"__symbolic":"reference","name":"typeModifiers"}]},"elseExpression":null},"defaults":[null,null,null]},"expressionType":{"__symbolic":"function","parameters":["expr","typeModifiers"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"expr"},"right":null},"thenExpression":{"__symbolic":"error","message":"Expression form not supported","line":1121,"character":24},"elseExpression":null},"defaults":[null,null]},"literalArr":{"__symbolic":"function","parameters":["values","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralArrayExpr"},"arguments":[{"__symbolic":"reference","name":"values"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}},"literalMap":{"__symbolic":"function","parameters":["values","type","quoted"],"value":{"__symbolic":"error","message":"Function call not supported","line":1134,"character":17},"defaults":[null,null,false]},"not":{"__symbolic":"function","parameters":["expr","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NotExpr"},"arguments":[{"__symbolic":"reference","name":"expr"},{"__symbolic":"reference","name":"sourceSpan"}]}},"fn":{"__symbolic":"function","parameters":["params","body","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FunctionExpr"},"arguments":[{"__symbolic":"reference","name":"params"},{"__symbolic":"reference","name":"body"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}},"literal":{"__symbolic":"function","parameters":["value","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralExpr"},"arguments":[{"__symbolic":"reference","name":"value"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}}}},{"__symbolic":"module","version":1,"metadata":{"TypeModifier":{"Const":0},"Type":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":18,"character":32}]}],"visitType":[{"__symbolic":"method"}],"hasModifier":[{"__symbolic":"method"}]}},"BuiltinTypeName":{"Dynamic":0,"Bool":1,"String":2,"Int":3,"Number":4,"Function":5,"Inferred":6},"BuiltinType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":39,"character":27,"context":{"typeName":"BuiltinTypeName"}},{"__symbolic":"error","message":"Expression form not supported","line":39,"character":55}]}],"visitType":[{"__symbolic":"method"}]}},"ExpressionType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":48,"character":51}]}],"visitType":[{"__symbolic":"method"}]}},"ArrayType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type"},{"__symbolic":"error","message":"Expression form not supported","line":56,"character":43}]}],"visitType":[{"__symbolic":"method"}]}},"MapType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Type"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":65,"character":25},{"__symbolic":"error","message":"Expression form not supported","line":65,"character":57}]}],"visitType":[{"__symbolic":"method"}]}},"DYNAMIC_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Dynamic"}]},"INFERRED_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Inferred"}]},"BOOL_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Bool"}]},"INT_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Int"}]},"NUMBER_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Number"}]},"STRING_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"String"}]},"FUNCTION_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BuiltinType"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinTypeName"},"member":"Function"}]},"TypeVisitor":{"__symbolic":"interface"},"BinaryOperator":{"Equals":0,"NotEquals":1,"Identical":2,"NotIdentical":3,"Minus":4,"Plus":5,"Divide":6,"Multiply":7,"Modulo":8,"And":9,"Or":10,"Lower":11,"LowerEquals":12,"Bigger":13,"BiggerEquals":14},"Expression":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":112,"character":20},{"__symbolic":"error","message":"Expression form not supported","line":112,"character":54}]}],"visitExpression":[{"__symbolic":"method"}],"prop":[{"__symbolic":"method"}],"key":[{"__symbolic":"method"}],"callMethod":[{"__symbolic":"method"}],"callFn":[{"__symbolic":"method"}],"instantiate":[{"__symbolic":"method"}],"conditional":[{"__symbolic":"method"}],"equals":[{"__symbolic":"method"}],"notEquals":[{"__symbolic":"method"}],"identical":[{"__symbolic":"method"}],"notIdentical":[{"__symbolic":"method"}],"minus":[{"__symbolic":"method"}],"plus":[{"__symbolic":"method"}],"divide":[{"__symbolic":"method"}],"multiply":[{"__symbolic":"method"}],"modulo":[{"__symbolic":"method"}],"and":[{"__symbolic":"method"}],"or":[{"__symbolic":"method"}],"lower":[{"__symbolic":"method"}],"lowerEquals":[{"__symbolic":"method"}],"bigger":[{"__symbolic":"method"}],"biggerEquals":[{"__symbolic":"method"}],"isBlank":[{"__symbolic":"method"}],"cast":[{"__symbolic":"method"}],"toStmt":[{"__symbolic":"method"}]}},"BuiltinVar":{"This":0,"Super":1,"CatchError":2,"CatchStack":3},"ReadVarExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":215,"character":20},{"__symbolic":"error","message":"Expression form not supported","line":215,"character":46},{"__symbolic":"error","message":"Expression form not supported","line":215,"character":70}]}],"visitExpression":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"WriteVarExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":241,"character":53},{"__symbolic":"error","message":"Expression form not supported","line":241,"character":77}]}],"visitExpression":[{"__symbolic":"method"}],"toDeclStmt":[{"__symbolic":"method"}]}},"WriteKeyExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":259,"character":87},{"__symbolic":"error","message":"Expression form not supported","line":260,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"WritePropExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":273,"character":82},{"__symbolic":"error","message":"Expression form not supported","line":274,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"BuiltinMethod":{"ConcatArray":0,"SubscribeObservable":1,"Bind":2},"InvokeMethodExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":293,"character":43},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":294,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":294,"character":37}]}],"visitExpression":[{"__symbolic":"method"}]}},"InvokeFunctionExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":312,"character":63},{"__symbolic":"error","message":"Expression form not supported","line":313,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"InstantiateExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":324,"character":70},{"__symbolic":"error","message":"Expression form not supported","line":325,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"LiteralExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"error","message":"Expression form not supported","line":335,"character":40},{"__symbolic":"error","message":"Expression form not supported","line":335,"character":64}]}],"visitExpression":[{"__symbolic":"method"}]}},"ExternalExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../compile_metadata","name":"CompileIdentifierMetadata"},{"__symbolic":"error","message":"Expression form not supported","line":346,"character":54},{"__symbolic":"error","message":"Expression form not supported","line":347,"character":25},{"__symbolic":"error","message":"Expression form not supported","line":347,"character":58}]}],"visitExpression":[{"__symbolic":"method"}]}},"ConditionalExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":359,"character":76},{"__symbolic":"error","message":"Expression form not supported","line":360,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":360,"character":37}]}],"visitExpression":[{"__symbolic":"method"}]}},"NotExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":371,"character":57}]}],"visitExpression":[{"__symbolic":"method"}]}},"CastExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":380,"character":47},{"__symbolic":"error","message":"Expression form not supported","line":380,"character":71}]}],"visitExpression":[{"__symbolic":"method"}]}},"FnParam":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":390,"character":48}]}]}},"FunctionExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"FnParam"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":396,"character":71},{"__symbolic":"error","message":"Expression form not supported","line":397,"character":19}]}],"visitExpression":[{"__symbolic":"method"}],"toDeclStmt":[{"__symbolic":"method"}]}},"BinaryOperatorExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":414,"character":23,"context":{"typeName":"BinaryOperator"}},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":414,"character":87},{"__symbolic":"error","message":"Expression form not supported","line":415,"character":19}]}],"visitExpression":[{"__symbolic":"method"}]}},"ReadPropExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":427,"character":63},{"__symbolic":"error","message":"Expression form not supported","line":428,"character":19}]}],"visitExpression":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"ReadKeyExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":442,"character":68},{"__symbolic":"error","message":"Expression form not supported","line":443,"character":19}]}],"visitExpression":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"LiteralArrayExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":457,"character":44},{"__symbolic":"error","message":"Expression form not supported","line":457,"character":68}]}],"visitExpression":[{"__symbolic":"method"}]}},"LiteralMapEntry":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"boolean"}]}]}},"LiteralMapExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"LiteralMapEntry"}]},{"__symbolic":"error","message":"Expression form not supported","line":473,"character":48},{"__symbolic":"error","message":"Expression form not supported","line":473,"character":75}]}],"visitExpression":[{"__symbolic":"method"}]}},"CommaExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Expression"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Expression"}]},{"__symbolic":"error","message":"Expression form not supported","line":485,"character":55}]}],"visitExpression":[{"__symbolic":"method"}]}},"ExpressionVisitor":{"__symbolic":"interface"},"THIS_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"This"},null,null]},"SUPER_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"Super"},null,null]},"CATCH_ERROR_VAR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"CatchError"},null,null]},"CATCH_STACK_VAR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"BuiltinVar"},"member":"CatchStack"},null,null]},"NULL_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralExpr"},"arguments":[null,null,null]},"TYPED_NULL_EXPR":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralExpr"},"arguments":[null,{"__symbolic":"reference","name":"INFERRED_TYPE"},null]},"StmtModifier":{"Final":0,"Private":1},"Statement":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":531,"character":26},{"__symbolic":"error","message":"Expression form not supported","line":531,"character":60}]}],"visitStatement":[{"__symbolic":"method"}],"hasModifier":[{"__symbolic":"method"}]}},"DeclareVarStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":545,"character":60},{"__symbolic":"error","message":"Expression form not supported","line":546,"character":17},{"__symbolic":"error","message":"Expression form not supported","line":546,"character":58}]}],"visitStatement":[{"__symbolic":"method"}]}},"DeclareFunctionStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"FnParam"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":560,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":560,"character":35},{"__symbolic":"error","message":"Expression form not supported","line":560,"character":76}]}],"visitStatement":[{"__symbolic":"method"}]}},"ExpressionStatement":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":571,"character":52}]}],"visitStatement":[{"__symbolic":"method"}]}},"ReturnStatement":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":582,"character":53}]}],"visitStatement":[{"__symbolic":"method"}]}},"AbstractClassPart":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":592,"character":20},{"__symbolic":"error","message":"Expression form not supported","line":592,"character":59}]}],"hasModifier":[{"__symbolic":"method"}]}},"ClassField":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractClassPart"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":602,"character":42},{"__symbolic":"error","message":"Expression form not supported","line":602,"character":64}]}]}},"ClassMethod":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractClassPart"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":610,"character":19},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"FnParam"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":611,"character":13},{"__symbolic":"error","message":"Expression form not supported","line":611,"character":35}]}]}},"ClassGetter":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractClassPart"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":619,"character":60},{"__symbolic":"error","message":"Expression form not supported","line":620,"character":17}]}]}},"ClassStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":628,"character":42},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ClassField"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ClassGetter"}]},{"__symbolic":"reference","name":"ClassMethod"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ClassMethod"}]},{"__symbolic":"error","message":"Expression form not supported","line":630,"character":48},{"__symbolic":"error","message":"Expression form not supported","line":631,"character":19}]}],"visitStatement":[{"__symbolic":"method"}]}},"IfStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":643,"character":55}]}],"visitStatement":[{"__symbolic":"method"}]}},"CommentStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":653,"character":51}]}],"visitStatement":[{"__symbolic":"method"}]}},"TryCatchStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Statement"}]},{"__symbolic":"error","message":"Expression form not supported","line":665,"character":19}]}],"visitStatement":[{"__symbolic":"method"}]}},"ThrowStmt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Statement"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Expression"},{"__symbolic":"error","message":"Expression form not supported","line":675,"character":53}]}],"visitStatement":[{"__symbolic":"method"}]}},"StatementVisitor":{"__symbolic":"interface"},"AstTransformer":{"__symbolic":"class","members":{"transformExpr":[{"__symbolic":"method"}],"transformStmt":[{"__symbolic":"method"}],"visitReadVarExpr":[{"__symbolic":"method"}],"visitWriteVarExpr":[{"__symbolic":"method"}],"visitWriteKeyExpr":[{"__symbolic":"method"}],"visitWritePropExpr":[{"__symbolic":"method"}],"visitInvokeMethodExpr":[{"__symbolic":"method"}],"visitInvokeFunctionExpr":[{"__symbolic":"method"}],"visitInstantiateExpr":[{"__symbolic":"method"}],"visitLiteralExpr":[{"__symbolic":"method"}],"visitExternalExpr":[{"__symbolic":"method"}],"visitConditionalExpr":[{"__symbolic":"method"}],"visitNotExpr":[{"__symbolic":"method"}],"visitCastExpr":[{"__symbolic":"method"}],"visitFunctionExpr":[{"__symbolic":"method"}],"visitBinaryOperatorExpr":[{"__symbolic":"method"}],"visitReadPropExpr":[{"__symbolic":"method"}],"visitReadKeyExpr":[{"__symbolic":"method"}],"visitLiteralArrayExpr":[{"__symbolic":"method"}],"visitLiteralMapExpr":[{"__symbolic":"method"}],"visitCommaExpr":[{"__symbolic":"method"}],"visitAllExpressions":[{"__symbolic":"method"}],"visitDeclareVarStmt":[{"__symbolic":"method"}],"visitDeclareFunctionStmt":[{"__symbolic":"method"}],"visitExpressionStmt":[{"__symbolic":"method"}],"visitReturnStmt":[{"__symbolic":"method"}],"visitDeclareClassStmt":[{"__symbolic":"method"}],"visitIfStmt":[{"__symbolic":"method"}],"visitTryCatchStmt":[{"__symbolic":"method"}],"visitThrowStmt":[{"__symbolic":"method"}],"visitCommentStmt":[{"__symbolic":"method"}],"visitAllStatements":[{"__symbolic":"method"}]}},"RecursiveAstVisitor":{"__symbolic":"class","members":{"visitReadVarExpr":[{"__symbolic":"method"}],"visitWriteVarExpr":[{"__symbolic":"method"}],"visitWriteKeyExpr":[{"__symbolic":"method"}],"visitWritePropExpr":[{"__symbolic":"method"}],"visitInvokeMethodExpr":[{"__symbolic":"method"}],"visitInvokeFunctionExpr":[{"__symbolic":"method"}],"visitInstantiateExpr":[{"__symbolic":"method"}],"visitLiteralExpr":[{"__symbolic":"method"}],"visitExternalExpr":[{"__symbolic":"method"}],"visitConditionalExpr":[{"__symbolic":"method"}],"visitNotExpr":[{"__symbolic":"method"}],"visitCastExpr":[{"__symbolic":"method"}],"visitFunctionExpr":[{"__symbolic":"method"}],"visitBinaryOperatorExpr":[{"__symbolic":"method"}],"visitReadPropExpr":[{"__symbolic":"method"}],"visitReadKeyExpr":[{"__symbolic":"method"}],"visitLiteralArrayExpr":[{"__symbolic":"method"}],"visitLiteralMapExpr":[{"__symbolic":"method"}],"visitCommaExpr":[{"__symbolic":"method"}],"visitAllExpressions":[{"__symbolic":"method"}],"visitDeclareVarStmt":[{"__symbolic":"method"}],"visitDeclareFunctionStmt":[{"__symbolic":"method"}],"visitExpressionStmt":[{"__symbolic":"method"}],"visitReturnStmt":[{"__symbolic":"method"}],"visitDeclareClassStmt":[{"__symbolic":"method"}],"visitIfStmt":[{"__symbolic":"method"}],"visitTryCatchStmt":[{"__symbolic":"method"}],"visitThrowStmt":[{"__symbolic":"method"}],"visitCommentStmt":[{"__symbolic":"method"}],"visitAllStatements":[{"__symbolic":"method"}]}},"findReadVarNames":{"__symbolic":"function"},"applySourceSpanToStatementIfNeeded":{"__symbolic":"function"},"applySourceSpanToExpressionIfNeeded":{"__symbolic":"function"},"variable":{"__symbolic":"function","parameters":["name","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ReadVarExpr"},"arguments":[{"__symbolic":"reference","name":"name"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}},"importExpr":{"__symbolic":"function","parameters":["id","typeParams","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ExternalExpr"},"arguments":[{"__symbolic":"reference","name":"id"},null,{"__symbolic":"reference","name":"typeParams"},{"__symbolic":"reference","name":"sourceSpan"}]},"defaults":[null,null,null]},"importType":{"__symbolic":"function","parameters":["id","typeParams","typeModifiers"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"id"},"right":null},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"expressionType"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"importExpr"},"arguments":[{"__symbolic":"reference","name":"id"},{"__symbolic":"reference","name":"typeParams"},null]},{"__symbolic":"reference","name":"typeModifiers"}]},"elseExpression":null},"defaults":[null,null,null]},"expressionType":{"__symbolic":"function","parameters":["expr","typeModifiers"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"expr"},"right":null},"thenExpression":{"__symbolic":"error","message":"Expression form not supported","line":1121,"character":24},"elseExpression":null},"defaults":[null,null]},"literalArr":{"__symbolic":"function","parameters":["values","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralArrayExpr"},"arguments":[{"__symbolic":"reference","name":"values"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}},"literalMap":{"__symbolic":"function","parameters":["values","type","quoted"],"value":{"__symbolic":"error","message":"Function call not supported","line":1134,"character":17},"defaults":[null,null,false]},"not":{"__symbolic":"function","parameters":["expr","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NotExpr"},"arguments":[{"__symbolic":"reference","name":"expr"},{"__symbolic":"reference","name":"sourceSpan"}]}},"fn":{"__symbolic":"function","parameters":["params","body","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FunctionExpr"},"arguments":[{"__symbolic":"reference","name":"params"},{"__symbolic":"reference","name":"body"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}},"literal":{"__symbolic":"function","parameters":["value","type","sourceSpan"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiteralExpr"},"arguments":[{"__symbolic":"reference","name":"value"},{"__symbolic":"reference","name":"type"},{"__symbolic":"reference","name":"sourceSpan"}]}}}}]