Generative Programming Homework 5 — различия между версиями
Mikhail (обсуждение | вклад) (Новая страница: «'''Язык арифметических выражений на Spoofax. Срок сдачи 02.12''' Написать во фреймворке Spoofax язык …») |
Mikhail (обсуждение | вклад) м |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''Язык арифметических выражений на Spoofax. Срок сдачи 02.12''' | '''Язык арифметических выражений на Spoofax. Срок сдачи 02.12''' | ||
+ | |||
+ | '''Внимание! На главной странице курса появилась ссылка на таблицу с текущими результатами. "?" означает, что работа не проверена''' | ||
Написать во фреймворке Spoofax язык выражений. | Написать во фреймворке Spoofax язык выражений. | ||
− | В выражениях должны быть 4 операции и переменные (используйте "нетерминал" ID в Spoofax). Скобки можно сделать по желанию, можно не делать. Переменные объявлять не надо. В итоге программа на созданном языке должна иметь такой вид: | + | В выражениях должны быть 4 операции и переменные (используйте "нетерминал" ID в Spoofax). Скобки можно сделать по желанию, можно не делать. Переменные объявлять не надо. В итоге программа на созданном языке должна иметь такой вид: |
+ | |||
+ | '''a+b *c + d/e''' | ||
+ | |||
Выражение должно парсироваться с учетом приоритета операций. | Выражение должно парсироваться с учетом приоритета операций. | ||
− | Генератор должен генерить лиспоподобные выражения: | + | Генератор должен генерить лиспоподобные выражения: |
− | +1 балл к заданию можно получить, поняв, где описаны методы, использующиеся при резолве переменных в tutorial-проекте. | + | '''Plus(a, Plus( Mul(b,c),Div(d,e) ) )''' |
+ | |||
+ | +1 балл к заданию можно получить, поняв, где описаны методы, использующиеся при резолве переменных в tutorial-проекте. | ||
+ | |||
Hint: Для создания tutorial-проекта снимите галочку "Generate minimal project" в мастере создания проекта. | Hint: Для создания tutorial-проекта снимите галочку "Generate minimal project" в мастере создания проекта. | ||
+ | |||
Hint 2: сам резолв описан в /trans/<lang_name>.str, внутри искать строку "editor-resolve" | Hint 2: сам резолв описан в /trans/<lang_name>.str, внутри искать строку "editor-resolve" |
Текущая версия на 18:54, 22 ноября 2013
Язык арифметических выражений на Spoofax. Срок сдачи 02.12
Внимание! На главной странице курса появилась ссылка на таблицу с текущими результатами. "?" означает, что работа не проверена
Написать во фреймворке Spoofax язык выражений. В выражениях должны быть 4 операции и переменные (используйте "нетерминал" ID в Spoofax). Скобки можно сделать по желанию, можно не делать. Переменные объявлять не надо. В итоге программа на созданном языке должна иметь такой вид:
a+b *c + d/e
Выражение должно парсироваться с учетом приоритета операций. Генератор должен генерить лиспоподобные выражения:
Plus(a, Plus( Mul(b,c),Div(d,e) ) )
+1 балл к заданию можно получить, поняв, где описаны методы, использующиеся при резолве переменных в tutorial-проекте.
Hint: Для создания tutorial-проекта снимите галочку "Generate minimal project" в мастере создания проекта.
Hint 2: сам резолв описан в /trans/<lang_name>.str, внутри искать строку "editor-resolve"