Question: In ANTLR 4 is there a way to access tokens on the hidden channel (or some other channels) in semantic predicates of the parser? 
I would like to send the \r\n to hidden channel since mostly I don't need the EOL characters. But in some cases in a semantic predicate I would need to see if there is an EOL after the given token.

Answer: 
Tbh. I have no experience with ANLTR 4 but in ANTLR 3 you can use the token source to get all tokens, regardless of the channel. Something similar is certainly possible in version 4 too. I use this feature to restore the original input for AST subtrees (i.e. from token stream start index to end index).
Yes, this can be done. Look at [this question](https://stackoverflow.com/questions/41667217/antlr4-how-can-i-both-hide-and-use-tokens-in-a-grammar) and [this question](https://stackoverflow.com/questions/13661754/semantic-predicates-in-antlr4) for some examples. The first one of these seems to directly address your question about handling EOL "some of the time".