Публикации по теме 'antlr4'


Анализ вашего собственного языка с помощью ANTLR4
Эта статья также опубликована на моем сайте: https://fwouts.com/articles/parsing-with-antlr-intro Вы когда-нибудь хотели написать свой собственный язык программирования? Допустим, да, потому что это мой повод показать вам, как работает ANTLR4. Мы рассмотрим пример сверхпростого функционального языка, на котором вы можете вызывать методы со строками: print(concat("Hello ", "World")) Мы будем называть наш язык «C3PO». Звучит как хорошее имя...

Вопросы по теме 'antlr4'

Отладка грамматики ANTLR4
Я новичок в ANTLR и добился больших успехов, пытаясь запустить парсер ASN.1 в ANTLR4. В настоящее время я нахожусь на стадии, когда я передаю входной файл для grun и вижу ошибки типа «строка 1: 12029 нет жизнеспособной альтернативы на входе ...» Я...
1269 просмотров
schedule 20.09.2022

ANTLR — StringTemplate — CamelCase
Каков наилучший шаблон (независимый от языка, для переназначаемого кода генерации) для перевода токена antlr в атрибут StringTemplate регистра верблюдов при преобразовании дерева? Пример: Мой DSL имеет определение MY_FIELD, и в выводе...
398 просмотров

ANTLR4: Парсер для логического выражения
Я пытаюсь разобрать логическое выражение следующего типа B1=p & A4=p | A6=p &(~A5=c) Мне нужно дерево, которое я могу использовать для оценки приведенного выше выражения. Итак, я попробовал это в Antlr3 с примером в Antlr-парсер для логики и/или...
5508 просмотров
schedule 29.05.2022

Как определить токены, которые могут появляться в нескольких лексических режимах в ANTLR4?
Я изучаю ANTLR4 и пытаюсь поиграть с лексическими модами. Как сделать так, чтобы один и тот же токен отображался в нескольких лексических режимах? В качестве очень простого примера предположим, что моя грамматика имеет два режима, и я хочу...
2045 просмотров
schedule 11.08.2023

Грамматика для JSON-подобного языка
Я пытаюсь разработать грамматику для языка, подобного JSON. Основные отличия заключаются в том, что имена свойств не нужно заключать в двойные кавычки (хотя они могут быть), и что числа являются только целыми числами (без чисел с плавающей запятой)....
638 просмотров
schedule 01.01.2023

ANTLR4 Токенизация огромного набора ключевых слов
Я хочу встроить некоторые известные имена идентификаторов в свою грамматику, например. имена классов моего проекта известны, и я хочу сообщить лексеру, какие идентификаторы являются известными ключевыми словами, которые на самом деле принадлежат...
986 просмотров
schedule 29.10.2023

Плагин Antlr4 maven не может найти файлы грамматики в разных каталогах
Я использую подключаемый модуль maven antlr4 для создания моего проекта maven, который использует antlr4: <groupId>org.antlr</groupId> <artifactId>antlr4-maven-plugin</artifactId>...
1789 просмотров
schedule 16.11.2022

разбор оператора SQL CREATE с использованием ANTLR4: нет жизнеспособной альтернативы при входе «конфликт»
Я новичок в ANTLR и пытаюсь разобрать следующий оператор создания sql. (Я отказался от какой-то неважной части как SQL, так и грамматики) CREATE TABLE Account (_id integer primary key, conflict integer default 1); и грамматика такая: (Вы...
936 просмотров
schedule 26.07.2023

ANTLR4 C# грамматика и левая рекурсия
Я пытаюсь разобрать код С# с помощью ANTLR4 (из Java). Пока мне не удалось найти подходящую грамматику, поэтому я решил написать свою собственную. Я использовал это приложение здесь , но я столкнулся с проблемой. Проблема в том, что у меня много...
524 просмотров
schedule 20.04.2022

Пишу грамматику antlr4 и хочу подсчитать количество токенов внутри правила
У меня есть грамматика со следующим правилом -> глагол и глагол имеет 3 значения токена получить, положить изменить см. ниже. если бы я должен был прочитать файл, содержащий более 3 глаголов (получить, поставить и изменить), я бы хотел, чтобы...
355 просмотров
schedule 18.10.2022

Как можно указать неассоциативные операторы, такие как ‹, в грамматиках ANTLR4?
В правиле expr : expr '<' expr | ...; синтаксический анализатор ANTLR будет принимать выражения вида 1 < 2 < 3 (и строить левоассоциативные деревья, соответствующие скобкам (1 < 2) < 3 . Вы можете указать ANTLR рассматривать...
1720 просмотров
schedule 17.03.2024

Как мне красиво распечатать продукцию и номера строк, используя ANTLR4?
Я пытаюсь написать фрагмент кода, который возьмет анализатор ANTLR4 и будет использовать его для генерации AST для входных данных, аналогичных тем, которые задает параметр -tree в grun ( misc.TestRig ). Однако я бы также хотел, чтобы вывод включал...
4414 просмотров

Обработка ошибок/исключений Antlr
Проведя некоторое исследование в Интернете, я обнаружил, что это будет способ поймать исключения и вывести мои собственные сообщения об ошибках. По какой-то причине я до сих пор не могу поймать ошибки. Ниже приведен код класса, который...
5917 просмотров
schedule 27.03.2023

Преобразование ANTLR4 в ANTLR3 — удаление левой рекурсии
Я работал над грамматикой в ​​ANTLR4, но из-за изменения требований мне нужно переключиться на ANTLR3. Поэтому я хотел бы удалить левую рекурсию на следующем. exp : A | B | C | exp Operator exp...
201 просмотров
schedule 20.08.2022

Слушатели и посетители Antlr4 — что реализовать?
Я читаю «Полный справочник Antlr 4» и понимаю, как работают слушатели и посетители. Книга особенно хорошо объясняет, как прослушиватели связаны с парсерами SAX, и делает очевидным, когда методы будут вызываться во время реализации каждого из них. Я...
17370 просмотров
schedule 25.04.2023

Ошибка при создании грамматики для шахматных файлов PGN
Я сделал эту грамматику ANTLR4, чтобы проанализировать PGN внутри моей программы на Java, но мне не удалось решить в ней двусмысленность: grammar Pgn; file: game (NEWLINE+ game)*; game: (tag+ NEWLINE+)? notation; tag:...
691 просмотров
schedule 26.04.2023

Грамматика antlr4 для интерпретатора - определение точки входа во входном файле
Я пытаюсь понять, как заставить antlr4 выполняться в заданной точке входного файла, а не вверху. Я воспользовался советом пользователей SO и начал решение с помощью посетителей Antlr4. Мой входной файл объявляет «BASIC», как подпрограммы, и имеет...
361 просмотров
schedule 21.06.2022

Как избежать взаимной левой рекурсии в ANTLR 4
Я пишу грамматику для обработки скалярных и векторных выражений. Приведенная ниже грамматика упрощена, чтобы показать мою проблему, когда скалярное выражение может быть получено из вектора, а вектор может быть получен из скаляра. Например, вектор...
4692 просмотров
schedule 27.10.2023

Слушатели и посетители Scope Antlr4 — вопрос дизайна
Я создал интерпретатор, похожий на Visual Basic, и теперь добавляю некоторую переменную. Моим источником информации является CH8 The Definitive Antlr Reference и сопровождающий его код. По сути, в примерах используются слушатели, а в моем коде —...
542 просмотров
schedule 28.01.2023

Исключение нулевого указателя парсера ANTLR
Я пытаюсь поместить действия в грамматику функции C , но получаю ошибку. Например: expressionStatement returns [String value] : expression? ';' {$value = (($expression.value != null)?$expression.value:"") + ";";} ; Пожалуйста,...
691 просмотров
schedule 25.05.2023