Эка невидаль!
Feb. 3rd, 2023 10:07 amТак как запускать программы из Паскаля-Автокода неудобно, я решил попробовать перенести программу печати в две колонки в Паскаль-Монитор. Одна известная разница - отсутствие в П-М конструкции "var _IN type" (например, "ch _IN letters", где тип letters определён как 'A'..'Z'), но это легко решается введением функций.
А дальше случилось забавное: я впервые увидел ошибку компилятора. Тестовый пример выглядит так:
В перенесенном на С++ компиляторе падает с тем же успехом.
Если вместо диапазона просто перечисление [ord(' '), ord('/')] - работает. Надо разбираться :)
А дальше случилось забавное: я впервые увидел ошибку компилятора. Тестовый пример выглядит так:
PASCAL COMPILER 15.0 (15.02.82)
00001 1 0 PROGRAM MAIN(OUTPUT);
00001 2 1 VAR S: SET OF 0..47;
00007 3 2 BEGIN
******200 SYSTEM=200
00010 4 2 S := [ORD(’ ’)..ORD(’/’)];
***** 0
00023 5 0 END.
В перенесенном на С++ компиляторе падает с тем же успехом.
Pascal-Monitor in C++ (17.05.2019)
00001 1 0 program main(output);
00001 2 1 var s: set of 0..47;
00007 3 2 begin
Error 200: Internal error 200
00010 4 2 s := [ord(' ')..ord('/')];
^^^^^ 0
00023 5 0 end.
Если вместо диапазона просто перечисление [ord(' '), ord('/')] - работает. Надо разбираться :)