Files
codeql/csharp/ql/test/library-tests/statements/PrintAst.expected
2024-12-20 15:00:54 +01:00

718 lines
36 KiB
Plaintext

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<int>
# 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"