Автор Тема: Фатальная ошибка Сишного синтаксиса  (Прочитано 16924 раз)

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Фатальная ошибка Сишного синтаксиса
« : Январь 23, 2013, 02:27:10 pm »
Файл из 3'486 строчек кода на C#. Компилятор MSVS2008 устанавливая курсор в конец файла говорит, что где-то там забыта скобочка }

} expected

Вот поди и сыщи где же именно забыта скобка } ...  :'( :'( :'(

DddIzer

  • Гость
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #1 : Январь 23, 2013, 02:47:02 pm »
а что в Паскале или Жабе подобная херь выглядит более обнадеживающе?

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #2 : Январь 23, 2013, 02:48:09 pm »
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #3 : Январь 23, 2013, 02:54:36 pm »
Нашёл.

Недостающая скобка } должна стоять в 1'634 строке.

Расстояние между ошибкой и местом когда компилятор сообразил, что не хватает скобки 1'852 строчек.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #4 : Январь 23, 2013, 03:12:20 pm »
А вот не надо такие большие файлы делать )))
И вот ещё один довод в пользу (питоно/хаскеле)подобного синтаксиса )))
to iterate is human, to recurse, divine

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

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #5 : Январь 23, 2013, 03:12:54 pm »
Нашёл.

Недостающая скобка } должна стоять в 1'634 строке.

Расстояние между ошибкой и местом когда компилятор сообразил, что не хватает скобки 1'852 строчек.
Ну, справедливости ради, в Обероне с этим не сильно лучше. Ну, то есть там ошибка расползется не на уровне одного исходного файла, а на уровне одной процедуры.

В Аде вот с этим сильно лучше - там у каждой конструкции своя закрывающая "скобочка". Причем те же циклы могут быть именными (и скобочки, если не путаю, будут соответствующими).
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #6 : Январь 23, 2013, 03:14:03 pm »
А вот не надо такие большие файлы делать )))
И вот ещё один довод в пользу (питоно/хаскеле)подобного синтаксиса )))

У хаскеля фигурные скобочки также никто не отменял :-) Но можно конечно и без них, да.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #7 : Январь 23, 2013, 03:18:15 pm »
У хаскеля фигурные скобочки также никто не отменял :-) Но можно конечно и без них, да.
Как и у питона ))
to iterate is human, to recurse, divine

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

pygubanov

  • Newbie
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #8 : Январь 23, 2013, 07:30:45 pm »
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.

kemiisto

  • Jr. Member
  • **
  • Сообщений: 64
    • Просмотр профиля
    • kemiisto.ru
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #9 : Январь 23, 2013, 07:34:43 pm »
В Аде вот с этим сильно лучше - там у каждой конструкции своя закрывающая "скобочка". Причем те же циклы могут быть именными (и скобочки, если не путаю, будут соответствующими).
Не только в Аде. ;)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #10 : Январь 23, 2013, 07:37:29 pm »
В Аде вот с этим сильно лучше - там у каждой конструкции своя закрывающая "скобочка". Причем те же циклы могут быть именными (и скобочки, если не путаю, будут соответствующими).
Не только в Аде. ;)
Но Ада все равно круче :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #11 : Январь 23, 2013, 07:50:03 pm »
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.
хе ...  я D7 уже лет как 6 использую с CnPack'ом там помимо этого есть раскраска операторных скобок различной вложенности различным цветом.. помогает

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #12 : Январь 23, 2013, 08:02:31 pm »
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.
хе ...  я D7 уже лет как 6 использую с CnPack'ом там помимо этого есть раскраска операторных скобок различной вложенности различным цветом.. помогает

А я Идею использую для Go. Там даже если не влазит блок целиком на экран, все равно голову блока видно (то есть верхнюю пару нижней скобочки). Это реально помогает найти потерянную скобочку вне зависимости от степени вложенности и разлапистости кода.
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #13 : Январь 23, 2013, 08:05:54 pm »
вот так

pygubanov

  • Newbie
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Фатальная ошибка Сишного синтаксиса
« Ответ #14 : Январь 23, 2013, 08:21:45 pm »
Уже установил и испытал. Действительно красиво с первого взгляда. Но  думаю меня на работе не поймут если буду использовать эту среду разработки.