Последние сообщения

Страницы: 1 ... 8 9 [10]
91
Общий раздел / Re: OberonJS
« Последний ответ от vlad Январь 27, 2017, 06:16:04 pm »
Немного продвинулся, почти доделал некий менеджер модулей.
http://models.molpit.org/model/49

Выглядит прикольно. А что в итоге будет и для кого?

Возможно менять несколько модулей и потом компилировать. И также к модулям возможно добавлять документацию.
Надо теперь будет сделать, чтобы модули автоматически выстаивались в правильном порядке при компиляции.

Еще раз - надо делать on demand подгрузку, тогда такой проблемы не будет - оно естественным образом будет выстраиваться.
92
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Январь 27, 2017, 08:30:17 am »
Немного продвинулся, почти доделал некий менеджер модулей.
http://models.molpit.org/model/49
Возможно менять несколько модулей и потом компилировать. И также к модулям возможно добавлять документацию.
Надо теперь будет сделать, чтобы модули автоматически выстаивались в правильном порядке при компиляции.
93
Общий раздел / Re: OberonJS
« Последний ответ от vlad Январь 24, 2017, 05:13:43 pm »
А нет, он обнаруживает... но из-за того, что сверху приклеены другие модули, он неправильно строку показывает :)

Придется вычислять сдвиг и корректировать сообщения об ошибке.

Я бы все-таки предложил сделать по-правильному - чтение импортируемого модуля "on demand". Тогда не будет таких проблем. Мне кажется это не должно быть проблемой. Для HTML это будет что-то типа <script> секций, указывающих на исходные файлы модулей, oc.compile будет вытаскивать текст из соответствующей секции. Я могу помочь ближе к воскресенью, если у тебя не получится.
94
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Январь 24, 2017, 06:28:09 am »
Рекомендую модераторам таки выделить форум по OberonJS из общего раздела. Это все-таки какой-то продукт. Тогда и ссылку можно будет давать людям, мол проект обсуждается с разработчиком там то.
95
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Январь 24, 2017, 06:20:17 am »
А нет, он обнаруживает... но из-за того, что сверху приклеены другие модули, он неправильно строку показывает :)

Придется вычислять сдвиг и корректировать сообщения об ошибке.
96
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Январь 24, 2017, 06:17:55 am »
Влад, к тебе первая просьба:

можешь поправить, чтобы компилятор обнаруживал пропущенные точки с запятой?

сейчас он создает код, и потом во время исполнения уже выдает ошибку.
97
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Январь 23, 2017, 08:24:34 pm »
Пока примерно так и сделал:
http://model.molpit.org/model/49
Демка работает.

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

Есть базовый набор модулей. Есть пользовательский набор для ряда моделей, и есть набор для каждой модели.

Модули хранятся а базе данных. Сделал уже, но пока без сохранения. Только Log положил в базу данных.
98
Общий раздел / Re: OberonJS
« Последний ответ от vlad Январь 23, 2017, 07:37:50 pm »
Спасибо за советы. Попробую сделать как Владислав написал, чтобы сохраненные готовые модули (фреймворк) копировались в начало рекурсивно.

На самом деле еще проще: запихни все библиотечные модули текстуально до компилируемого и все заработает без бубнов с настройкой компилятора. Т.е.:
oc.compile(libModulesText + userEnteredText);

Несколько неэстетично, зато дешево надежно и практично.

P.S. Порядок модулей в тексте должен быть строго в порядке зависимостей.
99
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Январь 23, 2017, 06:39:40 pm »
Спасибо за советы. Попробую сделать как Владислав написал, чтобы сохраненные готовые модули (фреймворк) копировались в начало рекурсивно.
100
Общий раздел / Re: OberonJS
« Последний ответ от vlad Январь 23, 2017, 05:56:05 pm »
Читать импортируемые модули примерно так: https://github.com/vladfolts/oberonjs/blob/master/src/nodejs.js#L67
return oc.compileModules(
            sources,

            // вот эта функция по имени импортируемого модуля должна вернуть его исходный текст
            function(name){
                var fileName = name;
                if (!path.extname(fileName).length)
                    fileName += ".ob";
               
                readPath = calcPath(fileName);
                return fs.readFileSync(readPath, "utf8");
            },
...

"fs.readFileSync" в браузере нет (как и вообще доступа к файловой системе, это nodejs), тебе придется заменить его на что-то другое.
Страницы: 1 ... 8 9 [10]