NOTICE: Stream was rewritten by parser!

augment ;void topLevelMethod() {
augment super;();
}

augment ;void topLevelMethodError() {
augment int ;local;
augment;
}


augment List<int> (){}get topLevelProperty {
return [... augment ,super, augment ,super[0]];
}

augment ;void set topLevelProperty(List<int> value) {
augment super;[0] = value[1];
augment super = value;
}

void injectedTopLevelMethod() {
augment super;();
augment super;
augment int ;local;
augment;
}

augment ;class Class {
augment ;void instanceMethod() {
augment super;();
}

augment ;void instanceMethodErrors() {
augment int ;local;
augment;
}

augment int ;get instanceProperty {
augment super;++*synthetic*;
--augment ;super;
return -augment ;super;
}

augment ;void set instanceProperty(int value) {
augment super = value;
}

void injectedInstanceMethod() {
augment super;();
augment super;
augment int ;local;
augment;
}
}

augment[StringToken] ;[SyntheticToken]void[KeywordToken] topLevelMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
augment[StringToken] super[KeywordToken];[SyntheticToken]([BeginToken])[SimpleToken];[SimpleToken]
}[SimpleToken]

augment[StringToken] ;[SyntheticToken]void[KeywordToken] topLevelMethodError[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
augment[StringToken] int[StringToken] ;[SyntheticToken]local[StringToken];[SimpleToken]
augment[StringToken];[SimpleToken]
}[SimpleToken]


augment[StringToken] List[StringToken]<[BeginToken]int[StringToken]>[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]get[KeywordToken] topLevelProperty[StringToken] {[BeginToken]
return[KeywordToken] [[BeginToken]...[SimpleToken] augment[StringToken] ,[SyntheticToken]super[KeywordToken],[SimpleToken] augment[StringToken] ,[SyntheticToken]super[KeywordToken][[BeginToken]0[StringToken]][SimpleToken]][SimpleToken];[SimpleToken]
}[SimpleToken]

augment[StringToken] ;[SyntheticToken]void[KeywordToken] set[KeywordToken] topLevelProperty[StringToken]([BeginToken]List[StringToken]<[BeginToken]int[StringToken]>[SimpleToken] value[StringToken])[SimpleToken] {[BeginToken]
augment[StringToken] super[KeywordToken];[SyntheticToken][[BeginToken]0[StringToken]][SimpleToken] =[SimpleToken] value[StringToken][[BeginToken]1[StringToken]][SimpleToken];[SimpleToken]
augment[StringToken] super[KeywordToken] =[SimpleToken] value[StringToken];[SimpleToken]
}[SimpleToken]

void[KeywordToken] injectedTopLevelMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
augment[StringToken] super[KeywordToken];[SyntheticToken]([BeginToken])[SimpleToken];[SimpleToken]
augment[StringToken] super[KeywordToken];[SimpleToken]
augment[StringToken] int[StringToken] ;[SyntheticToken]local[StringToken];[SimpleToken]
augment[StringToken];[SimpleToken]
}[SimpleToken]

augment[StringToken] ;[SyntheticToken]class[KeywordToken] Class[StringToken] {[BeginToken]
augment[StringToken] ;[SyntheticToken]void[KeywordToken] instanceMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
augment[StringToken] super[KeywordToken];[SyntheticToken]([BeginToken])[SimpleToken];[SimpleToken]
}[SimpleToken]

augment[StringToken] ;[SyntheticToken]void[KeywordToken] instanceMethodErrors[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
augment[StringToken] int[StringToken] ;[SyntheticToken]local[StringToken];[SimpleToken]
augment[StringToken];[SimpleToken]
}[SimpleToken]

augment[StringToken] int[StringToken] ;[SyntheticToken]get[KeywordToken] instanceProperty[StringToken] {[BeginToken]
augment[StringToken] super[KeywordToken];[SyntheticToken]++[SimpleToken][SyntheticStringToken];[SimpleToken]
--[SimpleToken]augment[StringToken] ;[SyntheticToken]super[KeywordToken];[SimpleToken]
return[KeywordToken] -[SimpleToken]augment[StringToken] ;[SyntheticToken]super[KeywordToken];[SimpleToken]
}[SimpleToken]

augment[StringToken] ;[SyntheticToken]void[KeywordToken] set[KeywordToken] instanceProperty[StringToken]([BeginToken]int[StringToken] value[StringToken])[SimpleToken] {[BeginToken]
augment[StringToken] super[KeywordToken] =[SimpleToken] value[StringToken];[SimpleToken]
}[SimpleToken]

void[KeywordToken] injectedInstanceMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
augment[StringToken] super[KeywordToken];[SyntheticToken]([BeginToken])[SimpleToken];[SimpleToken]
augment[StringToken] super[KeywordToken];[SimpleToken]
augment[StringToken] int[StringToken] ;[SyntheticToken]local[StringToken];[SimpleToken]
augment[StringToken];[SimpleToken]
}[SimpleToken]
}[SimpleToken][SimpleToken]
