Автор Тема: Вопрос по биндингу ? Или что тут еще требуется?  (Прочитано 111379 раз)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #240 : Ноябрь 11, 2013, 03:20:35 pm »
а подскажите, пожалуйста, есть ли в компиляторе код/объект, который бы мог использоваться для создания автокомплита по оберону?

Пока нет. Но хочется. Когда-нибудь будет, если проект не загнется :)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #241 : Ноябрь 11, 2013, 03:22:14 pm »
КП в плане того, что процедуры не надо присваивать, удобнее конечно

Да, процедуры будут добавлены одними их первых в расширение языка. Хотя бы по по образу и подобию КП.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #242 : Ноябрь 12, 2013, 03:30:50 pm »
В текущей версии жабаскриптовые строки можно не конверить в массив при передаче как ARRAY OF CHAR - будет работать.
PROCEDURE f*(s: ARRAY OF CHAR);
...
var s = "abc";
oberonModule.f(s);

Также можно попробовать поддержать обратный сценарий (если надо) - чтобы обероновский ARRAY OF CHAR  выглядел для жабаскрипта почти как строка (перегрузить toString в rtl.js).
VAR s: ARRAY 10 OF CHAR;
BEGIN
    s := "abc";
    JS.alert(s);

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #243 : Ноябрь 12, 2013, 03:34:14 pm »
    JS.alert(s);

Cейчас показывает 97,98,99,0,0,0...

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #244 : Ноябрь 14, 2013, 01:48:31 pm »
Подскажите, пожалуйста, как исключения обрабатываются? Или ключевые слова, которые по этому поводу посмотреть. Или подобного вообще нет?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #245 : Ноябрь 14, 2013, 02:15:54 pm »
Подскажите, пожалуйста, как исключения обрабатываются? Или ключевые слова, которые по этому поводу посмотреть. Или подобного вообще нет?


Будет после методов ;) Пока можно кидать и ловить из жабаскрипта.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #246 : Ноябрь 15, 2013, 06:29:35 am »
Ладно, пока жабаскриптом буду.

Такой вопрос, не нашел как объявлять форвардные объявления процедур. Или это уже не требуется?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #247 : Ноябрь 15, 2013, 06:36:37 am »
Такой вопрос, не нашел как объявлять форвардные объявления процедур. Или это уже не требуется?

Вирт выпилил. Если есть взаиморекурсивные процедуры - то только через дополнительную процедурную переменную.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #248 : Ноябрь 15, 2013, 06:40:04 am »
А где нибудь есть описание стандартных библиотек (чтобы реализацию для снегопата можно было бы использовать и в других средах)?

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

Сейчас вижу, что достаточно реализовывать стандартные библиотеки, и работать через них. Чтобы потом также легко перейти на браузер.

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #249 : Ноябрь 15, 2013, 06:43:37 am »
Вирт выпилил. Если есть взаиморекурсивные процедуры - то только через дополнительную процедурную переменную.
Ясно.
А при этом процедурное переменной можно присваивать только процедуры текущего модуля? А то пытаюсь присвоить из другого, выдает ошибку

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #250 : Ноябрь 15, 2013, 06:57:18 am »
Кстати, судя по ответу на оберонкоре, там исключение вроде как через системную библиотеку сделано, здесь наверное тоже самое надо.

Может приведете, интерфейс (чтобы на яваскрипте пока у себя написал)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #251 : Ноябрь 15, 2013, 09:27:16 am »
А при этом процедурное переменной можно присваивать только процедуры текущего модуля? А то пытаюсь присвоить из другого, выдает ошибку

Можно:
MODULE test1;

TYPE
   Proc* = PROCEDURE(x: INTEGER): INTEGER;
 
VAR
   proc: Proc;

PROCEDURE SetProc*(p: Proc);
BEGIN
   proc := p;
END SetProc;   

PROCEDURE TestProc*(x: INTEGER): INTEGER;
BEGIN
   RETURN proc(x)
END TestProc;   

END test1.

MODULE test;
IMPORT JS, test1;
 
PROCEDURE Add1(x: INTEGER): INTEGER;
BEGIN
   RETURN x + 1
END Add1;   
 
PROCEDURE Mul2(x: INTEGER): INTEGER;
BEGIN
   RETURN 2 * x
END Mul2;   
 
PROCEDURE Sqr(x: INTEGER): INTEGER;
BEGIN
   RETURN x * x
END Sqr;   
 
BEGIN
   test1.SetProc(Add1);  JS.alert(test1.TestProc(5));
   test1.SetProc(Mul2);  JS.alert(test1.TestProc(5));
   test1.SetProc(Sqr);   JS.alert(test1.TestProc(5))
END test.
to iterate is human, to recurse, divine

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

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #252 : Ноябрь 15, 2013, 09:36:39 am »
Я делал как-то так:

MODULE test;
 
PROCEDURE Add1*(x: INTEGER): INTEGER;
BEGIN
   RETURN x + 1
END Add1;   
 
BEGIN
 
END test.


MODULE test1;
IMPORT JS, test;

TYPE
   Proc* = PROCEDURE(x: INTEGER): INTEGER;
 
VAR
   proc: Proc;

PROCEDURE SetProc*(p: Proc);
BEGIN
   proc := p;
END SetProc;   

BEGIN
 
  SetProc(test.Add1);
  JS.alert(Proc(5));

END test1.

Сейчас тоже ошибка выдается, но как-то по другому

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #253 : Ноябрь 15, 2013, 09:38:17 am »
Наверное как всегда глупость сделал, позже попробую разобраться сам

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Вопрос по биндингу ? Или что тут еще требуется?
« Ответ #254 : Ноябрь 15, 2013, 10:22:30 am »
Я делал как-то так:

MODULE test;
 
PROCEDURE Add1*(x: INTEGER): INTEGER;
BEGIN
   RETURN x + 1
END Add1;   
 
BEGIN
 
END test.


MODULE test1;
IMPORT JS, test;

TYPE
   Proc* = PROCEDURE(x: INTEGER): INTEGER;
 
VAR
   proc: Proc;

PROCEDURE SetProc*(p: Proc);
BEGIN
   proc := p;
END SetProc;   

BEGIN
 
  SetProc(test.Add1);
  JS.alert(Proc(5));

END test1.

Сейчас тоже ошибка выдается, но как-то по другому

В строке

JS.alert(Proc(5));

указано имя типа вместо имени процедуры. Надо так:

JS.alert(proc(5));
to iterate is human, to recurse, divine

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