Описание тега sablecc

SableCC - это генератор парсеров, который генерирует полнофункциональные объектно-ориентированные фреймворки для создания компиляторов, интерпретаторов и других анализаторов текста. В частности, сгенерированные структуры включают интуитивно понятные строго типизированные абстрактные синтаксические деревья и обходчики деревьев. SableCC также четко разделяет код, сгенерированный машиной, и код, написанный пользователем, что сокращает цикл разработки.
1 ответ

Тестирование компилятора

В настоящее время я работаю над компилятором, созданным с использованием sablecc. Короче говоря, компилятор примет в качестве входных данных файлы спецификаций (это то, что мы анализируем) и файлы.class и обработает байт-код файлов.class, чтобы убед…
5 ответов

Лучший способ разобрать bbcode

Я хотел бы поработать над фильтром bbcode для сайта php. (Я использую CakePHP, это будет помощник bbcode) У меня есть некоторые требования. Bbcodes могут быть вложенными. Так что-то подобное действительно. [block] [block] [/block] [block] [block] [/…
28 янв '09 в 19:21
1 ответ

Sablecc сдвиг / уменьшить конфликты на производстве с идентификаторами

Я пытаюсь написать файл спецификации для sablecc для версии minipython (с постфиксными / префиксными операторами увеличения и уменьшения), и в некоторых продуктах, естественно, необходимо использовать идентификаторы, но я получаю эти конфликты во вр…
1 ответ

Сдвиг / уменьшение конфликта с SableCC

У меня первый опыт работы с SableCC и определением грамматики. У меня есть следующая грамматика (часть ее): query = {atop} attroperator | {query_par} l_par query r_par | {query_and} [q1]:query logic_and [q2]:query | {query_or} [q1]:query logic_or [q…
06 июл '10 в 20:48
1 ответ

Настройка Sablecc в затмении

Я выполнил шаги, упомянутые в ссылке: Настройка sablecc в Eclipse для установки scablecc. Я пытаюсь выполнить шаг 9, указанный в ссылке, но получаю сообщение об ошибке: "Не удалось найти или загрузить основной класс". Может ли кто-нибудь рассказать …
17 сен '15 в 19:20
1 ответ

SableCC не использует методы интерпретатора

Я новичок в SableCC. Просто запустите пример калькулятора по адресу http://sablecc.sourceforge.net/thesis/thesis.html. Я использовал файл грамматики и файл интерпретатора, как они есть, и попытался разобрать простое арифметическое выражение, как "45…
11 фев '15 в 03:50
1 ответ

Производства для генератора парсера Sable CC

Это выглядит довольно просто, но за последние полчаса я не мог понять, почему мы говорим {zero} или же {one} в следующих произведениях что указывает {}? bit = {zero} zero | {one} one ;
21 мар '12 в 20:33
1 ответ

Условия - разбор грамматики SableCC

Я использую sableCC, и я пытаюсь построить грамматику, которая принимает условия, как в C. Однако я получаю ошибки, когда пытаюсь добавить круглые скобки в моих условиях, потому что есть конфликт с круглыми скобками, которые у меня есть для выражени…
16 май '17 в 19:06
1 ответ

Проблемы с файлом грамматики SableCC

Кажется, у меня есть проблемы с SableCC, генерирующим соответствующие лексеры, узлы и анализируемые вещи, которые он обычно автоматически генерирует из файла грамматики. Я не реализую абстрактное синтаксическое дерево в данный момент. Когда я пытаюс…
10 сен '14 в 15:51
1 ответ

Задача с обратным выводом с простой суммой и умножением грамматики

У меня возникли проблемы с пониманием того, как, используя анализатор снизу вверх и, например, строку ввода 1 + 2 * 3, перейдите от "снизу" к "вершине". Вот грамматика, которую я использую (я бы сказал, что она правильная, так как она найдена в Craf…
09 апр '11 в 16:04
1 ответ

ANTLR или SableCC для реализации DSL?

Кто-то использовал оба для реализации языка и может сравнить их, указывая на сильные и слабые стороны? Я ищу инструмент RAD с поддержкой генерации кода AST Walker. SableCC - это LALR и, следовательно, поддерживает "левую рекурсию", тогда как ANTLR -…
15 дек '11 в 21:37
1 ответ

Как получить что-то вроде символа EOF из файла в Java

Всем добрый день. Я использую sableCC, и он принимает в качестве входных данных объект Reader. Например, этот код работает правильно: compile (new StringReader ("print 1")); Поскольку StringReader возвращает -1 после окончания строки: StringReader s…
14 апр '12 в 06:35
1 ответ

Разбор SableCC дал неверный результат

Я попытался разобрать правильное сообщение, используя sablecc. Существует три типа допустимого формата сообщения. ааа; (три непрерывных буквенных символа + полу {messageid} messageid semi) мм; (или два непрерывных буквенных или цифровых символа {fli…
21 июл '15 в 04:12
1 ответ

Изменение схемы ассоциативности в грамматике

Я пытаюсь использовать SableCC для генерации парсера для моделей, который я называю LAM. LAM сам по себе прост, и простая грамматика (где я опускаю много вещей) для них: L := 0 | (x,y) | F(x1,...,xn) | L || L | L ; L Я написал эту грамматику: Helper…
11 фев '13 в 12:27
3 ответа

Удаление определенных классов при запуске внешнего инструмента в Eclipse?

Я установил внешний инструмент (sablecc) в eclipse (3.4), который генерирует группу классов в текущем проекте. Мне нужно запустить этот инструмент и регенерировать эти классы довольно часто. Это означает, что каждый раз, когда я хочу запустить sable…
16 сен '08 в 18:24
2 ответа

Грамматика EBNF для запроса URI OData

Кто-нибудь есть или знает, где найти грамматику EBNF для запроса OData URI? Я хочу использовать его с SableCC для генерации классов C++ для анализа запросов URI OData.
29 авг '14 в 10:49
2 ответа

Проблема с sablecc по производственному правилу вида prod = (expr | expr')*

Productions program = cls*; cls = clsdef name openbrace clsdata closingbrace; clsdata = (clsfield|clsmethod)*; clsfield = [variabletype]:name [variablename]:name semi; clsmethod = [returntype]:name [methodname]:name openmethodbrace closingmethodbrac…
1 ответ

Загрузка класса в файл.jar, созданный программно

Вот моя цель: использовать SableCC для генерации нескольких парсеров / лексеров во время выполнения и загрузки их экземпляров для синтаксического анализа и лексирования. Я решил, что мои шаги будут такими: Генерировать .java файлы с использованием S…
10 ноя '12 в 04:31
1 ответ

Понимание грамматики в SableCC

Я прохожу sableCC для одного из моих проектов, и у меня мало вопросов о файле грамматики. 1. В чем разница между помощником и токенами? 2. Что должно идти в помощник и токен? 3. И самое главное, что такое Productions?
19 сен '15 в 07:40
1 ответ

SableCC ожидает: EOF

Я выполняю задание по компиляторам для своего университета и впервые использую SableCC 3.7. Я пытаюсь определить мой файл грамматики, но когда я пытаюсь запустить его (через командную строку), я получаю эту ошибку: "ParserException: [51,5] ожидание:…
14 сен '14 в 17:49