Size: a a a

Compiler Development

2020 March 27

EO

Eugene Obrezkov in Compiler Development
вот на текущий момент у меня under the hood всё сделано, сейчас делаю фасады

и на данный момент это выглядит вот так
источник

EO

Eugene Obrezkov in Compiler Development
теперь немного workflow, как я это вижу
источник

EO

Eugene Obrezkov in Compiler Development
пользователь крафтит у себя с помощью DSL свои слайды, описывает их как он их видит

мой парсер парсит DSL и из него генерирует вот такой большой JSON, который я могу прокинуть в Deck, чтобы он десериализовался и запустил презентацию
источник

AT

Alexander Tchitchigin in Compiler Development
Собственно, да, неясно, почему бы не создавать инстансы соответствующих классов прямо по месту - зачем там вообще JSON в этом месте?
источник

EO

Eugene Obrezkov in Compiler Development
потому что я хочу сказать пользователям, что вот смотрите, вы можете не только API использовать, а и декларативно описывать состояние
источник

AT

Alexander Tchitchigin in Compiler Development
Сейчас самый популярный пользовательский DSL для сладов - Markdown.
источник

EO

Eugene Obrezkov in Compiler Development
как Markdown натянуть на JSON?
источник

AT

Alexander Tchitchigin in Compiler Development
Eugene Obrezkov
потому что я хочу сказать пользователям, что вот смотрите, вы можете не только API использовать, а и декларативно описывать состояние
Тут два варианта (которые можно поддержать оба):
1. Пользователи пользуются Вашим декларативным DSL, который может быть тупо удобными конструкторами классов как во Flutter и прочих Swift UI.
2. Пользователь генерирует JSON нужной формы любым удобным для него способом - в этом случае это не Ваша проблема.
источник

AT

Alexander Tchitchigin in Compiler Development
Eugene Obrezkov
как Markdown натянуть на JSON?
Распарсить и сконвертировать. Ещё лучше - распарсить и сконвертировать сразу в Ваши модели, без JSON.
источник

EO

Eugene Obrezkov in Compiler Development
Alexander Tchitchigin
Тут два варианта (которые можно поддержать оба):
1. Пользователи пользуются Вашим декларативным DSL, который может быть тупо удобными конструкторами классов как во Flutter и прочих Swift UI.
2. Пользователь генерирует JSON нужной формы любым удобным для него способом - в этом случае это не Ваша проблема.
вариантов пользования масса

1) Он может выкачать все мои пакеты и крафтить через API себе слайды, хоть заменять реализации - это сделано
2) Он может выкачать фасадный пакет Deck, прокинуть ему в конструктор JSON и получить то же самое - это сделано

3) Вариант с DSL конструкторами классов - возможно это то что нужно, варианты?
источник

EO

Eugene Obrezkov in Compiler Development
ну и второй вариант да, если пользователь хочет сам крафтить JSON и ему это нравится - это его проблеа
источник

EO

Eugene Obrezkov in Compiler Development
все фигуры доступны как отдельные пакеты и они предоставляют классический new Shape() и делай с ним что хочешь
источник

AZ

Alexandr Zamaraev in Compiler Development
Eugene Obrezkov
потому что я хочу сказать пользователям, что вот смотрите, вы можете не только API использовать, а и декларативно описывать состояние
Если *json* подходит, но хочется всё же более читаемого, почему бы *yaml* не использовать?
источник

DP

Dmitry Ponyatov in Compiler Development
предполагая, что часть данных слайда — исполняемые (интерпретируемые, чтобы не уходить в оффтопик), а в каком виде хотелось бы язык описания видеть?
у работодателя в списке потенциальных проектов делать инфографику с анимацией, которая должна из СУБД дергать параметры, и рендерить анигифки или кусочки видео
источник

AT

Alexander Tchitchigin in Compiler Development
Eugene Obrezkov
вариантов пользования масса

1) Он может выкачать все мои пакеты и крафтить через API себе слайды, хоть заменять реализации - это сделано
2) Он может выкачать фасадный пакет Deck, прокинуть ему в конструктор JSON и получить то же самое - это сделано

3) Вариант с DSL конструкторами классов - возможно это то что нужно, варианты?
А какие нужны варианты для 3?
источник

AT

Alexander Tchitchigin in Compiler Development
Alexandr Zamaraev
Если *json* подходит, но хочется всё же более читаемого, почему бы *yaml* не использовать?
Или Toml, или... Markdown?! 😂
источник

AT

Alexander Tchitchigin in Compiler Development
Крайний раз делал слайды на Racket - вообще жара! 😃
источник

DP

Dmitry Ponyatov in Compiler Development
Dmitry Ponyatov
предполагая, что часть данных слайда — исполняемые (интерпретируемые, чтобы не уходить в оффтопик), а в каком виде хотелось бы язык описания видеть?
у работодателя в списке потенциальных проектов делать инфографику с анимацией, которая должна из СУБД дергать параметры, и рендерить анигифки или кусочки видео
пока думаю делать граф объектов-трасформаторов данных, и редактировать этот граф командным языком
источник

DP

Dmitry Ponyatov in Compiler Development
зы, а где можно почитать буквари по реализации dataflow языков?
источник

EO

Eugene Obrezkov in Compiler Development
Alexandr Zamaraev
Если *json* подходит, но хочется всё же более читаемого, почему бы *yaml* не использовать?
yaml тоже можно
источник