Редактор для скриптинга сцен в CoSpaces. Презентация...

Preview:

Citation preview

Редактор для скриптинга сцен в CoSpaces

Илья Шкуратовруководители: Даниил Еловков, Илья Яцышин

2016 г

1/12

CoSpaces – онлайн платформа для создания 3D сцен

Для создания динамических сцен, хочется предоставить возможность писать скрипты, управляющие объектами.

Для комфортного и легкого создания скриптов нужен DSL и удобный редактор для него.

Контекст

2/12

Поставленные задачи

● Проектирование и реализация DSL с помощью MPS on the Web

● Реализация JavaScript генератора

● Интеграция редактора в СoSpaces

● Поддержка контекстно-зависимого дополнения

Работающий редактор, который будет поддерживать простую функциональность языка JavaScript ● переменные● функции● условный оператор● цикл ● и т.д.

Ожидаемый результат

3/12

Используемые технологии

4/12

Базовая часть языкаБазовые конструкции

● определение переменных

● определение функций

● арифметические выражения

● for

● if, else

Литералы

● Integer

● Float

● Boolean

● String

● Object

5

Дополнительные конструкции

Методы для сцены

● создание / удаление объекта

● получение объекта по идентификатору

● и т.д.

Сервисы (наборы методов, доступные объекту)

6/12

Интеграция с СoSpaces

● Вызов редактора со сцены по нажатию кнопки

● Сохранение написанного скрипта на сервере

● Генерация кода получения объекта по идентификатору

● Получение доступных для объекта сервисов

● Запуск сгенерированного скрипта

7/12

Интеграция с CoSpaces

8

Поддержка контекстно-зависимого дополнения

● Ссылки на переменные и функции предлагаются с учётом области видимости

● Ссылки на методы и поля выводятся все, затем происходит разрешение ссылки

9/12

Разрешение ссылокБлочная область видимости (как в С/С++, Java)

Цветовая индикация неразрешённой ссылки

Разрешение ссылки при добавлении объявления в область видимости переменной

10/12

ПланируетсяПроверка ограничений

● проверки, связанные с типами

● дублирование объявление переменной

● забытый return в функции

● и т.п.

Сигнализация об обнаруженных ошибок в редакторе

Поддержка классов и свойств11/12

Результаты

● Реализована базовая часть языка для скриптинга и Web-редактор для него

● Реализован транслятор в JavaScript

● Произведена интеграция редактора в CoSpaces

12/12

Recommended