void main(int onX) {
try {
;
} catch (e) {
;
} on Foo {
;
}
onX.toString();
}



void[KeywordToken] main[StringToken]([BeginToken]int[StringToken] onX[StringToken])[SimpleToken] {[BeginToken]
try[KeywordToken] {[BeginToken]
;[SimpleToken]
}[SimpleToken] catch[KeywordToken] ([BeginToken]e[StringToken])[SimpleToken] {[BeginToken]
;[SimpleToken]
}[SimpleToken] on[KeywordToken] Foo[StringToken] {[BeginToken]
;[SimpleToken]
}[SimpleToken]
onX[StringToken].[SimpleToken]toString[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
}[SimpleToken]

[SimpleToken]
