properties.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] Button # 10| 6: [Field] caption # 10| -1: [TypeMention] string # 12| 7: [Property] Caption # 12| -1: [TypeMention] string # 15| 3: [Getter] get_Caption # 15| 4: [BlockStmt] {...} # 15| 0: [ReturnStmt] return ...; # 15| 0: [FieldAccess] access to field caption # 17| 4: [Setter] set_Caption #-----| 2: (Parameters) # 17| 0: [Parameter] value # 18| 4: [BlockStmt] {...} # 19| 0: [IfStmt] if (...) ... # 19| 0: [NEExpr] ... != ... # 19| 0: [FieldAccess] access to field caption # 19| 1: [ParameterAccess] access to parameter value # 20| 1: [BlockStmt] {...} # 21| 0: [ExprStmt] ...; # 21| 0: [AssignExpr] ... = ... # 21| 0: [FieldAccess] access to field caption # 21| 1: [ParameterAccess] access to parameter value # 26| 8: [Method] Paint # 26| -1: [TypeMention] Void # 27| 4: [BlockStmt] {...} # 28| 0: [LocalVariableDeclStmt] ... ...; # 28| 0: [LocalVariableDeclAndInitExpr] Button okButton = ... # 28| -1: [TypeMention] Button # 28| 0: [LocalVariableAccess] access to local variable okButton # 28| 1: [ObjectCreation] object creation of type Button # 28| 0: [TypeMention] Button # 29| 1: [ExprStmt] ...; # 29| 0: [AssignExpr] ... = ... # 29| 0: [PropertyCall] access to property Caption # 29| -1: [LocalVariableAccess] access to local variable okButton # 29| 1: [StringLiteralUtf16] "OK" # 30| 2: [LocalVariableDeclStmt] ... ...; # 30| 0: [LocalVariableDeclAndInitExpr] String s = ... # 30| -1: [TypeMention] string # 30| 0: [LocalVariableAccess] access to local variable s # 30| 1: [PropertyCall] access to property Caption # 30| -1: [LocalVariableAccess] access to local variable okButton # 34| 2: [Class] Counter # 37| 6: [Field] next # 37| -1: [TypeMention] int # 39| 7: [Property] Next # 39| -1: [TypeMention] int # 41| 3: [Getter] get_Next # 41| 4: [BlockStmt] {...} # 41| 0: [ReturnStmt] return ...; # 41| 0: [PostIncrExpr] ...++ # 41| 0: [FieldAccess] access to field next # 46| 3: [Class] Point # 49| 6: [Property] X # 49| -1: [TypeMention] int # 49| 3: [Getter] get_X # 49| 4: [Setter] set_X #-----| 2: (Parameters) # 49| 0: [Parameter] value # 50| 7: [Property] Y # 50| -1: [TypeMention] int # 50| 3: [Getter] get_Y # 50| 4: [Setter] set_Y #-----| 2: (Parameters) # 50| 0: [Parameter] value # 54| 4: [Class] ReadOnlyPoint # 57| 5: [Property] X # 57| -1: [TypeMention] int # 57| 3: [Getter] get_X # 57| 4: [Setter] set_X #-----| 2: (Parameters) # 57| 0: [Parameter] value # 58| 6: [Property] Y # 58| -1: [TypeMention] int # 58| 3: [Getter] get_Y # 58| 4: [Setter] set_Y #-----| 2: (Parameters) # 58| 0: [Parameter] value # 59| 7: [InstanceConstructor] ReadOnlyPoint #-----| 2: (Parameters) # 59| 0: [Parameter] x # 59| -1: [TypeMention] int # 59| 1: [Parameter] y # 59| -1: [TypeMention] int # 60| 4: [BlockStmt] {...} # 61| 0: [ExprStmt] ...; # 61| 0: [AssignExpr] ... = ... # 61| 0: [PropertyCall] access to property X # 61| 1: [ParameterAccess] access to parameter x # 62| 1: [ExprStmt] ...; # 62| 0: [AssignExpr] ... = ... # 62| 0: [PropertyCall] access to property Y # 62| 1: [ParameterAccess] access to parameter y # 67| 5: [Class] A # 69| 6: [Field] y # 69| -1: [TypeMention] int # 70| 7: [Property] X # 70| -1: [TypeMention] int # 70| 3: [Getter] get_X # 70| 4: [BlockStmt] {...} # 70| 0: [ReturnStmt] return ...; # 70| 0: [IntLiteral] 0 # 71| 8: [Property] Y # 71| -1: [TypeMention] int # 73| 3: [Getter] get_Y # 73| 4: [BlockStmt] {...} # 73| 0: [ReturnStmt] return ...; # 73| 0: [FieldAccess] access to field y # 74| 4: [Setter] set_Y #-----| 2: (Parameters) # 74| 0: [Parameter] value # 74| 4: [BlockStmt] {...} # 74| 0: [ExprStmt] ...; # 74| 0: [AssignExpr] ... = ... # 74| 0: [FieldAccess] access to field y # 74| 1: [ParameterAccess] access to parameter value # 76| 9: [Property] Z # 76| -1: [TypeMention] int # 76| 3: [Getter] get_Z # 76| 4: [Setter] set_Z #-----| 2: (Parameters) # 76| 0: [Parameter] value # 79| 6: [Class] B #-----| 3: (Base types) # 79| 0: [TypeMention] A # 81| 6: [Field] z # 81| -1: [TypeMention] int # 82| 7: [Property] X # 82| -1: [TypeMention] int # 82| 3: [Getter] get_X # 82| 4: [BlockStmt] {...} # 82| 0: [ReturnStmt] return ...; # 82| 0: [AddExpr] ... + ... # 82| 0: [PropertyCall] access to property X # 82| -1: [BaseAccess] base access # 82| 1: [IntLiteral] 1 # 83| 8: [Property] Y # 83| -1: [TypeMention] int # 83| 3: [Setter] set_Y #-----| 2: (Parameters) # 83| 0: [Parameter] value # 83| 4: [BlockStmt] {...} # 83| 0: [ExprStmt] ...; # 83| 0: [AssignExpr] ... = ... # 83| 0: [PropertyCall] access to property Y # 83| -1: [BaseAccess] base access # 83| 1: [ConditionalExpr] ... ? ... : ... # 83| 0: [LTExpr] ... < ... # 83| 0: [ParameterAccess] access to parameter value # 83| 1: [IntLiteral] 0 # 83| 1: [IntLiteral] 0 # 83| 2: [ParameterAccess] access to parameter value # 84| 9: [Property] Z # 84| -1: [TypeMention] int # 86| 3: [Getter] get_Z # 86| 4: [BlockStmt] {...} # 86| 0: [ReturnStmt] return ...; # 86| 0: [FieldAccess] access to field z # 87| 4: [Setter] set_Z #-----| 2: (Parameters) # 87| 0: [Parameter] value # 87| 4: [BlockStmt] {...} # 87| 0: [ExprStmt] ...; # 87| 0: [AssignExpr] ... = ... # 87| 0: [FieldAccess] access to field z # 87| 1: [ParameterAccess] access to parameter value # 91| 7: [Class] Test # 93| 6: [Property] Init # 93| -1: [TypeMention] int # 93| 3: [Setter] set_Init #-----| 2: (Parameters) # 93| 0: [Parameter] value # 93| 4: [BlockStmt] {...} # 94| 7: [Method] Main # 94| -1: [TypeMention] Void # 95| 4: [BlockStmt] {...} # 96| 0: [LocalVariableDeclStmt] ... ...; # 96| 0: [LocalVariableDeclAndInitExpr] List ds = ... # 96| -1: [TypeMention] List # 96| 1: [TypeMention] double # 96| 0: [LocalVariableAccess] access to local variable ds # 96| 1: [ObjectCreation] object creation of type List # 96| 0: [TypeMention] List # 96| 1: [TypeMention] double # 97| 1: [LocalVariableDeclStmt] ... ...; # 97| 0: [LocalVariableDeclAndInitExpr] List os = ... # 97| -1: [TypeMention] List # 97| 1: [TypeMention] object # 97| 0: [LocalVariableAccess] access to local variable os # 97| 1: [ObjectCreation] object creation of type List # 97| 0: [TypeMention] List # 97| 1: [TypeMention] object # 98| 2: [IfStmt] if (...) ... # 98| 0: [EQExpr] ... == ... # 98| 0: [PropertyCall] access to property Count # 98| -1: [LocalVariableAccess] access to local variable ds # 98| 1: [PropertyCall] access to property Count # 98| -1: [LocalVariableAccess] access to local variable os # 99| 1: [BlockStmt] {...} # 104| 8: [Interface] InterfaceWithProperties # 106| 4: [Property] Prop1 # 106| -1: [TypeMention] int # 106| 3: [Getter] get_Prop1 # 107| 5: [Property] Prop2 # 107| -1: [TypeMention] int # 107| 3: [Setter] set_Prop2 #-----| 2: (Parameters) # 107| 0: [Parameter] value # 110| 9: [Class] ImplementsProperties #-----| 3: (Base types) # 110| 1: [TypeMention] InterfaceWithProperties # 112| 6: [Property] Prop1 # 112| -1: [TypeMention] int # 114| 3: [Getter] get_Prop1 # 114| 4: [BlockStmt] {...} # 114| 0: [ReturnStmt] return ...; # 114| 0: [IntLiteral] 0 # 117| 7: [Property] Prop2 # 117| -1: [TypeMention] int # 119| 3: [Setter] set_Prop2 #-----| 2: (Parameters) # 119| 0: [Parameter] value # 119| 4: [BlockStmt] {...} # 122| 8: [Property] Prop2 # 122| -1: [TypeMention] InterfaceWithProperties # 122| -1: [TypeMention] int # 124| 3: [Setter] set_Prop2 #-----| 2: (Parameters) # 124| 0: [Parameter] value # 124| 4: [BlockStmt] {...} # 128| 10: [Class] UseFieldKeyword # 130| 6: [Property] Prop # 130| -1: [TypeMention] object # 132| 3: [Getter] get_Prop # 132| 4: [BlockStmt] {...} # 132| 0: [ReturnStmt] return ...; # 132| 0: [FieldAccess] access to field Prop.field # 133| 4: [Setter] set_Prop #-----| 2: (Parameters) # 133| 0: [Parameter] value # 133| 4: [BlockStmt] {...} # 133| 0: [ExprStmt] ...; # 133| 0: [AssignExpr] ... = ... # 133| 0: [FieldAccess] access to field Prop.field # 133| 1: [ParameterAccess] access to parameter value # 130| 7: [Field] Prop.field # 137| 11: [RefStruct] S # 139| 6: [Field] x # 139| -1: [TypeMention] int # 141| 7: [InstanceConstructor] S #-----| 2: (Parameters) # 141| 0: [Parameter] v # 141| -1: [TypeMention] int # 142| 4: [BlockStmt] {...} # 143| 0: [ExprStmt] ...; # 143| 0: [AssignExpr] ... = ... # 143| 0: [FieldAccess] access to field x # 143| 1: [RefExpr] ref ... # 143| 0: [ParameterAccess] access to parameter v # 146| 8: [Property] Prop # 146| -1: [TypeMention] int # 148| 3: [Getter] get_Prop # 148| 4: [BlockStmt] {...} # 148| 0: [ReturnStmt] return ...; # 148| 0: [RefExpr] ref ... # 148| 0: [FieldAccess] access to field x # 152| 12: [Class] TestRefReturns # 154| 6: [Method] M # 154| -1: [TypeMention] Void # 155| 4: [BlockStmt] {...} # 156| 0: [LocalVariableDeclStmt] ... ...; # 156| 0: [LocalVariableDeclAndInitExpr] Int32 a = ... # 156| -1: [TypeMention] int # 156| 0: [LocalVariableAccess] access to local variable a # 156| 1: [IntLiteral] 0 # 158| 1: [LocalVariableDeclStmt] ... ...; # 158| 0: [LocalVariableDeclAndInitExpr] S s = ... # 158| -1: [TypeMention] S # 158| 0: [LocalVariableAccess] access to local variable s # 158| 1: [ObjectCreation] object creation of type S # 158| -1: [TypeMention] S # 158| 0: [LocalVariableAccess] access to local variable a # 159| 2: [ExprStmt] ...; # 159| 0: [AssignExpr] ... = ... # 159| 0: [PropertyCall] access to property Prop # 159| -1: [LocalVariableAccess] access to local variable s # 159| 1: [IntLiteral] 1 # 160| 3: [LocalVariableDeclStmt] ... ...; # 160| 0: [LocalVariableDeclAndInitExpr] Int32 x = ... # 160| -1: [TypeMention] int # 160| 0: [LocalVariableAccess] access to local variable x # 160| 1: [PropertyCall] access to property Prop # 160| -1: [LocalVariableAccess] access to local variable s # 164| 13: [Class] BaseClass # 166| 6: [Property] Value # 166| -1: [TypeMention] int # 168| 3: [Getter] get_Value # 168| 4: [BlockStmt] {...} # 168| 0: [ReturnStmt] return ...; # 168| 0: [FieldAccess] access to field Value.field # 169| 4: [Setter] set_Value #-----| 2: (Parameters) # 169| 0: [Parameter] value # 169| 4: [BlockStmt] {...} # 169| 0: [ExprStmt] ...; # 169| 0: [AssignExpr] ... = ... # 169| 0: [FieldAccess] access to field Value.field # 169| 1: [ParameterAccess] access to parameter value # 166| 7: [Field] Value.field # 173| 14: [Class] DerivedClass1 #-----| 3: (Base types) # 173| 0: [TypeMention] BaseClass # 175| 6: [Property] Value # 175| -1: [TypeMention] int # 177| 3: [Getter] get_Value # 177| 4: [BlockStmt] {...} # 177| 0: [ReturnStmt] return ...; # 177| 0: [IntLiteral] 20 # 181| 15: [Class] DerivedClass2 #-----| 3: (Base types) # 181| 0: [TypeMention] BaseClass # 183| 16: [Class] TestPartialPropertyOverride # 185| 6: [Method] M # 185| -1: [TypeMention] Void # 186| 4: [BlockStmt] {...} # 187| 0: [LocalVariableDeclStmt] ... ...; # 187| 0: [LocalVariableDeclAndInitExpr] DerivedClass1 d1 = ... # 187| -1: [TypeMention] DerivedClass1 # 187| 0: [LocalVariableAccess] access to local variable d1 # 187| 1: [ObjectCreation] object creation of type DerivedClass1 # 187| 0: [TypeMention] DerivedClass1 # 188| 1: [ExprStmt] ...; # 188| 0: [AssignExpr] ... = ... # 188| 0: [PropertyCall] access to property Value # 188| -1: [LocalVariableAccess] access to local variable d1 # 188| 1: [IntLiteral] 11 # 189| 2: [LocalVariableDeclStmt] ... ...; # 189| 0: [LocalVariableDeclAndInitExpr] Int32 test1 = ... # 189| -1: [TypeMention] int # 189| 0: [LocalVariableAccess] access to local variable test1 # 189| 1: [PropertyCall] access to property Value # 189| -1: [LocalVariableAccess] access to local variable d1 # 191| 3: [LocalVariableDeclStmt] ... ...; # 191| 0: [LocalVariableDeclAndInitExpr] DerivedClass2 d2 = ... # 191| -1: [TypeMention] DerivedClass2 # 191| 0: [LocalVariableAccess] access to local variable d2 # 191| 1: [ObjectCreation] object creation of type DerivedClass2 # 191| 0: [TypeMention] DerivedClass2 # 192| 4: [ExprStmt] ...; # 192| 0: [AssignExpr] ... = ... # 192| 0: [PropertyCall] access to property Value # 192| -1: [LocalVariableAccess] access to local variable d2 # 192| 1: [IntLiteral] 12 # 193| 5: [LocalVariableDeclStmt] ... ...; # 193| 0: [LocalVariableDeclAndInitExpr] Int32 test2 = ... # 193| -1: [TypeMention] int # 193| 0: [LocalVariableAccess] access to local variable test2 # 193| 1: [PropertyCall] access to property Value # 193| -1: [LocalVariableAccess] access to local variable d2