Generative Programming Homework 5 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
м
м
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
'''Язык арифметических выражений на Spoofax. Срок сдачи 02.12'''
 
'''Язык арифметических выражений на Spoofax. Срок сдачи 02.12'''
 +
 +
'''Внимание! На главной странице курса появилась ссылка на таблицу с текущими результатами. "?" означает, что работа не проверена'''
  
 
Написать во фреймворке Spoofax язык выражений.  
 
Написать во фреймворке Spoofax язык выражений.  
 
В выражениях должны быть 4 операции и переменные (используйте "нетерминал" ID в Spoofax). Скобки можно сделать по желанию, можно не делать. Переменные объявлять не надо. В итоге программа на созданном языке должна иметь такой вид:  
 
В выражениях должны быть 4 операции и переменные (используйте "нетерминал" ID в Spoofax). Скобки можно сделать по желанию, можно не делать. Переменные объявлять не надо. В итоге программа на созданном языке должна иметь такой вид:  
{code} a+b  *c      + d/e {code}
+
 
 +
'''a+b  *c      + d/e'''
 +
 
 
Выражение должно парсироваться с учетом приоритета операций.
 
Выражение должно парсироваться с учетом приоритета операций.
 
Генератор должен генерить лиспоподобные выражения:  
 
Генератор должен генерить лиспоподобные выражения:  
{code} Plus(a, Plus( Mul(b,c),Div(d,e) ) ) {code}
 
  
+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"