Использование ANTLR для разбора файла журнала

Я только начинаю с ANTLR и пытаюсь разобрать какой-то шаблон из файла журнала

например: файл журнала:

7114422 2009-07-16 15: 43: 07,078 [LOGTHREAD] INFO StatusLog - вход задачи 0: uk.project.Evaluation.Input.Function1 (selected = ["red", "yellow"]) {}

7114437 2009-07-16 15: 43: 07,093 [LOGTHREAD] INFO StatusLog - вывод задачи 0: uk.org.project.Evaluation.Output.Function2 (selected = ["Rocket"]) {}

7114422 2009-07-16 15: 43: 07,078 [LOGTHREAD] INFO StatusLog - вход задачи 0: uk.project.Evaluation.Input.Function3 (selected = ["blue", "yellow"]) {}

7114437 2009-07-16 15: 43: 07,093 [LOGTHREAD] INFO StatusLog - вывод задачи 0: uk.org.project.Evaluation.Output.Function4 (selected = ["Speech"]) {}

Теперь мне нужно проанализировать этот файл, чтобы найти только «Evaluation.Input.Function1» и его значения «red» и «yellow» и «Evaluation.Output.Function2», а также значения «Rocket», игнорировать все остальное и аналогично другие 2 входные данные. и выходные функции 3,4 ниже. Существует много таких функций ввода и вывода, и мне нужно найти такие наборы функций ввода / вывода. Это моя попытка грамматики, которая не работает. Любая помощь будет оценена. Будучи моей первой попыткой написания грамматики и ANTLR, она становится довольно сложной сейчас ...

grammar test;

    tag : inputtag+ outputtag+ ;
//Input tag consists of atleast one inputfunction with one or more values
inputtag:  INPUTFUNCTIONS INPUTVALUES+;

//output tag consists of atleast one ontput function with one or more output values
outputtag : OUTPUTFUNCTIONS OUTPUTVALUES+;

INPUTFUNCTIONS 
 : INFUNCTION1 | INFUNCTION2;

OUTPUTFUNCTIONS
 :OUTFUNCTION1 | OUTFUNCTION2;

// Possible input functions in the log file
fragment INFUNCTION1
 :'Evaluation.Input.Function1';

fragment INFUNCTION2
 :'Evaluation.Input.Function3';

//Possible values in the input functions
INPUTVALUES
 : 'red' | 'yellow' | 'blue';

// Possible output functions in the log file 
fragment OUTFUNCTION1
 :'Evaluation.Output.Function2';

fragment OUTFUNCTION2
 :'Evaluation.Output.Function4';

//Possible ouput values in the output functions
fragment OUTPUTVALUES
 : 'Rocket' | 'Speech';

Ответы на вопрос(1)

Ваш ответ на вопрос