ANTLR4 lexer sprawdzający poprawną deklarację zmiennych

0

Witam,
Od paru godzin próbuje napisać lexer, który zaakceptuje program, który będzie się zawierał w '{' i '}' i akceptował ( na razie ) tylko poprawne deklaracje zmiennych czyli np. coś takiego:
{ int a; int[80][80] b; float c;}
Mam problem z + ponieważ gdzie go nie dodam to coś mi nie działa.
Mam takie coś aktualnie:

 
grammar test; 
r: block ; // zaczyna sie od begin
block: '{' DEKLARACJA|(DEKLARACJA DEKLARACJA_TABLICY) NAZWA SREDNIK '}'; // deklaracja int ab; lub int[80] ab; lub int[90][90] ab;  JAK ZROBIC ZEBY BYLO WIELE?
DEKLARACJA: ['int' 'bool' 'float']; // na poczatku musi byc deklaracja przynajmniej jedna
NAZWA: [a-z]+; // nazwa zmiennej
LICZBA: [0-9]+; // liczba kolumn/wierszy
SREDNIK: ';' ; // SREDNIK
DEKLARACJA_TABLICY: (KWADRATOWY_LEWY LICZBA KWADRATOWY_PRAWY)+ ; // ile wymiarow ma tablica i jakie wartosci?
KWADRATOWY_LEWY: '[' ; // nawias kwadratowy otwierajacy
KWADRATOWY_PRAWY: ']' ; // nawias kwadratowy zamykajacy
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines

Proszę o jakieś wskazówki
Pozdrawiam

0

Jakby to kogoś kiedyś interesowało to już sobie sama na to odpowiedziałam ;>

 
grammar test;
r: stat;
stat: '{'(zmienna ';')+'}';
zmienna: (typ ID)|(tablica);
typ: 'int' | 'float' | 'bool';
tablica: typ('[' NUM ']')+ ID;
WS:[ \r\t\n]+ ->skip;
ID:[a-z]+;
NUM:[0-9]+;

1 użytkowników online, w tym zalogowanych: 0, gości: 1