Автор Тема: Online компилятор Oberon-07/11.  (Прочитано 165047 раз)

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #240 : Сентябрь 17, 2013, 03:01:09 pm »
из html страницы я не понял, как извлечь, а изучать html пока не в приоритете

И вроде бы я так понял, "прикручивается" какой-то графический движок. Где бы про него почитать? Ну и не помешают ссылки на доступную литературу по js (хотя это само по себе тоже не хотелось бы изучать, блин, как прав инфо21, и его источники, когда говорят про наименьшее сопротивление :) ).

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #241 : Сентябрь 17, 2013, 06:26:36 pm »
Есть программа, которая подгружает файлы js скриптов, не браузер.

См. build.cmd - оно "линкует" результирующий .js с компилятором (то, что тебе нужно) и заодно .html (тебе не нужно). Получившийся .js содержит функцию, которую можно вызывать с текстом на обероне и получить резльтирующий .js (в виде строки). Результирующий .js можно выполнить (запустить программу) через eval или еще как. Вроде все. Какую функцию и как вызывать - см. код внутри html, там все просто.

Если "не браузер" - это nodejs, то ничего "линковть" не надо - оно уже готово к использованию - require("oc.js") и вперед.

Что надо сделать, чтобы в нее включить компилятор, и как оформлять код на обероне, чтобы он компилировался?

Оформлять код как обычно - в виде обероновских модулей. А вся связь с внешним миром через IMPORT JS.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #242 : Сентябрь 17, 2013, 06:32:01 pm »
И вроде бы я так понял, "прикручивается" какой-то графический движок. Где бы про него почитать?

http://processingjs.org/

Эта жабаскриптовая либа. Компилятор сам по себе для работы ее не требует. Но если ты хочешь чего-то такое забабахать тут же на страничке - то можно импортнуть биндинг этой либы (valexey написал) и использовать эту жабаскриптовую либу из обероновского модуля.

Ну и не помешают ссылки на доступную литературу по js (хотя это само по себе тоже не хотелось бы изучать, блин, как прав инфо21, и его источники, когда говорят про наименьшее сопротивление :) ).

По идее js сам по осебе тебе не нужен. Пока ты не захочешь биндинги писать или там со страничкой что-то делать (DOM  и т.д.).

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #243 : Сентябрь 19, 2013, 12:10:43 am »
См. build.cmd
Только там на питоне, в котором понимаю немного меньше, чем ничего. Хотя кажется с этим разбираться не придется.

Если "не браузер" - это nodejs, то ничего "линковть" не надо - оно уже готово к использованию - require("oc.js") и вперед.
Какое то require есть. Подцепить оберонскрипт смогу. Но вот совсем не понял, как быть с модулями? Я так понял в оберонскрипт addScript добавляет узел html документа. А мне как быть, если у меня не html? Там правда есть строка: "par.appendChild(scp)//this will also execute the code" . Что она обозначает?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #244 : Сентябрь 19, 2013, 12:16:43 pm »
Поразмыслив, пришел к выводу, что можно попытаться обойтись html документом. Единственное вопрос, он имеет какие-нибудь связи с внешним миром? Экспортирует переменные, или хотя бы файлы на диск пишет/считывает? Конечно интересует прежде всего поле html документа для 1С, но думаю, там не сильно отличаться будет от html в целом, хотя конечно не факт.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #245 : Сентябрь 19, 2013, 05:00:38 pm »
Только там на питоне, в котором понимаю немного меньше, чем ничего. Хотя кажется с этим разбираться не придется.

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

Какое то require есть. Подцепить оберонскрипт смогу. Но вот совсем не понял, как быть с модулями? Я так понял в оберонскрипт addScript добавляет узел html документа. А мне как быть, если у меня не html? Там правда есть строка: "par.appendChild(scp)//this will also execute the code" . Что она обозначает?

Опиши подробнее под чем ты все это хочешь использовать. В общем случае достаточно любого хоста, который умеет ранить жабаскрипт. Ничего браузерно-специфичного не используется. Я работаю с компилятором в консоли, используя nodejs. Загрузку обероновских модулей тебе надо будет делать самому - компилятор только компилирует. На вход - оберон (строка), на выходе - жабаскрипт (строка). Как именно подавать обероновский текст на вход и что делать со скомпилированным жабаскриптом - решать тебе. Страничка online-компилятора берет обероновский текст из текстового поля, отдает его компилятору и помещает результат в другое тектовое поле. Все, никакой магии.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #246 : Сентябрь 19, 2013, 05:02:59 pm »
Поразмыслив, пришел к выводу, что можно попытаться обойтись html документом. Единственное вопрос, он имеет какие-нибудь связи с внешним миром? Экспортирует переменные, или хотя бы файлы на диск пишет/считывает? Конечно интересует прежде всего поле html документа для 1С, но думаю, там не сильно отличаться будет от html в целом, хотя конечно не факт.

Какой там жабаскрипт в 1С я вообще не в курсе. ilovb тебе в помощь :)

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #247 : Сентябрь 19, 2013, 06:03:31 pm »
Опиши подробнее под чем ты все это хочешь использовать.
Интересует проект Снегопат для конфигуратора 1С, а конкретно написание скриптов для него https://snegopat.ru/

Не знаю, какой именно там движок яваскрипта.

Из овтета понял, что генерится другой скрипт по  build.cmd, значит буду заново разбираться. Думаю в нем найду нужную функцию :) . Был уверен, что тот, который скачал в архиве, как раз и есть сгенерированный.

Я правильно понял, чтобы динамически подключить модуль скрипта, требуется выполнить eval(строкаскрипта) ? А затем уже к методам можно будет обращаться по имени модуля оберона?

Вроде начинает проясняться в голове помаленьку. Спасибо за ответы.

Судя по проблемам, с которыми сталкиваются судя по гуглу с html и  скриптами на 1С , там проще не будет. Поэтому пока продолжу разбираться с текущим вариантом. Главное с подключением разобраться, дальше думаю проще будет.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #248 : Сентябрь 19, 2013, 09:17:39 pm »
Из овтета понял, что генерится другой скрипт по  build.cmd, значит буду заново разбираться. Думаю в нем найду нужную функцию :) . Был уверен, что тот, который скачал в архиве, как раз и есть сгенерированный.

Да, в исходниках готового скрипта нет - только модули для nodejs. Готовый можешь утащить со странички онлайн компилятора (если не хочешь заморчаиваться с питоном).

Я правильно понял, чтобы динамически подключить модуль скрипта, требуется выполнить eval(строкаскрипта) ? А затем уже к методам можно будет обращаться по имени модуля оберона?

Да. eval того, что выдаст компилятор.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #249 : Октябрь 10, 2013, 07:20:49 pm »
Единственное вопрос, он имеет какие-нибудь связи с внешним миром? Экспортирует переменные, или хотя бы файлы на диск пишет/считывает?

В текущей ревизии появился батник compile.cmd - на вход берет имя исходного файла с обероном. Компилирует с поддержкой импортов (ищет файлы по названию импортиованного модуля + расширение .ob), на выходе исполняемый "a.js". Может тебе в таком виде будет проще разобраться. Работает все из консоли (требуется установленный nodejs).

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #250 : Октябрь 11, 2013, 05:06:18 am »
В текущей ревизии появился батник compile.cmd - на вход берет имя исходного файла с обероном. Компилирует с поддержкой импортов (ищет файлы по названию импортиованного модуля + расширение .ob), на выходе исполняемый "a.js". Может тебе в таком виде будет проще разобраться. Работает все из консоли (требуется установленный nodejs).
Спасибо, я уже понял принцип, как мне работать сразу с кодом оберона. Просто пока не получились чисто какие-то яваскриптовые вещи. На текущий момент, пока отложил ковыряние, т.к. решил сначала сделать прототип на 1С (это мне все же проще). Как заработает на 1С, тогда вернусь уже к реализации на js, по срокам пока неопределенность, т.к. последнее время по работе нагрузка повысилась (пока на прототип отвожу полгода).

А так хорошо, что на данный компилятор строите планы, очень надеюсь, что мне он пригодится в дальнейшем (даже уже в текущем виде)

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #251 : Октябрь 11, 2013, 06:53:00 am »
Тут подумал, что неплохо бы прототип писать, максимально приближенно к типам оберона 07. На русском случайно нет сообщения о языке?

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #252 : Октябрь 11, 2013, 07:01:12 am »
Хотя пожалуй не требуется, слишком сообщение маленькое, если что, в компонентном паскале подсмотрю :)

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #253 : Октябрь 14, 2013, 09:33:29 am »
Тут обнаружил, ранее не известные мне возможности, из-за которых прототип решил делать сразу на javascript (можно будет почти все объекты 1С использовать в коде). А значит прототип тоже буду делать на javascript. Я правильно понял, что кириллица не допускается в идентификаторах данного компилятора?

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #254 : Октябрь 14, 2013, 11:15:56 am »
Я правильно понял, что кириллица не допускается в идентификаторах данного компилятора?

В последних описаниях оберона указано:

ident = letter {letter | digit}.
letter = "A" | "B" | … | "Z" | "a" | "b" | … | "z".
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".

то есть для идентификаторов только латиница годится.
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…