fixed.cs: # 3| [Class] Fixed # 5| 5: [Method] fixed1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; # 7| 0: [LocalVariableDeclAndInitExpr] Byte[] buffer = ... # 7| -1: [TypeMention] Byte[] # 7| 1: [TypeMention] byte # 7| 0: [LocalVariableAccess] access to local variable buffer # 7| 1: [ArrayCreation] array creation of type Byte[] # 7| -1: [TypeMention] Byte[] # 7| 1: [TypeMention] byte # 7| 0: [IntLiteral] 10 # 9| 1: [FixedStmt] fixed(...) { ... } # 9| -1: [LocalVariableDeclAndInitExpr] Byte* pinned_buffer = ... # 9| -1: [TypeMention] byte* # 9| 1: [TypeMention] byte # 9| 0: [LocalVariableAccess] access to local variable pinned_buffer # 9| 1: [AddressOfExpr] &... # 9| 0: [ArrayAccess] access to array element # 9| -1: [LocalVariableAccess] access to local variable buffer # 9| 0: [IntLiteral] 0 # 10| 0: [BlockStmt] {...} # 11| 0: [LocalVariableDeclStmt] ... ...; # 11| 0: [LocalVariableDeclAndInitExpr] Byte* t = ... # 11| -1: [TypeMention] byte* # 11| 0: [LocalVariableAccess] access to local variable t # 11| 1: [LocalVariableAccess] access to local variable pinned_buffer # 12| 1: [ExprStmt] ...; # 12| 0: [MethodCall] call to method fixed1 # 15| 2: [FixedStmt] fixed(...) { ... } # 15| -1: [LocalVariableDeclAndInitExpr] Byte* pinned_buffer = ... # 15| -1: [TypeMention] byte* # 15| 1: [TypeMention] byte # 15| 0: [LocalVariableAccess] access to local variable pinned_buffer # 15| 1: [AddressOfExpr] &... # 15| 0: [ArrayAccess] access to array element # 15| -1: [LocalVariableAccess] access to local variable buffer # 15| 0: [IntLiteral] 0 # 16| 0: [BlockStmt] {...} # 19| 3: [FixedStmt] fixed(...) { ... } # 19| -1: [LocalVariableDeclAndInitExpr] Byte* pinned_buffer = ... # 19| -1: [TypeMention] byte* # 19| 1: [TypeMention] byte # 19| 0: [LocalVariableAccess] access to local variable pinned_buffer # 19| 1: [AddressOfExpr] &... # 19| 0: [ArrayAccess] access to array element # 19| -1: [LocalVariableAccess] access to local variable buffer # 19| 0: [IntLiteral] 0 # 19| 0: [EmptyStmt] ; statements.cs: # 6| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] Class # 11| 5: [Method] Main # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [LabelStmt] block: # 14| 1: [BlockStmt] {...} # 15| 0: [BlockStmt] {...} # 17| 1: [BlockStmt] {...} # 18| 0: [BlockStmt] {...} # 24| 6: [Method] MainEmpty # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; # 26| 0: [LocalVariableDeclAndInitExpr] Class c = ... # 26| -1: [TypeMention] Class # 26| 0: [LocalVariableAccess] access to local variable c # 26| 1: [ObjectCreation] object creation of type Class # 26| 0: [TypeMention] Class # 27| 1: [EmptyStmt] ; # 27| 2: [EmptyStmt] ; # 27| 3: [EmptyStmt] ; # 28| 4: [IfStmt] if (...) ... # 28| 0: [BoolLiteral] true # 28| 1: [EmptyStmt] ; # 31| 7: [Method] MainLocalVarDecl # 31| -1: [TypeMention] Void # 32| 4: [BlockStmt] {...} # 33| 0: [LocalVariableDeclStmt] ... ...; # 33| 0: [LocalVariableDeclExpr] Int32 a # 33| 0: [TypeMention] int # 34| 1: [LocalVariableDeclStmt] ... ...; # 34| 0: [LocalVariableDeclAndInitExpr] Int32 b = ... # 34| -1: [TypeMention] int # 34| 0: [LocalVariableAccess] access to local variable b # 34| 1: [IntLiteral] 2 # 34| 1: [LocalVariableDeclAndInitExpr] Int32 c = ... # 34| -1: [TypeMention] int # 34| 0: [LocalVariableAccess] access to local variable c # 34| 1: [IntLiteral] 3 # 35| 2: [ExprStmt] ...; # 35| 0: [AssignExpr] ... = ... # 35| 0: [LocalVariableAccess] access to local variable a # 35| 1: [IntLiteral] 1 # 36| 3: [ExprStmt] ...; # 36| 0: [MethodCall] call to method WriteLine # 36| -1: [TypeAccess] access to type Console # 36| 0: [TypeMention] Console # 36| 0: [AddExpr] ... + ... # 36| 0: [AddExpr] ... + ... # 36| 0: [LocalVariableAccess] access to local variable a # 36| 1: [LocalVariableAccess] access to local variable b # 36| 1: [LocalVariableAccess] access to local variable c # 37| 4: [LocalVariableDeclStmt] ... ...; # 37| 0: [LocalVariableDeclAndInitExpr] Int32 x = ... # 37| -1: [TypeMention] int # 37| 0: [LocalVariableAccess] access to local variable x # 37| 1: [IntLiteral] 45 # 38| 5: [LocalVariableDeclStmt] ... ...; # 38| 0: [LocalVariableDeclAndInitExpr] String y = ... # 38| -1: [TypeMention] string # 38| 0: [LocalVariableAccess] access to local variable y # 38| 1: [StringLiteralUtf16] "test" # 41| 8: [Method] MainLocalConstDecl # 41| -1: [TypeMention] Void # 42| 4: [BlockStmt] {...} # 43| 0: [LocalConstantDeclStmt] const ... ...; # 43| 0: [LocalVariableDeclAndInitExpr] Single pi = ... # 43| -1: [TypeMention] float # 43| 0: [LocalVariableAccess] access to local variable pi # 43| 1: [FloatLiteral] 3.1415927 # 44| 1: [LocalConstantDeclStmt] const ... ...; # 44| 0: [LocalVariableDeclAndInitExpr] Int32 r = ... # 44| -1: [TypeMention] int # 44| 0: [LocalVariableAccess] access to local variable r # 44| 1: [AddExpr] ... + ... # 44| 0: [IntLiteral] 5 # 44| 1: [IntLiteral] 20 # 45| 2: [ExprStmt] ...; # 45| 0: [MethodCall] call to method WriteLine # 45| -1: [TypeAccess] access to type Console # 45| 0: [TypeMention] Console # 45| 0: [MulExpr] ... * ... # 45| 0: [MulExpr] ... * ... # 45| 0: [LocalVariableAccess] access to local variable pi # 45| 1: [CastExpr] (...) ... # 45| 1: [LocalVariableAccess] access to local variable r # 45| 1: [CastExpr] (...) ... # 45| 1: [LocalVariableAccess] access to local variable r # 48| 9: [Method] MainExpr # 48| -1: [TypeMention] Void # 49| 4: [BlockStmt] {...} # 50| 0: [LocalVariableDeclStmt] ... ...; # 50| 0: [LocalVariableDeclExpr] Int32 i # 50| 0: [TypeMention] int # 51| 1: [ExprStmt] ...; # 51| 0: [AssignExpr] ... = ... # 51| 0: [LocalVariableAccess] access to local variable i # 51| 1: [IntLiteral] 123 # 52| 2: [ExprStmt] ...; # 52| 0: [MethodCall] call to method WriteLine # 52| -1: [TypeAccess] access to type Console # 52| 0: [TypeMention] Console # 52| 0: [LocalVariableAccess] access to local variable i # 53| 3: [ExprStmt] ...; # 53| 0: [PostIncrExpr] ...++ # 53| 0: [LocalVariableAccess] access to local variable i # 54| 4: [ExprStmt] ...; # 54| 0: [MethodCall] call to method WriteLine # 54| -1: [TypeAccess] access to type Console # 54| 0: [TypeMention] Console # 54| 0: [LocalVariableAccess] access to local variable i # 57| 10: [Method] MainIf # 57| -1: [TypeMention] Void #-----| 2: (Parameters) # 57| 0: [Parameter] args # 57| -1: [TypeMention] String[] # 57| 1: [TypeMention] string # 58| 4: [BlockStmt] {...} # 59| 0: [IfStmt] if (...) ... # 59| 0: [EQExpr] ... == ... # 59| 0: [PropertyCall] access to property Length # 59| -1: [ParameterAccess] access to parameter args # 59| 1: [IntLiteral] 0 # 60| 1: [BlockStmt] {...} # 61| 0: [ExprStmt] ...; # 61| 0: [MethodCall] call to method WriteLine # 61| -1: [TypeAccess] access to type Console # 61| 0: [TypeMention] Console # 61| 0: [StringLiteralUtf16] "No arguments" # 64| 2: [BlockStmt] {...} # 65| 0: [ExprStmt] ...; # 65| 0: [MethodCall] call to method WriteLine # 65| -1: [TypeAccess] access to type Console # 65| 0: [TypeMention] Console # 65| 0: [StringLiteralUtf16] "One or more arguments" # 69| 11: [Method] MainSwitch # 69| -1: [TypeMention] Void #-----| 2: (Parameters) # 69| 0: [Parameter] args # 69| -1: [TypeMention] String[] # 69| 1: [TypeMention] string # 70| 4: [BlockStmt] {...} # 71| 0: [LocalVariableDeclStmt] ... ...; # 71| 0: [LocalVariableDeclAndInitExpr] Int32 n = ... # 71| -1: [TypeMention] int # 71| 0: [LocalVariableAccess] access to local variable n # 71| 1: [PropertyCall] access to property Length # 71| -1: [ParameterAccess] access to parameter args # 72| 1: [SwitchStmt] switch (...) {...} # 72| 0: [LocalVariableAccess] access to local variable n # 74| 0: [ConstCase] case ...: # 74| 0: [ConstantPatternExpr,IntLiteral] 0 # 75| 1: [ExprStmt] ...; # 75| 0: [MethodCall] call to method WriteLine # 75| -1: [TypeAccess] access to type Console # 75| 0: [TypeMention] Console # 75| 0: [StringLiteralUtf16] "No arguments" # 76| 2: [BreakStmt] break; # 77| 3: [ConstCase] case ...: # 77| 0: [ConstantPatternExpr,IntLiteral] 1 # 78| 4: [ExprStmt] ...; # 78| 0: [MethodCall] call to method WriteLine # 78| -1: [TypeAccess] access to type Console # 78| 0: [TypeMention] Console # 78| 0: [StringLiteralUtf16] "One argument" # 79| 5: [BreakStmt] break; # 80| 6: [DefaultCase] default: # 81| 7: [ExprStmt] ...; # 81| 0: [MethodCall] call to method WriteLine # 81| -1: [TypeAccess] access to type Console # 81| 0: [TypeMention] Console # 81| 0: [StringLiteralUtf16] "{0} arguments" # 81| 1: [CastExpr] (...) ... # 81| 1: [LocalVariableAccess] access to local variable n # 82| 8: [BreakStmt] break; # 86| 12: [Method] StringSwitch # 86| -1: [TypeMention] int #-----| 2: (Parameters) # 86| 0: [Parameter] foo # 86| -1: [TypeMention] string # 87| 4: [BlockStmt] {...} # 88| 0: [SwitchStmt] switch (...) {...} # 88| 0: [ParameterAccess] access to parameter foo # 90| 0: [ConstCase] case ...: # 90| 0: [ConstantPatternExpr,StringLiteralUtf16] "black" # 91| 1: [ReturnStmt] return ...; # 91| 0: [IntLiteral] 0 # 92| 2: [ConstCase] case ...: # 92| 0: [ConstantPatternExpr,StringLiteralUtf16] "red" # 93| 3: [ReturnStmt] return ...; # 93| 0: [IntLiteral] 1 # 94| 4: [ConstCase] case ...: # 94| 0: [ConstantPatternExpr,StringLiteralUtf16] "green" # 95| 5: [ReturnStmt] return ...; # 95| 0: [IntLiteral] 2 # 96| 6: [ConstCase] case ...: # 96| 0: [ConstantPatternExpr,StringLiteralUtf16] "yellow" # 97| 7: [ReturnStmt] return ...; # 97| 0: [IntLiteral] 3 # 98| 8: [ConstCase] case ...: # 98| 0: [ConstantPatternExpr,StringLiteralUtf16] "blue" # 99| 9: [ReturnStmt] return ...; # 99| 0: [IntLiteral] 4 # 100| 10: [ConstCase] case ...: # 100| 0: [ConstantPatternExpr,StringLiteralUtf16] "magenta" # 101| 11: [ReturnStmt] return ...; # 101| 0: [IntLiteral] 5 # 102| 12: [ConstCase] case ...: # 102| 0: [ConstantPatternExpr,StringLiteralUtf16] "cyan" # 103| 13: [ReturnStmt] return ...; # 103| 0: [IntLiteral] 6 # 104| 14: [ConstCase] case ...: # 104| 0: [ConstantPatternExpr,StringLiteralUtf16] "grey" # 105| 15: [ConstCase] case ...: # 105| 0: [ConstantPatternExpr,StringLiteralUtf16] "white" # 106| 16: [ReturnStmt] return ...; # 106| 0: [IntLiteral] 7 # 108| 1: [ReturnStmt] return ...; # 108| 0: [IntLiteral] 7 # 111| 13: [Method] MainWhile # 111| -1: [TypeMention] Void #-----| 2: (Parameters) # 111| 0: [Parameter] args # 111| -1: [TypeMention] String[] # 111| 1: [TypeMention] string # 112| 4: [BlockStmt] {...} # 113| 0: [LocalVariableDeclStmt] ... ...; # 113| 0: [LocalVariableDeclAndInitExpr] Int32 i = ... # 113| -1: [TypeMention] int # 113| 0: [LocalVariableAccess] access to local variable i # 113| 1: [IntLiteral] 0 # 114| 1: [WhileStmt] while (...) ... # 114| 0: [LTExpr] ... < ... # 114| 0: [LocalVariableAccess] access to local variable i # 114| 1: [PropertyCall] access to property Length # 114| -1: [ParameterAccess] access to parameter args # 115| 1: [BlockStmt] {...} # 116| 0: [ExprStmt] ...; # 116| 0: [MethodCall] call to method WriteLine # 116| -1: [TypeAccess] access to type Console # 116| 0: [TypeMention] Console # 116| 0: [ArrayAccess] access to array element # 116| -1: [ParameterAccess] access to parameter args # 116| 0: [LocalVariableAccess] access to local variable i # 117| 1: [ExprStmt] ...; # 117| 0: [PostIncrExpr] ...++ # 117| 0: [LocalVariableAccess] access to local variable i # 121| 14: [Method] MainDo # 121| -1: [TypeMention] Void # 122| 4: [BlockStmt] {...} # 123| 0: [LocalVariableDeclStmt] ... ...; # 123| 0: [LocalVariableDeclExpr] String s # 123| 0: [TypeMention] string # 124| 1: [DoStmt] do ... while (...); # 128| 0: [NEExpr] ... != ... # 128| 0: [LocalVariableAccess] access to local variable s # 128| 1: [NullLiteral] null # 125| 1: [BlockStmt] {...} # 126| 0: [ExprStmt] ...; # 126| 0: [AssignExpr] ... = ... # 126| 0: [LocalVariableAccess] access to local variable s # 126| 1: [MethodCall] call to method ReadLine # 126| -1: [TypeAccess] access to type Console # 126| 0: [TypeMention] Console # 127| 1: [IfStmt] if (...) ... # 127| 0: [NEExpr] ... != ... # 127| 0: [LocalVariableAccess] access to local variable s # 127| 1: [NullLiteral] null # 127| 1: [ExprStmt] ...; # 127| 0: [MethodCall] call to method WriteLine # 127| -1: [TypeAccess] access to type Console # 127| 0: [TypeMention] Console # 127| 0: [LocalVariableAccess] access to local variable s # 131| 15: [Method] MainFor # 131| -1: [TypeMention] Void #-----| 2: (Parameters) # 131| 0: [Parameter] args # 131| -1: [TypeMention] String[] # 131| 1: [TypeMention] string # 132| 4: [BlockStmt] {...} # 133| 0: [ForStmt] for (...;...;...) ... # 133| -1: [LocalVariableDeclAndInitExpr] Int32 i = ... # 133| -1: [TypeMention] int # 133| 0: [LocalVariableAccess] access to local variable i # 133| 1: [IntLiteral] 0 # 133| 0: [LTExpr] ... < ... # 133| 0: [LocalVariableAccess] access to local variable i # 133| 1: [PropertyCall] access to property Length # 133| -1: [ParameterAccess] access to parameter args # 133| 1: [PostIncrExpr] ...++ # 133| 0: [LocalVariableAccess] access to local variable i # 134| 2: [BlockStmt] {...} # 135| 0: [ExprStmt] ...; # 135| 0: [MethodCall] call to method WriteLine # 135| -1: [TypeAccess] access to type Console # 135| 0: [TypeMention] Console # 135| 0: [ArrayAccess] access to array element # 135| -1: [ParameterAccess] access to parameter args # 135| 0: [LocalVariableAccess] access to local variable i # 139| 16: [Method] MainForeach # 139| -1: [TypeMention] Void #-----| 2: (Parameters) # 139| 0: [Parameter] args # 139| -1: [TypeMention] String[] # 139| 1: [TypeMention] string # 140| 4: [BlockStmt] {...} # 141| 0: [ForeachStmt] foreach (... ... in ...) ... # 141| 0: [LocalVariableDeclExpr] String s # 141| 0: [TypeMention] string # 141| 1: [ParameterAccess] access to parameter args # 142| 2: [BlockStmt] {...} # 143| 0: [ExprStmt] ...; # 143| 0: [MethodCall] call to method WriteLine # 143| -1: [TypeAccess] access to type Console # 143| 0: [TypeMention] Console # 143| 0: [LocalVariableAccess] access to local variable s # 147| 17: [Method] MainBreak # 147| -1: [TypeMention] Void # 148| 4: [BlockStmt] {...} # 149| 0: [WhileStmt] while (...) ... # 149| 0: [BoolLiteral] true # 150| 1: [BlockStmt] {...} # 151| 0: [LocalVariableDeclStmt] ... ...; # 151| 0: [LocalVariableDeclAndInitExpr] String s = ... # 151| -1: [TypeMention] string # 151| 0: [LocalVariableAccess] access to local variable s # 151| 1: [MethodCall] call to method ReadLine # 151| -1: [TypeAccess] access to type Console # 151| 0: [TypeMention] Console # 152| 1: [IfStmt] if (...) ... # 152| 0: [EQExpr] ... == ... # 152| 0: [LocalVariableAccess] access to local variable s # 152| 1: [NullLiteral] null # 152| 1: [BreakStmt] break; # 153| 2: [ExprStmt] ...; # 153| 0: [MethodCall] call to method WriteLine # 153| -1: [TypeAccess] access to type Console # 153| 0: [TypeMention] Console # 153| 0: [LocalVariableAccess] access to local variable s # 157| 18: [Method] MainContinue # 157| -1: [TypeMention] Void #-----| 2: (Parameters) # 157| 0: [Parameter] args # 157| -1: [TypeMention] String[] # 157| 1: [TypeMention] string # 158| 4: [BlockStmt] {...} # 159| 0: [ForStmt] for (...;...;...) ... # 159| -1: [LocalVariableDeclAndInitExpr] Int32 i = ... # 159| -1: [TypeMention] int # 159| 0: [LocalVariableAccess] access to local variable i # 159| 1: [IntLiteral] 0 # 159| 0: [LTExpr] ... < ... # 159| 0: [LocalVariableAccess] access to local variable i # 159| 1: [PropertyCall] access to property Length # 159| -1: [ParameterAccess] access to parameter args # 159| 1: [PostIncrExpr] ...++ # 159| 0: [LocalVariableAccess] access to local variable i # 160| 2: [BlockStmt] {...} # 161| 0: [IfStmt] if (...) ... # 161| 0: [MethodCall] call to method StartsWith # 161| -1: [ArrayAccess] access to array element # 161| -1: [ParameterAccess] access to parameter args # 161| 0: [LocalVariableAccess] access to local variable i # 161| 0: [StringLiteralUtf16] "/" # 161| 1: [ContinueStmt] continue; # 162| 1: [ExprStmt] ...; # 162| 0: [MethodCall] call to method WriteLine # 162| -1: [TypeAccess] access to type Console # 162| 0: [TypeMention] Console # 162| 0: [ArrayAccess] access to array element # 162| -1: [ParameterAccess] access to parameter args # 162| 0: [LocalVariableAccess] access to local variable i # 166| 19: [Method] MainGoto # 166| -1: [TypeMention] Void #-----| 2: (Parameters) # 166| 0: [Parameter] args # 166| -1: [TypeMention] String[] # 166| 1: [TypeMention] string # 167| 4: [BlockStmt] {...} # 168| 0: [LocalVariableDeclStmt] ... ...; # 168| 0: [LocalVariableDeclAndInitExpr] Int32 i = ... # 168| -1: [TypeMention] int # 168| 0: [LocalVariableAccess] access to local variable i # 168| 1: [IntLiteral] 0 # 169| 1: [GotoLabelStmt] goto ...; # 170| 2: [LabelStmt] loop: # 170| 3: [ExprStmt] ...; # 170| 0: [MethodCall] call to method WriteLine # 170| -1: [TypeAccess] access to type Console # 170| 0: [TypeMention] Console # 170| 0: [ArrayAccess] access to array element # 170| -1: [ParameterAccess] access to parameter args # 170| 0: [PostIncrExpr] ...++ # 170| 0: [LocalVariableAccess] access to local variable i # 171| 4: [LabelStmt] check: # 171| 5: [IfStmt] if (...) ... # 171| 0: [LTExpr] ... < ... # 171| 0: [LocalVariableAccess] access to local variable i # 171| 1: [PropertyCall] access to property Length # 171| -1: [ParameterAccess] access to parameter args # 171| 1: [GotoLabelStmt] goto ...; # 174| 20: [Method] Add # 174| -1: [TypeMention] int #-----| 2: (Parameters) # 174| 0: [Parameter] a # 174| -1: [TypeMention] int # 174| 1: [Parameter] b # 174| -1: [TypeMention] int # 175| 4: [BlockStmt] {...} # 176| 0: [ReturnStmt] return ...; # 176| 0: [AddExpr] ... + ... # 176| 0: [ParameterAccess] access to parameter a # 176| 1: [ParameterAccess] access to parameter b # 178| 21: [Method] MainReturn # 178| -1: [TypeMention] Void # 179| 4: [BlockStmt] {...} # 180| 0: [ExprStmt] ...; # 180| 0: [MethodCall] call to method WriteLine # 180| -1: [TypeAccess] access to type Console # 180| 0: [TypeMention] Console # 180| 0: [MethodCall] call to method Add # 180| 0: [IntLiteral] 1 # 180| 1: [IntLiteral] 2 # 181| 1: [ReturnStmt] return ...; # 184| 22: [Method] Range # 184| -1: [TypeMention] IEnumerable # 184| 1: [TypeMention] int #-----| 2: (Parameters) # 184| 0: [Parameter] from # 184| -1: [TypeMention] int # 184| 1: [Parameter] to # 184| -1: [TypeMention] int # 185| 4: [BlockStmt] {...} # 186| 0: [ForStmt] for (...;...;...) ... # 186| -1: [LocalVariableDeclAndInitExpr] Int32 i = ... # 186| -1: [TypeMention] int # 186| 0: [LocalVariableAccess] access to local variable i # 186| 1: [ParameterAccess] access to parameter from # 186| 0: [LTExpr] ... < ... # 186| 0: [LocalVariableAccess] access to local variable i # 186| 1: [ParameterAccess] access to parameter to # 186| 1: [PostIncrExpr] ...++ # 186| 0: [LocalVariableAccess] access to local variable i # 187| 2: [BlockStmt] {...} # 188| 0: [YieldReturnStmt] yield return ...; # 188| 0: [LocalVariableAccess] access to local variable i # 190| 1: [YieldBreakStmt] yield break; # 192| 23: [Method] MainYield # 192| -1: [TypeMention] Void # 193| 4: [BlockStmt] {...} # 194| 0: [ForeachStmt] foreach (... ... in ...) ... # 194| 0: [LocalVariableDeclExpr] Int32 x # 194| 0: [TypeMention] int # 194| 1: [MethodCall] call to method Range # 194| 0: [UnaryMinusExpr] -... # 194| 0: [IntLiteral] 10 # 194| 1: [IntLiteral] 10 # 195| 2: [BlockStmt] {...} # 196| 0: [ExprStmt] ...; # 196| 0: [MethodCall] call to method WriteLine # 196| -1: [TypeAccess] access to type Console # 196| 0: [TypeMention] Console # 196| 0: [LocalVariableAccess] access to local variable x # 200| 24: [Method] Divide # 200| -1: [TypeMention] double #-----| 2: (Parameters) # 200| 0: [Parameter] x # 200| -1: [TypeMention] double # 200| 1: [Parameter] y # 200| -1: [TypeMention] double # 201| 4: [BlockStmt] {...} # 202| 0: [IfStmt] if (...) ... # 202| 0: [EQExpr] ... == ... # 202| 0: [ParameterAccess] access to parameter y # 202| 1: [CastExpr] (...) ... # 202| 1: [IntLiteral] 0 # 202| 1: [ThrowStmt] throw ...; # 202| 0: [ObjectCreation] object creation of type DivideByZeroException # 202| 0: [TypeMention] DivideByZeroException # 203| 1: [ReturnStmt] return ...; # 203| 0: [DivExpr] ... / ... # 203| 0: [ParameterAccess] access to parameter x # 203| 1: [ParameterAccess] access to parameter y # 205| 25: [Method] MainTryThrow # 205| -1: [TypeMention] Void #-----| 2: (Parameters) # 205| 0: [Parameter] args # 205| -1: [TypeMention] String[] # 205| 1: [TypeMention] string # 206| 4: [BlockStmt] {...} # 207| 0: [TryStmt] try {...} ... # 226| -1: [BlockStmt] {...} # 227| 0: [ExprStmt] ...; # 227| 0: [MethodCall] call to method WriteLine # 227| -1: [TypeAccess] access to type Console # 227| 0: [TypeMention] Console # 227| 0: [StringLiteralUtf16] "Good bye!" # 208| 0: [BlockStmt] {...} # 209| 0: [IfStmt] if (...) ... # 209| 0: [NEExpr] ... != ... # 209| 0: [PropertyCall] access to property Length # 209| -1: [ParameterAccess] access to parameter args # 209| 1: [IntLiteral] 2 # 210| 1: [BlockStmt] {...} # 211| 0: [ThrowStmt] throw ...; # 211| 0: [ObjectCreation] object creation of type Exception # 211| -1: [TypeMention] Exception # 211| 0: [StringLiteralUtf16] "Two numbers required" # 213| 1: [LocalVariableDeclStmt] ... ...; # 213| 0: [LocalVariableDeclAndInitExpr] Double x = ... # 213| -1: [TypeMention] double # 213| 0: [LocalVariableAccess] access to local variable x # 213| 1: [MethodCall] call to method Parse # 213| -1: [TypeAccess] access to type Double # 213| 0: [TypeMention] double # 213| 0: [ArrayAccess] access to array element # 213| -1: [ParameterAccess] access to parameter args # 213| 0: [IntLiteral] 0 # 214| 2: [LocalVariableDeclStmt] ... ...; # 214| 0: [LocalVariableDeclAndInitExpr] Double y = ... # 214| -1: [TypeMention] double # 214| 0: [LocalVariableAccess] access to local variable y # 214| 1: [MethodCall] call to method Parse # 214| -1: [TypeAccess] access to type Double # 214| 0: [TypeMention] double # 214| 0: [ArrayAccess] access to array element # 214| -1: [ParameterAccess] access to parameter args # 214| 0: [IntLiteral] 1 # 215| 3: [ExprStmt] ...; # 215| 0: [MethodCall] call to method WriteLine # 215| -1: [TypeAccess] access to type Console # 215| 0: [TypeMention] Console # 215| 0: [MethodCall] call to method Divide # 215| 0: [LocalVariableAccess] access to local variable x # 215| 1: [LocalVariableAccess] access to local variable y # 217| 1: [SpecificCatchClause] catch (...) {...} # 217| 0: [LocalVariableDeclExpr] Exception e # 217| 0: [TypeMention] Exception # 218| 1: [BlockStmt] {...} # 219| 0: [ExprStmt] ...; # 219| 0: [MethodCall] call to method WriteLine # 219| -1: [TypeAccess] access to type Console # 219| 0: [TypeMention] Console # 219| 0: [PropertyCall] access to property Message # 219| -1: [LocalVariableAccess] access to local variable e # 221| 2: [GeneralCatchClause] catch {...} # 222| 1: [BlockStmt] {...} # 223| 0: [ExprStmt] ...; # 223| 0: [MethodCall] call to method WriteLine # 223| -1: [TypeAccess] access to type Console # 223| 0: [TypeMention] Console # 223| 0: [StringLiteralUtf16] "Exception" # 231| 26: [Method] MainCheckedUnchecked # 231| -1: [TypeMention] Void # 232| 4: [BlockStmt] {...} # 233| 0: [LocalVariableDeclStmt] ... ...; # 233| 0: [LocalVariableDeclAndInitExpr] Int32 i = ... # 233| -1: [TypeMention] int # 233| 0: [LocalVariableAccess] access to local variable i # 233| 1: [MemberConstantAccess] access to constant MaxValue # 233| -1: [TypeAccess] access to type Int32 # 233| 0: [TypeMention] int # 234| 1: [CheckedStmt] checked {...} # 235| 0: [BlockStmt] {...} # 236| 0: [ExprStmt] ...; # 236| 0: [MethodCall] call to method WriteLine # 236| -1: [TypeAccess] access to type Console # 236| 0: [TypeMention] Console # 236| 0: [AddExpr] ... + ... # 236| 0: [LocalVariableAccess] access to local variable i # 236| 1: [IntLiteral] 1 # 238| 2: [UncheckedStmt] unchecked {...} # 239| 0: [BlockStmt] {...} # 240| 0: [ExprStmt] ...; # 240| 0: [MethodCall] call to method WriteLine # 240| -1: [TypeAccess] access to type Console # 240| 0: [TypeMention] Console # 240| 0: [AddExpr] ... + ... # 240| 0: [LocalVariableAccess] access to local variable i # 240| 1: [IntLiteral] 1 # 244| 27: [Class] AccountLock # 246| 5: [Field] balance # 246| -1: [TypeMention] decimal # 247| 6: [Method] Withdraw # 247| -1: [TypeMention] Void #-----| 2: (Parameters) # 247| 0: [Parameter] amount # 247| -1: [TypeMention] decimal # 248| 4: [BlockStmt] {...} # 249| 0: [LockStmt] lock (...) {...} # 249| 0: [ThisAccess] this access # 250| 1: [BlockStmt] {...} # 251| 0: [IfStmt] if (...) ... # 251| 0: [GTExpr] ... > ... # 251| 0: [ParameterAccess] access to parameter amount # 251| 1: [FieldAccess] access to field balance # 252| 1: [BlockStmt] {...} # 253| 0: [ThrowStmt] throw ...; # 253| 0: [ObjectCreation] object creation of type Exception # 253| -1: [TypeMention] Exception # 253| 0: [StringLiteralUtf16] "Insufficient funds" # 255| 1: [ExprStmt] ...; # 255| 0: [AssignSubExpr] ... -= ... # 255| 0: [FieldAccess] access to field balance # 255| 1: [ParameterAccess] access to parameter amount # 260| 28: [Method] MainUsing # 260| -1: [TypeMention] Void # 261| 4: [BlockStmt] {...} # 262| 0: [UsingBlockStmt] using (...) {...} # 262| -1: [LocalVariableDeclAndInitExpr] TextWriter w = ... # 262| -1: [TypeMention] TextWriter # 262| 0: [LocalVariableAccess] access to local variable w # 262| 1: [MethodCall] call to method CreateText # 262| -1: [TypeAccess] access to type File # 262| 0: [TypeMention] File # 262| 0: [StringLiteralUtf16] "test.txt" # 263| 1: [BlockStmt] {...} # 264| 0: [ExprStmt] ...; # 264| 0: [MethodCall] call to method WriteLine # 264| -1: [LocalVariableAccess] access to local variable w # 264| 0: [StringLiteralUtf16] "Line one" # 265| 1: [ExprStmt] ...; # 265| 0: [MethodCall] call to method WriteLine # 265| -1: [LocalVariableAccess] access to local variable w # 265| 0: [StringLiteralUtf16] "Line two" # 266| 2: [ExprStmt] ...; # 266| 0: [MethodCall] call to method WriteLine # 266| -1: [LocalVariableAccess] access to local variable w # 266| 0: [StringLiteralUtf16] "Line three" # 268| 1: [UsingBlockStmt] using (...) {...} # 268| 0: [MethodCall] call to method CreateText # 268| -1: [TypeAccess] access to type File # 268| 0: [TypeMention] File # 268| 0: [StringLiteralUtf16] "test.txt" # 269| 1: [BlockStmt] {...} # 273| 29: [Method] MainLabeled # 273| -1: [TypeMention] Void # 274| 4: [BlockStmt] {...} # 275| 0: [GotoLabelStmt] goto ...; # 276| 1: [LabelStmt] Label: # 277| 2: [LocalVariableDeclStmt] ... ...; # 277| 0: [LocalVariableDeclAndInitExpr] Int32 x = ... # 277| -1: [TypeMention] int # 277| 0: [LocalVariableAccess] access to local variable x # 277| 1: [IntLiteral] 23 # 278| 3: [ExprStmt] ...; # 278| 0: [AssignExpr] ... = ... # 278| 0: [LocalVariableAccess] access to local variable x # 278| 1: [IntLiteral] 9 # 281| 30: [Field] lockObject # 281| -1: [TypeMention] Lock # 281| 1: [ObjectCreation] object creation of type Lock # 281| 0: [TypeMention] Lock # 283| 31: [Method] LockMethod # 283| -1: [TypeMention] Void # 284| 4: [BlockStmt] {...} # 285| 0: [LockStmt] lock (...) {...} # 285| 0: [FieldAccess] access to field lockObject # 286| 1: [BlockStmt] {...} # 287| 0: [ExprStmt] ...; # 287| 0: [MethodCall] call to method WriteLine # 287| -1: [TypeAccess] access to type Console # 287| 0: [TypeMention] Console # 287| 0: [StringLiteralUtf16] "Locked"