Here's my interface, so call me ...maybe
Going back to your original code.
I think a little bit of reflection will get you out of the try catch block situation.

public bool HasExplicitCallStatement()
{
    var theObject = ((dynamic) Context.Parent);
    if(theObject.GetType().GetMethod("CALL") != null)
    {
        var call = theObject.CALL();
        return call != null &amp;&amp; call.Symbol.Text == Tokens.Call;
    }

    return false; 
}