Я сейчас часто думаю, что надо было писать SS как язык, а не как препроцессор: т.е. реализовать полностью свой синтаксис (JS like), а не использовать JS, строить полное AST и разделить архитектуру на части:
1) Фронтенд: построение AST и работа с ним;
2) Бекэнд: трансляция результат в заданный язык.
Такая архитектура была бы более гибкая, с точки зрения настройки трансляции в разные языки.
Сейчас же SS работает как простой препроцессор на основе конечного автомата: т.е. в тексте ищутся директивы, они преобразуются в другие директивы и так до тех пор, пока все директивы не будут преобразованы. Такая модель проще, занимает меньше кода и работает быстрее, но менее гибкая.
Последний раз редактировалось kobezzza, 10.01.2015 в 21:55.
|