Я пытаюсь получить директиву компилятора в анализаторе verilog, который дает мне истинное имя файла / путь и истинную текущую строку в необработанном файле.
Язык Verilog нуждается в проходе предварительной обработки, который у меня есть, но во время посещения я должен знать текущее имя файла (которое не может быть изменено с помощью директивы include) и, следовательно, истинную текущую строку в необработанном файле.
Часть предварительной обработки добавляет директиву verilog `line , которая указывает текущий файл и строку.
Затем я отправляю предварительно обработанный буфер в antlr Lexer, анализирую и извлекаю всю информацию verilog с посетителем. Я должен сохранить директиву строки компилятора verilog в описании грамматики verilog:
Preprocessing_line
: '`line ' Decimal_number String Decimal_number '\n' -> channel(2)
;
Теперь я не знаю, как получить информацию об этом выделенном канале в любой точке посетителя? Целевым языком для этого синтаксического анализатора является Python3.