class Foo {
bool operator <(int x) {
return true;
}

int operator <<(int x) {
return 42;
}

bool operator >(int x) {
return true;
}

int operator >>(int x) {
return 42;
}

int operator >>>(int x) {
return 42;
}
}


class[KeywordToken] Foo[StringToken] {[BeginToken]
bool[StringToken] operator[KeywordToken] <[BeginToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
return[KeywordToken] true[KeywordToken];[SimpleToken]
}[SimpleToken]

int[StringToken] operator[KeywordToken] <<[SimpleToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
return[KeywordToken] 42[StringToken];[SimpleToken]
}[SimpleToken]

bool[StringToken] operator[KeywordToken] >[SimpleToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
return[KeywordToken] true[KeywordToken];[SimpleToken]
}[SimpleToken]

int[StringToken] operator[KeywordToken] >>[SimpleToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
return[KeywordToken] 42[StringToken];[SimpleToken]
}[SimpleToken]

int[StringToken] operator[KeywordToken] >>>[SimpleToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
return[KeywordToken] 42[StringToken];[SimpleToken]
}[SimpleToken]
}[SimpleToken]
[SimpleToken]
