Oberon space

General Category => Общий раздел => Тема начата: Губанов Сергей Юрьевич от Январь 23, 2013, 02:27:10 pm

Название: Фатальная ошибка Сишного синтаксиса
Отправлено: Губанов Сергей Юрьевич от Январь 23, 2013, 02:27:10 pm
Файл из 3'486 строчек кода на C#. Компилятор MSVS2008 устанавливая курсор в конец файла говорит, что где-то там забыта скобочка }

} expected

Вот поди и сыщи где же именно забыта скобка } ...  :'( :'( :'(
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: DddIzer от Январь 23, 2013, 02:47:02 pm
а что в Паскале или Жабе подобная херь выглядит более обнадеживающе?
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Январь 23, 2013, 02:48:09 pm
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Губанов Сергей Юрьевич от Январь 23, 2013, 02:54:36 pm
Нашёл.

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

Расстояние между ошибкой и местом когда компилятор сообразил, что не хватает скобки 1'852 строчек.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Geniepro от Январь 23, 2013, 03:12:20 pm
А вот не надо такие большие файлы делать )))
И вот ещё один довод в пользу (питоно/хаскеле)подобного синтаксиса )))
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: valexey_u от Январь 23, 2013, 03:12:54 pm
Нашёл.

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

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

В Аде вот с этим сильно лучше - там у каждой конструкции своя закрывающая "скобочка". Причем те же циклы могут быть именными (и скобочки, если не путаю, будут соответствующими).
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: valexey_u от Январь 23, 2013, 03:14:03 pm
А вот не надо такие большие файлы делать )))
И вот ещё один довод в пользу (питоно/хаскеле)подобного синтаксиса )))

У хаскеля фигурные скобочки также никто не отменял :-) Но можно конечно и без них, да.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Geniepro от Январь 23, 2013, 03:18:15 pm
У хаскеля фигурные скобочки также никто не отменял :-) Но можно конечно и без них, да.
Как и у питона ))
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: pygubanov от Январь 23, 2013, 07:30:45 pm
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: kemiisto от Январь 23, 2013, 07:34:43 pm
В Аде вот с этим сильно лучше - там у каждой конструкции своя закрывающая "скобочка". Причем те же циклы могут быть именными (и скобочки, если не путаю, будут соответствующими).
Не только в Аде. ;)
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: valexey_u от Январь 23, 2013, 07:37:29 pm
В Аде вот с этим сильно лучше - там у каждой конструкции своя закрывающая "скобочка". Причем те же циклы могут быть именными (и скобочки, если не путаю, будут соответствующими).
Не только в Аде. ;)
Но Ада все равно круче :-)
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: DddIzer от Январь 23, 2013, 07:50:03 pm
В 2010 и 2012 студиях у меня рисует боковые линии, как здесь http://oberspace.dyndns.org/index.php/topic,425.msg13272.html#msg13272
Сразу все видно.

В 2008 -  есть только штатная подсветка парных скобок и Ctrl+]  :(
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.
хе ...  я D7 уже лет как 6 использую с CnPack'ом там помимо этого есть раскраска операторных скобок различной вложенности различным цветом.. помогает
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: valexey_u от Январь 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. Там даже если не влазит блок целиком на экран, все равно голову блока видно (то есть верхнюю пару нижней скобочки). Это реально помогает найти потерянную скобочку вне зависимости от степени вложенности и разлапистости кода.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: DddIzer от Январь 23, 2013, 08:05:54 pm
вот так
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: pygubanov от Январь 23, 2013, 08:21:45 pm
Уже установил и испытал. Действительно красиво с первого взгляда. Но  думаю меня на работе не поймут если буду использовать эту среду разработки.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Geniepro от Январь 23, 2013, 08:27:19 pm
В связи с этой потерянной скобкой не могу не вспомнить статью Криса Окасаки "В защиту значимых отступов для новичков" (http://okasaki.blogspot.ru/2008/02/in-praise-of-mandatory-indentation-for.html). Там он указывал, что студенты, изучающие программирование, больше всего проблем имеют именно с этими проклятыми закрывающими скобками (какими бы они ни были -- } или end). Гораздо больше проблем, чем с теми же типами...

Оказывается, такие проблемы бывают не только у студентов, но и профессионалов )))))))
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Geniepro от Январь 23, 2013, 08:28:36 pm
Уже установил и испытал. Действительно красиво с первого взгляда. Но  думаю меня на работе не поймут если буду использовать эту среду разработки.

Какую именно среду разработки -- IDEA или Delphi? ))
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: valexey_u от Январь 23, 2013, 08:42:21 pm
Уже установил и испытал. Действительно красиво с первого взгляда. Но  думаю меня на работе не поймут если буду использовать эту среду разработки.
Это ты про Идею? Дык решарпер юзай :-)
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: valexey_u от Январь 23, 2013, 08:55:06 pm
Уже установил и испытал. Действительно красиво с первого взгляда. Но  думаю меня на работе не поймут если буду использовать эту среду разработки.
Это ты про Идею? Дык решарпер юзай :-)
Хотя не уверен что решарпер умеет так. Все же он со студией живет.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Kemet от Январь 24, 2013, 02:16:07 am
А я Идею использую для Go. Там даже если не влазит блок целиком на экран, все равно голову блока видно (то есть верхнюю пару нижней скобочки). Это реально помогает найти потерянную скобочку вне зависимости от степени вложенности и разлапистости кода.
Lazarus тоже научился такому -действительно удобно
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Январь 24, 2013, 06:03:36 am
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.
Линии соединяют парные скобки, если они на разных строках. Отступ не при чем.
Вот тут я сдвинул подальше закрывающую скобку у catch.
Кстати, до самой скобки линия специально не доходит - это хреново выглядит.
(http://s017.radikal.ru/i430/1301/40/04083751b38e.png)
Верхушки за кадром тоже показываются, если навести мышку на линию.

Если, конечно, взять файл в тыщи строк и произвольно поудалять/добавить скобок, то придется изрядно потрудиться для исправления. Но в реальности-то все не так происходит.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Январь 24, 2013, 06:09:52 am
(http://s020.radikal.ru/i713/1301/e9/d34565ee807d.png)
А вот с таким уродством я бы не смог работать вообще  ;)
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Geniepro от Январь 24, 2013, 06:34:46 am
А вот с таким уродством я бы не смог работать вообще  ;)
Вам не нравится радуга? Вы имеете что-то против гей-парадов? )))
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: DddIzer от Январь 24, 2013, 07:04:10 am
(http://s020.radikal.ru/713/1301/e9/d34565ee807d.png)
А вот с таким уродством я бы не смог работать вообще  ;)
не нравится - отключите.. будет порево которое вам по - душе (только линии и скобки).. только описанной проблеме оно не сильно в помощь  ;)  :D
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: DddIzer от Январь 24, 2013, 07:13:50 am
А вот с таким уродством я бы не смог работать вообще  ;)
Вам не нравится радуга? Вы имеете что-то против гей-парадов? )))
там можно настроить и для сексистов.. аля - Geniepro  special...
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Geniepro от Январь 24, 2013, 07:27:36 am
А вот с таким уродством я бы не смог работать вообще  ;)
Вам не нравится радуга? Вы имеете что-то против гей-парадов? )))
там можно настроить и для сексистов.. аля - Geniepro  special...
На самом деле насчёт радуги -- там почему-то у Вас пропущен синий цвет. Слишком похож на голубой, что ли?
Без синей полоски картинка не цельна...
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: DddIzer от Январь 24, 2013, 07:45:45 am

На самом деле насчёт радуги -- там почему-то у Вас пропущен синий цвет. Слишком похож на голубой, что ли?
Без синей полоски картинка не цельна...
Сорри ...  :( не угодил.. хотя цвета генерируются автоматом (я не менял  настройки) - но вам безусловно виднее (не цельна, так не цельна)..
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: pygubanov от Январь 24, 2013, 07:19:21 pm
Вот прям именно такие линии? или просто линии соединяющие верхнюю строчку с нижней находящуюся на таком же уровне? если так то такую ошибку тоже будет очень сложно отыскать.
Линии соединяют парные скобки, если они на разных строках. Отступ не при чем.
Вот тут я сдвинул подальше закрывающую скобку у catch.
Кстати, до самой скобки линия специально не доходит - это хреново выглядит.
(http://s017.radikal.ru/i430/1301/40/04083751b38e.png)
Верхушки за кадром тоже показываются, если навести мышку на линию.

Если, конечно, взять файл в тыщи строк и произвольно поудалять/добавить скобок, то придется изрядно потрудиться для исправления. Но в реальности-то все не так происходит.
поделитесь ссылочкой на тулзень, пожалуйста
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Январь 24, 2013, 07:52:11 pm
Для какой студии, 2010 или 2012?
Выложу не раньше, чем завтра после обеда (с работы).
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: pygubanov от Январь 25, 2013, 05:36:20 am
для 2012
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Январь 25, 2013, 09:11:20 am
Вложил файл
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Февраль 12, 2015, 03:05:05 am
Обновил для 2013 студии.
Вообще-то микрософт вернул выделение структуры в Productivity Power Tools 2013 (https://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace). Но мне не нравится их стиль - прямые линии.
Хотя для тех, кто выравнивает скобки по левому краю, прямые линии, возможно, самое то.
Другое дело, что при наличии такого инструмента сами аргументы для выравнивания скобок по левому краю полностью теряют смысл.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: dizer от Февраль 12, 2015, 02:15:47 pm
С comminity редакцией и app. assistant'ом  вроде работает... вопрос такой - как убрать(изменить) раскрашивание линий (скобок) - привык  к темной схеме... текущее чередование белых и темно синих линий на темном фоне жутко раздражает.
Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: Peter Almazov от Февраль 12, 2015, 04:02:06 pm
В оригинале были чуть ли не все цвета радуги и настройка через реестр для каждого типа блока .
В Productivity Power Tools 2013 (https://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace) есть настройка в опциях студии.
Я работаю с белым фоном, поэтому выкинул все и зашил в код чередование Brushes.Gray и Brushes.Navy.
Что должно быть на темном фоне - не представляю.
Есть предложения?

Название: Re: Фатальная ошибка Сишного синтаксиса
Отправлено: dizer от Февраль 12, 2015, 04:35:26 pm
Есть предложения?
Думаю, что  нет - это слишком индивидуально (у меня, например, достаточно слабое зрение - с белого фона быстро устают глаза). Впрочем, я понял о чем идет речь - если сильно допечет, то поэкспериментирую, либо   выставлю белый на все скобки.