Автор Тема: OberonJS  (Прочитано 2191 раз)

vlad

  • Hero Member
  • *****
  • Сообщений: 1388
    • Просмотр профиля
Re: OberonJS
« Ответ #30 : Февраль 07, 2017, 03:21:03 pm »
Техническая проблема с номерами строк. Решение сейчас сделал в виде парсинга ответа твоего компилятора и вычета числа строк базовых модулей. Но это такой костылище :)

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

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #31 : Февраль 07, 2017, 04:41:56 pm »
Помогите, пожалуйста, разобраться со шрифтами! Как нарисовать текст?

Раз уж ты связался с processing.js, то вот это не подходит? http://processingjs.org/reference/text_
Я пытался сделать как там, но не понимаю как правильно объявить глобальную переменную
PFont font;

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #32 : Февраль 07, 2017, 04:43:27 pm »
Техническая проблема с номерами строк. Решение сейчас сделал в виде парсинга ответа твоего компилятора и вычета числа строк базовых модулей. Но это такой костылище :)

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

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #33 : Февраль 07, 2017, 04:44:36 pm »
Алексей, а у меня к тебя огромная просьба. Не мог бы ты зарегистрироваться на моем сайте, чтобы я от тебя разместил твои же примеры. А то так получается, что они от моего юзера. А лучше бы от твоего сделать, раз ты автор!

vlad

  • Hero Member
  • *****
  • Сообщений: 1388
    • Просмотр профиля
Re: OberonJS
« Ответ #34 : Февраль 07, 2017, 06:40:22 pm »
Я пытался сделать как там, но не понимаю как правильно объявить глобальную переменную
PFont font;

Я так понял эта штука пришла из Java и примеры тоже оттуда ;) Поэтому надо допиливать напильником. В JavaScript нет типов при объявлении переменной, поэтому будет просто:
var font;

vlad

  • Hero Member
  • *****
  • Сообщений: 1388
    • Просмотр профиля
Re: OberonJS
« Ответ #35 : Февраль 07, 2017, 06:43:34 pm »
С нетерпением буду ждать. Боюсь, что без твоей помощи с глубоким пониманием собственного транслятора, мое решение будет всегда костыльным.

Оно у тебя есть в виде исходников на каком-нибудь гитхабе? А то я боюсь готового html будет мало...

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #36 : Февраль 08, 2017, 03:49:59 am »
С нетерпением буду ждать. Боюсь, что без твоей помощи с глубоким пониманием собственного транслятора, мое решение будет всегда костыльным.

Оно у тебя есть в виде исходников на каком-нибудь гитхабе? А то я боюсь готового html будет мало...
Дело в том, что все примеры сейчас в базе данных хранятся, при загрузке они в виде переменных записываются в HTML. Так что тут не так просто выложить в GitHub весь проект. А зачем тебе доступ к PHP ? Там ведь на уровне JavaScript у тебя вся логика компилирования.

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #37 : Февраль 08, 2017, 03:50:54 am »
Я так понял эта штука пришла из Java и примеры тоже оттуда ;) Поэтому надо допиливать напильником. В JavaScript нет типов при объявлении переменной, поэтому будет просто:
var font;
Спасибо, попробую так.

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #38 : Февраль 09, 2017, 08:20:41 am »
Подскажите, пожалуйста, как отключить добавление пробелов при переходе на новую строку?!?!

vlad

  • Hero Member
  • *****
  • Сообщений: 1388
    • Просмотр профиля
Re: OberonJS
« Ответ #39 : Февраль 09, 2017, 02:46:22 pm »
Подскажите, пожалуйста, как отключить добавление пробелов при переходе на новую строку?!?!

Ты про редактор? Это надо спрашивать/смотреть где-то здесь: https://codemirror.net/doc/manual.html

vlad

  • Hero Member
  • *****
  • Сообщений: 1388
    • Просмотр профиля
Re: OberonJS
« Ответ #40 : Февраль 12, 2017, 06:59:56 am »
С нетерпением буду ждать. Боюсь, что без твоей помощи с глубоким пониманием собственного транслятора, мое решение будет всегда костыльным.

Вот мой "глубокий" коммит: https://github.com/vladfolts/oberonjs/commit/e25413ba63621ccd68997b0760e49106bfb77046
Запулай его и тогда сможешь у себя написать так (см. main.js):
result = require('oc.js').compile(
src,
language,
function(e){errors += e;},
options,
                        readModule // функция чтения импортируемого модуля
)

readModule() будет выглядет так:
function readModule(name){
    return modules[name];
}

Ну и модули будут задаваться примерно так:
var modules = {
    Log: "MODULE Log;...",
    Draw: "MODULE Draw;...
    ....
};

Все извращения с конкатенацией текста модулей убери.

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #41 : Февраль 12, 2017, 06:47:15 pm »
Спасибо, Влад, на неделе испробую это полезное нововведение.

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #42 : Февраль 15, 2017, 02:33:50 am »
Все работает как надо, спасибо, Влад.

Теперь пользователь сможет делать произвольное число модулей для своих приложений :)
https://models.molpit.org/model/63

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #43 : Февраль 15, 2017, 02:50:54 am »
Упс, не все работает.
TypeError: internal compiler error while parsing line 2: self.s is undefinedhttps://models.molpit.org/model/52

Как это поправить?

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 66
    • Просмотр профиля
Re: OberonJS
« Ответ #44 : Февраль 15, 2017, 02:59:10 am »
добавление префиксов к именам модулей в переменных JavaScript не помогло :(