Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Код с неверным case проходит компиляцию

12.08.2018, 19:30. Показов 1758. Ответов 21
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
begin
  var x := 1;
  case x of; // <-- Разве должно компилироваться?
    1: Writeln(1);
    2: Writeln(2);
  end;
end.
Добавлено через 2 минуты
В FPC 3.0.0:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//fpc 3.0.0
 
program HelloWorld;
 
var
  x: integer;
 
begin
  x := 1;
  case x of;
    1: Writeln(1);
    2: Writeln(2);
  end;
end.
Выдаст:
source.pas(10,12) Error: Illegal expression
source.pas(11,5) Error: Constant Expression expected
source.pas(11,5) Fatal: Syntax error, ":" expected but "ordinal const" found
Error: /usr/bin/ppcx64 returned an error exitcode
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2018, 19:30
Ответы с готовыми решениями:

Не проходит компиляцию простейший код
Здравствуйте. У меня есть программа Enlogic, для программирования ПЛК. В ней среди фукциональных...

Дерево, с неверным обходом
В общем, есть программа, в которую я добавил доп. функцию &quot;обхода в ширину&quot; и она работает неверно....

Не проходит компиляцию, если возможно дайте переделанный код
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int a,b,c,d; cin&gt;&gt;a&gt;&gt;b&gt;&gt;c&gt;&gt;d; if...

Не проходит компиляцию
Добрый вечер, форумчане! Необходимо реализовать функцию объединения двух списков, но так, чтобы в...

21
Почетный модератор
64086 / 47495 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
12.08.2018, 19:34 2
Соколиный глаз, Убери точку с запятой после
Pascal
1
case x of;
Добавлено через 52 секунды
И все точно также откомпилируется.
0
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
12.08.2018, 19:35  [ТС] 3
Puporev, если уберу - все хорошо. А цель моя была посмотреть как отреагирует компилятор PascalABC.Net на ;. Реакция FreePascal - адекватна (ожидаема), в то время как PascalABC.Net, что называется, проглотил как есть, но выдал кривое форматирование при попытке нажать Ctrl+Shift+F:
Pascal
1
2
3
4
5
6
begin
  var x := 1;
  case x of1: Writeln(1);
    2: Writeln(2);
  end;
end.
0
Почетный модератор
64086 / 47495 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
12.08.2018, 19:36 4
Тогда я тебя и АВС.net не понял..
0
Соколиный глаз
12.08.2018, 19:37  [ТС]
  #5

Не по теме:

Я вот последнее время подобные тему создаю (посвященные тестированию), надеюсь это кому-то поможет. И не будут натыкаться на эти проблемы. :)

0
140 / 107 / 56
Регистрация: 15.09.2017
Сообщений: 425
12.08.2018, 19:37 6
Puporev, Оцените игру
0
Соколиный глаз
12.08.2018, 19:38  [ТС]
  #7

Не по теме:

kotAV, игра называется "поймай баги компилятора". :D

0
kotAV
12.08.2018, 19:42
  #8

Не по теме:

Соколиный глаз, скорее "используем восьмиклассников для поиска багов в нашей высокоclassной среде"

0
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
12.08.2018, 19:43  [ТС] 9
С match-with та же проблема:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
uses System;
 
var
  X: array of integer;
 
begin
  SetLength(X, 1);
  match X with; // <--
    &Array(var a): Writeln('X является массивом');
    IEnumerable<integer>(var b): Writeln('X является IEnumerable<integer>');
  end;
end.
Хотя при выполнении программы - все хорошо (также и у case).
0
Почетный модератор
64086 / 47495 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
12.08.2018, 19:46 10
А вот такое не проходит.
Pascal
1
type zap=record;
1
140 / 107 / 56
Регистрация: 15.09.2017
Сообщений: 425
12.08.2018, 19:51 11
Puporev, а такое проходит (пустой оператор называется, насколько я помню)
Pascal
1
2
3
4
5
6
7
8
begin;
  ;
  ;
  ;
  ;
  ;
  ;
;end.
0
Почетный модератор
64086 / 47495 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
12.08.2018, 19:53 12
Ну такое проходит и в простом АВС и в Турбо Паскаль.
0
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
12.08.2018, 20:07  [ТС] 13
kotAV, это синтаксически верный код.
1
kotAV
12.08.2018, 20:10
  #14

Не по теме:

Соколиный глаз,

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
begin;var fl:=false;
      begin
      ;;;;;;;;    ;;;;;; begin;;;;;;
      ;;     ;;         ;;  ;;
      ;;begin;;      end;;  ;;begin
      ;;     ;;   ;;;;;;;;  ;;
      ;;;;;;;   ;;end   ;;    ;;;;
      ;;   end  ;;      ;;repeat  ;; 
 begin;;        ;;    ;;;;     end;;
 ;;   ;;until fl  ;;;;  ;;  ;;;;;
                  end
  
;end.

0
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
12.08.2018, 20:12  [ТС] 15
kotAV, красота. Осталось понять для чего.

Добавлено через 18 секунд
Правда нечитабельно.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31466 / 20513 / 7988
Регистрация: 22.10.2011
Сообщений: 35,637
Записей в блоге: 7
12.08.2018, 22:10 16
Цитата Сообщение от Соколиный глаз Посмотреть сообщение
это синтаксически верный код
Твой код с case-ом тоже синтаксически верный
1
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
13.08.2018, 00:15  [ТС] 17
volvo, всмысле который с «;»? Если да, то это (для меня) шок - в справке ничего об этом ни сказано, и тут резко всплыло, то что так можно оказывается.
0
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.08.2018, 23:07  [ТС] 18
volvo, сегодня посмотрел их GitHub. Появилась новая Issue. Что скажете?

Добавлено через 1 минуту

Не по теме:

Прекрасно, а мы это до них заметили. :)

0
Эксперт Pascal/Delphi
2380 / 1292 / 1491
Регистрация: 29.08.2014
Сообщений: 4,623
15.08.2018, 02:40 19
Соколиный глаз, там написано, что некорректное двоеточие не компилируется и поэтому не форматируется.

Добавлено через 18 минут

Не по теме:

Соколиный глаз, после публикации на хабре pascalabc.net без ошибок спать спокойно не даёт?

0
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
15.08.2018, 11:03  [ТС] 20

Не по теме:

Joy, PascalABC.Net без ошибок? Где это Вы увидели? :D



Добавлено через 20 минут
Joy, в 3.4 (сборка 1744) на этот код:
Pascal
1
2
3
4
5
6
7
begin
  var x := 1;
  case x of; // <-- Облом, уже не канает. :D
    1: Writeln(1);
    2: Writeln(2);
  end;
end.
выдает:
Program2.pas(3) : Встречено ';', а ожидалось выражение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2018, 11:03

Не проходит компиляцию функция
Раньше никогда не писала на VBA, только на С и С++. Сейчас задали написать пользовательскую...

Компиляцию проходит, но прога не запускается(
#include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #define MIN_NEGATIVE_INT...

Почему не проходит компиляцию? выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Программа проходит компиляцию, но не запускается
доброго времени суток. в адрессах 300h, 301h, 302h есть числа. программа должна их выровнять по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru