Описание тега rascal
Rascal - это экспериментальный предметно-ориентированный язык для метапрограммирования, такого как статический анализ кода, преобразование программ и реализация предметно-ориентированных языков. Он включает примитивы из реляционного исчисления и переписывания терминов. Его синтаксис и семантика основаны на процедурном (императивном) и функциональном программировании.
0
ответов
Java AST в.java файл Rascal
Мне интересно, есть ли механизмы для перевода из Java AST обратно в исходный файл Java внутри библиотеки lang::java::m3. Спасибо!
16 мар '15 в 19:26
1
ответ
Ошибка при использовании негодяйской грамматики Java15
Я попытался проанализировать некоторый код Java, используя грамматику Java15 Rascal. Однако он не принимает объявление локальной переменной параметризованных типов. Более подробно: это не признает List<String> files = ... это признает final Li…
05 окт '16 в 23:10
1
ответ
Ошибка неоднозначности при рендеринге дерева разбора
В Rascal, при рендеринге дерева разбора на неоднозначной грамматике, почему я иногда получаю сообщение об ошибке с указанием "Неоднозначность" в каком-то месте, а не Rascal просто рендеринг леса разбора и показ неоднозначности? Я всегда просто звоню…
29 июн '16 в 06:47
1
ответ
Как я могу создать список из нескольких совпадений с регулярными выражениями в Rascal?
У меня есть str значение, содержащее достаточное количество текста, и я сопоставляю его с регулярным выражением. str содержит несколько совпадений регулярного выражения, но, конечно, я получаю только первое. Как я могу перечислить по другим матчам, …
07 дек '15 в 22:19
1
ответ
Мошенническая метамодель
Включает ли метамодель Rascal представление информации о системе управления версиями и информацию о трекере ошибок, аналогично той, которая была предложена для FAMIX Antoniol et al.?
27 фев '14 в 21:37
2
ответа
Доступ к поддереву регулярного выражения в parsetree
У меня есть следующий модуль Rascal: module foo import IO; import ParseTree; extend lang::std::Layout; lexical CHAR = [ab]; start syntax CharList = CHAR hd (',' CHAR)+ tl ';'; Мой вопрос заключается в том, как добраться до отдельных элементов tl час…
14 окт '15 в 11:26
1
ответ
Изменение синтаксиса Java
Я хочу использовать существующий Java AST от Rascal, предоставляемый в библиотеке m3, но я хотел бы расширить его, чтобы добавить некоторые функции. Мы работаем с Java-подобным языком (около 95% Java и 5% наших специфических функций). В идеале я хот…
11 авг '15 в 14:15
1
ответ
Парсинг комментария в мошеннике
У меня очень простой вопрос о разборе фрагмента, содержащего комментарий. Сначала мы импортируем мой любимый язык, Пико: import lang::pico::\syntax::Main; Затем мы выполняем следующее: parse(#Id,"a"); дает, как и ожидалось: Id: (Id) `a` Тем не мение…
22 мар '16 в 08:38
1
ответ
Определение типа данных кортежа неизвестной длины в Rascal
Мне было любопытно узнать, можно ли определить тип данных, который мы знаем, должен быть кортежем, но чья длина (или количество элементов неопределяема) в настоящее время. Приложение выглядит следующим образом: //I want to declare a data type, one o…
22 янв '15 в 18:27
2
ответа
Почему ошибки статического типа в этом примере кода сообщаются только во время выполнения Rascal?
Согласно документации Rascal, язык статически типизирован. Однако ошибки типа сообщаются только во время выполнения. Например, когда я создаю этот модуль, я ожидаю ошибку типа, потому что я присваиваю переменную типа int: module Example void example…
23 апр '13 в 08:45
1
ответ
Использовать шаблон для привязки к параметрам конструктора при посещении узлов в Rascal
Я пытаюсь сделать визит сверху вниз по алгебраическому типу данных. Когда я нахожу узел определенного типа, я также хотел бы привязать к узлам этого конкретного узла, например, data Script=script(list[Stmt] body | ... data Stmt =exprstmt(Expr expr)|…
05 ноя '14 в 19:40
1
ответ
Оценивая производительность Rascal?
Я хочу оценить производительность Rascal для данной системы переписывания, которую я написал. Мне интересно, есть ли хороший способ сделать это? В идеале я бы сгенерировал некоторые скомпилированные классы Java из системы, а затем запустил их вручну…
05 июл '17 в 21:38
0
ответов
Негодяи ловят исключения во время выполнения
Попытка перехватить исключение утверждения с помощью сообщения. Обнаружил ошибку после некоторых надоедливых сбоев. Не особенно любил, почему следующее сообщение было сгенерировано, вместо того, чтобы просто сказать пользователю, что он / она забыл …
02 мар '15 в 15:30
1
ответ
Ланг модули в Rascal Shell
Есть некоторый код, который использует модули от lang, все отлично работает в консоли Rascal в Eclipse, но когда я пытаюсь импортировать его (import lang::java::jdt::m3::Core;) в rascal-shell.jar выдает ошибку об отсутствующем пути поиска. rascal>…
05 дек '15 в 20:47
1
ответ
Как сделать "указатели на функции" в Rascal?
Поддерживает ли Rascal указатели на функции или что-то в этом роде, например Java Interfaces? По сути, я хочу извлечь конкретную (изменяющуюся) логику из общего логического блока в виде отдельных функций. Используемая функция передается в общий блок…
06 дек '14 в 18:43
1
ответ
Как найти то, что включено в аннотацию @containment?
Как найти то, что включено в аннотацию @containment? Я не могу найти это в документации онлайн, которая относится только к грамматике и ничего более? Я говорю о попытке получить информацию / факты из модели M3.. В качестве примера: схема =="java+ пе…
19 фев '15 в 18:00
1
ответ
Почему [1..5] в Rascal возвращает [1,2,3,4]?
Я ожидаю, что он вернется [1,2,3,4,5], как в Haskell.
05 сен '13 в 10:00
1
ответ
Пример Rascal-MPL для анализа кода C90
Я играл с некоторыми примерами PICO и Java для статического анализа в Rascal-MPL, но я не нашел примеров для C (C90). Я заметил, что есть "lang::c90::\syntax::C", но я не нашел примеров, как его использовать.
16 ноя '16 в 22:02
1
ответ
Почему отсутствие явного объявления типа в параметре работает, когда функция используется напрямую, а не когда она передается другой функции?
Определите эту функцию в вашем модуле: module Data int inc(x) = x + 1; Введите это в консоли: rascal> import Data; rascal> import List; Это работает: rascal> inc(1); int: 2 Но это не так: rascal> list[int] y = [1,2,3]; rascal> mapper(…
28 янв '15 в 11:14
2
ответа
Rascal Использование модуля веб-сервера
В настоящее время я работаю над стабильной версией Rascal и хочу создать веб-сервер Rascal для обслуживания моих html-шаблонов функциями javascript. Глядя на модуль веб-сервера, я не вижу, как использовать функцию serve для использования веб-сервера…
08 дек '16 в 15:52