Это кажется распространенным недоразумением ANTLR
:
Обработка языка в ANTLR:
Обработка языка выполняется в двух строго разделенных фазах:
Поскольку лексирование должно предшествовать синтаксическому анализу, возникает следствие : Lexer не зависит от анализатора, парсер не может влиять на лексику.
Лексинг
Лексинг в ANTLR работает следующим образом:
Пример: что не так с вашей грамматикой
Ваша грамматика имеет два правила, которые являются критическими:
FILEPATH: ('A'..'Z'|'a'..'z'|'0'..'9'|':'|'\\'|'/'|' '|'-'|'_'|'.')+ ;
TITLE: ('A'..'Z'|'a'..'z'|' ')+ ;
Каждое совпадение, соответствующее TITLE, также будет соответствовать FILEPATH. И FILEPATH определяется до TITLE: Таким образом, каждый токен, который вы ожидаете стать заголовком, будет FILEPATH.
Для этого есть два намека:
у вас есть 2 решения:
Я сделал быструю функцию jQuery:
$('.social-nav-item').hover(function(){
$(this).addClass("link_hovered");
});
https://codepen.io/anon/pen/QoNXZL
Pure CSS для элемента li:
.social-nav-item:hover{
width:200px !important;
margin-left:-150px;
}