ANTLR en un flujo de datos ruidoso

Soy muy nuevo en el mundo ANTLR y estoy tratando de descubrir cómo puedo usar esta herramienta de análisis para interpretar un conjunto de cadenas "ruidosas". Lo que me gustaría lograr es lo siguiente.

Tomemos por ejemplo esta frase:It's 10PM and the Lazy CAT is currently SLEEPING heavily on the SOFA in front of the TV

Lo que me gustaría extraer esCAT, SLEEPING ySOFA y tener una gramática que coincida fácilmente con el siguiente patrón: SUJETO - VERBO - OBJETO INDIRECTO ... donde podría definir

VERB : 'SLEEPING' | 'WALKING';
SUBJECT : 'CAT'|'DOG'|'BIRD';
INDIRECT_OBJECT : 'CAR'| 'SOFA';

etc. No quiero terminar con una "NoViableException" permanente ya que no puedo describir todas las posibilidades en torno a la estructura del lenguaje. Solo quiero separar palabras inútiles y mantener las que son interesantes.

Es más como si tuviera un tokeniser y le preguntara al analizador "Ok, lea la transmisión hasta que encuentre un SUJETO, luego ignore el resto hasta que encuentre un VERBO, etc."

Necesito extraer una estructura organizada en un conjunto no organizado ... Por ejemplo, me gustaría poder interpretar (no estoy juzgando la pertinencia de esta visión completamente básica e incorrecta de la 'gramática inglesa')
SUBJECT - VERB - INDIRECT OBJECT
INDIRECT OBJECT - SUBJECT - VERB

así que analizaré oraciones como

It's 10PM and the Lazy CAT is currently SLEEPING heavily on the SOFA in front of the TV

o

It's 10PM and, on the SOFA in front of the TV, the Lazy CAT is currently SLEEPING heavily

Respuestas a la pregunta(1)

Su respuesta a la pregunta