Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - vlad

Страницы: [1] 2 3 ... 93
1
Общий раздел / Re: Online компилятор Oberon-07/11.
« : Апрель 21, 2019, 08:32:57 pm »
Что Вы хотите поправить? Если добавить внятности ошибки, то можно, но вряд ли автор транслятора будет это делать. Если возможность использовать открытые массивы в записях, то нет - это не соответствует языку.

Да, над синтаксическими ошибками там серьезную работу надо делать, сходу не пофиксать. Поскольку грамматики опредяется в а-ля DSL, то парсер очень тупой и не может четко сказать, что ему не понравилось (только то, что вот этот конструкт не соответсвует грамматике).

2
Общий раздел / Re: Online компилятор Oberon-07/11.
« : Апрель 21, 2019, 08:27:34 pm »
Подскажите, пожалуйста, на что ругается (знаю, что-то не так с методом push)

Такие штуки надо как баги сабмитать: https://github.com/vladfolts/oberonjs/issues/51
Посмотрю на досуге.

3
Общий раздел / Re: Online компилятор Oberon-07/11.
« : Январь 22, 2019, 03:55:36 pm »
Плагины для VSCode пишутся на TypeScript, хотя, вроде, и на Javascript должно быть можно.

Прикрутить oberonjs теоретически можно, поскольку это JS. Но практического смысла мало, если ты только не собрался писать плагины на поток, поскольку большую часть времени промучаешься с "прикручиванием", чем с написанием логики плагина.

4
Общий раздел / Re: OberonJS
« : Март 20, 2017, 01:22:39 pm »
https://models.molpit.org/model/49

У тебя глобальный String перекрывается твоей собственной функцией String. Обратиться к глобальному можно так: JS.String.fromCharCode

5
Общий раздел / Re: OberonJS
« : Март 20, 2017, 03:12:30 am »
Еще прошу поделиться опытом, как быть с динамическими объектами. Скажем, если мне надо создать массив под данные из файла.
NEW нельзя получается, массивы объявить тоже только по константе возможно.
Только статические типы получается? То есть заранее делать огномный буфер под предполагаемый размер?
Или есть какие-то варианты?

1. Eberon (я там сделал поддержку динамических массивов).
2. Системный модуль JS: Вызвать RTL$.makeArray c нужным размером.

Вообще если ты собрался что-то читать из файла, то тебе все равно без JS не обойтись. Там же в биндинге сделай и массив нужного размера.

По подводу "как с этим жить" тебе Info21 расскажет на oberoncore  8) По мне так никакого глубинного смысла в этом нет вообще - Вирт сэкономил в очередной раз на простоте компилятора при том, что динамические массивы ему все равно не нужны были для очередной задачи.

6
Общий раздел / Re: OberonJS
« : Март 20, 2017, 03:04:16 am »
Firefox почему-то ругается
String.fromCharCode is not a function

Должно быть. Вот мозилловская документация: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

Приведи весь сгенеренный код или минимальный пример, где оно не работает.

7
Общий раздел / Re: OberonJS
« : Март 20, 2017, 02:02:43 am »
Еще хочется понять как выполнять преобразования типов. Мне надо четыре байта переделать в INTEGER.
В вики написано:
No SYSTEM module
А как делать тогда?

Модуль JS вместо SYSTEM. Но в твоем случае можно обойтись обычным обероном:
    result := b1 + LSL(b2, 8) + LSL(b3, 16) + LSL(b4, 24);

8
Общий раздел / Re: OberonJS
« : Март 20, 2017, 01:27:29 am »
Столкнулся с тем, что CHAR транслятор понимает как числа.

На это были причины. Для твоего случая надо просто сделать String.fromCharCode(arg)

9
Общий раздел / Re: OberonJS
« : Февраль 22, 2017, 02:55:26 pm »
Влад, я сделал модуль для базовых операций со строками. Но вот ASSERT когда срабатывает, нельзя ли указывать в какой он процедуре сработал?

Процедуру вытащить можно, но непонятно зачем, если тебе и так весь стек доступен - см. свойство "stack" у перехваченного исключения.

10
Общий раздел / Re: OberonJS
« : Февраль 22, 2017, 02:20:16 pm »
Добавил обработчики мыши, получился слайдер
https://models.molpit.org/model/52

Слайдер не работает на мобиле. А вот все остальное работает. Профит! :)

11
Общий раздел / Re: OberonJS
« : Февраль 22, 2017, 05:42:24 am »
Влад, а тут Comdiv интересовался, почему проверка индексов так много времени занимает?

Потому что не считать выход за границы ошибкой одно из многих идиотских решений в джаваскрипте :)

Он пример накидал, что разница в 10 раз получается:
https://models.molpit.org/model/59

Да, если есть тест на котором хорошо видно разницу - гляну.

12
Общий раздел / Re: OberonJS
« : Февраль 21, 2017, 04:10:08 pm »
Вот эти две функции работают с русскими буквами и прочими пи в моем хроме:
function encode( s ) {
  return btoa( unescape( encodeURIComponent( s ) ) );
}
function decode( s ) {
  return decodeURIComponent( escape( atob( s ) ) );
}

encode("варпваπ");
"0LLQsNGA0L/QstCwz4A="

decode("0LLQsNGA0L/QstCwz4A=")
"варпваπ"

13
Общий раздел / Re: OberonJS
« : Февраль 21, 2017, 03:53:00 pm »
вот так заработало!

Да, это типа рекомендованный способ. Видимо проблема где-то в другом месте.

14
Общий раздел / Re: OberonJS
« : Февраль 21, 2017, 02:26:31 pm »
Может кто-то знает метод?!

Ты гуглил? ;) Из общих соображений и для проверки правильного понимания концепций: base64 это кодировка для бинарей, перед тем как ее использовать надо текст перегнать в бинарь, чтобы текст перегнать в бинарь надо определиться в какой кодировке будет этот текст будучи в бинаре (UTF8?).

15
Общий раздел / Re: OberonJS
« : Февраль 20, 2017, 03:40:07 pm »
Это плохая идея, так как компилятор пол мегабайта весит :)

Ты так говоришь, как будто пол гигабайта ;) Я не специалист в Web и не знаю как такие проблемы решаются правильно с текущими технологиями, но одно из существующих/проверенных решений это добавление хэша к имени файла скрипта. Естественное это подразумевает какую-то автоматизацию сборки сайта.

Страницы: [1] 2 3 ... 93