Czy „domyślna definicja tokena w regule parsera” ma się czym martwić?
Tworzę moją pierwszą gramatykę za pomocą ANTLR i ANTLRWorks 2. W większości ukończyłem samą gramatykę (rozpoznaje kod napisany w opisanym języku i buduje poprawne drzewa analizujące), ale nie zacząłem niczego poza tym.
Martwi mnie to, że każde pierwsze wystąpienie tokena w regule parsera jest podkreślone żółtym zawijaniem mówiącym „Niejawna definicja tokena w regule parsera”.
Na przykład w tej regule'var'
ma to squiggle:
variableDeclaration: 'var' IDENTIFIER ('=' expression)?;
Jak to wygląda dokładnie:
Dziwne jest to, że sam ANTLR nie wydaje się mieć nic przeciwko tym regułom (podczas testowania platformy testowej nie widzę żadnego z tych ostrzeżeń w wyjściu generatora analizatora składni, tylko coś o nieprawidłowej wersji Java zainstalowanej na moim komputerze), więc to tylko skarga ANTLRWorks.
Czy należy się martwić, czy powinienem zignorować te ostrzeżenia? Czy powinienem deklarować wszystkie tokeny jawnie w regułach lexera? Większość ekstrapolacji w oficjalnej BibliiDefintive ANTLR Reference wydają się być wykonane dokładnie tak, jak piszę kod.