Hi James, the RecognitionException requires an token input stream to initialized, otherwise it won't know which token it is, and I cannot find a reference to that in the call stack. My guess is that RecognitionException is thrown during one phase of the parsing, and resolving parse node identity is a different phase of the parsing. I maybe wrong though.

I will make our own RuntimeException for this purpose.