Как найти незакрытую скобку

Здравствуйте уважаемые пользователи форума pawno-crmp.

Этот минуал подойдет тем, у кого в моде есть незакрытая скобка, и если стандартные способы не помогают найти ее. Если стандартными способами найти незакрытую скобку не получается, то Вы попали по адресу.

Итак, начнем.

Сегодня я столкнулся с такой проблемой, как незакрытая скобка. Как известно, если в коде имеется незакрытая скобка, то при компилировании компилятор вылетает не показав ошибку. Я перепробовал стандартные способы как найти незакрытую скобку, но они не подходят, так как у меня в коде (ну наверно не только у меня) есть за комментированные скрипты типа таких:

/*
public test()
{
new blablalbla;

*/ 
Дело в том, что программы подсчитывающие количество открытых и закрытых скобок считают за комментированные скобки, поэтому программа выдаст совсем не ту строку которую нужно.

Перейдем к делу.

Чтобы найти незакрытую скобку, я использовал это: (не знаю как назвать)

#error abc 
Если в коде ввести “это”, компилятор выдаст ошибку. Опишу поподробнее.

Например незакрытая скобка находится на строке номер 5612. Если ввести #error abc дальше строки 5612, например 6719, то компилятор так же вылетит не выдав никаких ошибок, а если ввести #error abc  до строки 5612 например 3118, то компилятор выдаст ошибку “(3118) : fatal error 111: user error: abc”. Думаю теперь вы поняли принцип поиска незакрытой скобки.

Я делал так. С начало ввел  #error abc в середину мода, компилятор выдал ошибку “(3118) : fatal error 111: user error: abc”. Далее ниже, и еще ниже. Я делал это до тех пор, пока компилятор не вылетел. И наконец-то я нашел незакрытую скобку.

Удачи Вам в поиске незакрытой скобки! 

Автор минуала я, DimanJeans!

AIS

Получил задание прикрутить пару фич к проекту на PHP. Проект из далекого 2008-го и вся админка написана одним файлом в 6000 строк. На продакшене все работает нормально, а локально admin/index.php ругается на unexpected end of file. Подскажите какую-нибудь програмку, скрипт или утилитку которая может помочь найти незакрытую скобку. Очень нехочется перелистывать все 6000 строк “говнокода” в поисках.


  • Вопрос задан

    более трёх лет назад

  • 3212 просмотров

Пригласить эксперта

Ща скобку поставишь, а в продакшене не заведется)

Посмотрите не используются ли там устаревшие <? ?> вместо <?php ?>
Если у вас в пхп.ини использование устаревшей конструкции запрещено – вполне можете получить такую ошибку

Если в коде есть фигурные скобки, прилепленные к открывающим/закрывающим php-тегам, например:

<?php}
{?>
}?>

их нужно разделить:

<?php }
{ ?>
} ?>

php lint рулит
Либо дополнения к разным IDE и редакторам на проверку PHP кода.

Один из возможных вариантов это найти/написать программу на языке программирования которая будет сравнивать кол-во открытых и закрытых скобок и найдет где именно не хватает скобки.
Что-то такое подобное я уже видел на С++ вроде бы.


  • Показать ещё
    Загружается…

14 мая 2023, в 22:02

20000 руб./за проект

14 мая 2023, в 21:36

1000 руб./за проект

14 мая 2023, в 21:20

15000 руб./за проект

Минуточку внимания

Евгений Иванов



Ученик

(22),
на голосовании



8 лет назад

Дополнен 8 лет назад

Там 65к строк!

Голосование за лучший ответ

Alexey N

Просветленный

(34665)


8 лет назад

Можно регэкспами попробовать.

Foo

Мыслитель

(7457)


8 лет назад

В Notepad++ парные скобки подсвечиваются.

Похожие вопросы

Если вы пропустили где-то скобку (не закрыли), то pawn выдаст 26 ошибок на функции, которые в моде объявлены. 

Если вы поставили лишнюю скобку, pawn вылетит.

Благодаря этому уроку вы сможете найти пропущенную скобку. 

1) Скачиваем эту программу. И открываем ее:

rAw-LC-Vg7w.jpg

2) Кликаем “Browse” и указываем путь до .pwn файла.

3) Нажимаем “Start”. 

4) После, программа вам выдаст кол-во открытых и закрытых скобок. Эти числа должны совпадать. Если же нет, вы где-то не закрыли, или не открыли скобку. Также, программа выдаст строку, в которой скобка не закрыта / не открыта. 

kLr6dc3TRJU.jpg

Автор: Evqeniy

Работоспособность данного метода не проверена. В случае обнаружения неисправности, пишите в теме.

На этом все!


#1

Пользователь офлайн
 

Отправлено 07 августа 2012 – 22:12

  • Эксперт

Здравствуйте ув.пользователи Pawn-Wiki, недавно столкнулся с такой проблемой. Незакрытая скобка. И вот решил поискать в интернете. Я нашёл решение на одном из иностранных сайтов программирования. Надеюсь вам это будет полезно. Итак преступим.
1) Скачиваем и устанавливаем программу “Activeperl”:
X64
X86
2) Скачиваем архив тык
3) Распаковываем архив, все файлы с папки “perl” переносим в папку “Perl”(по умолчанию находится в локальном диске С)

Итак мы всё установили.

Как же нам проверить наш “испорченный” мод на колл-во скобок?

Берём наш мод (с расширением .pwn) и переносим в папку “Perl”(по умолчанию находится в локальном диске С)
Далее открываем файл “GUI.pl”, который мы распаковали в папку “Perl”. В левом верхнем углу нажимаем “Open File”, ищем наш мод и нажимаем на него. Далее ждём пока проверит все ваши строчки. Когда проверит напишет вам сколько скобок открытых и сколько закрытых, при недостатке одной из скобок напишет в какой строчке находится ошибка.

Сейчас открываем мод ищем строчку, которую нам показал “GUI.pl” прописываем недостоющую скобку, сохраняем, компилируем и радуемся.

Вот и всё с вами был Murder.

P.S Проверял на своём моде (58к строк) убрал скобку в середине мода, всё точно нашло
P.S.S Некорректно работает если код построен не лесенкой, но это очень легко сделать с программой “NotePad++” смотрим вот эту тему: Клик

Автор: неизвенстен
думаю это многим полезно, так что не ленитесь и ставьте плюсики.

Сообщение отредактировал Санёк: 07 августа 2012 – 22:19

2



#2

Отправлено 07 августа 2012 – 23:04

  • Banned

Хэх, а действительно работает! Только что сам убедился, но работает только без ошибки о неправильном построении строк! Так что, использования в больших модах, где много неисправностей – не имеет смысла!

Сообщение отредактировал Vitalya: 07 августа 2012 – 23:05



#3

Отправлено 20 декабря 2014 – 18:36

  • Новичок

0



#4

Отправлено 04 января 2015 – 10:33

  • Олежка

Ссылку на архив дайте нормальную! Не могу скачать!

0



#5

Отправлено 19 июля 2017 – 12:15

  • Прохожий

Проблема, вывело строку в которой вообще нету скобки, и рядом тоже пусто

0



#6

Отправлено 26 января 2019 – 09:38

  • Прохожий

А что если у тебя винда х32 bit? Есть для этого решение?

Сообщение отредактировал tomsondetka1111: 26 января 2019 – 09:38

0



#7

Отправлено 26 января 2019 – 11:18

  • По всем вопросам пишите в профиль. Консультации в ВК не провожу.

ActivePerl больше не актуален.
Архив вирусный. Продались, нищеброды.

0


  • ← Предыдущая тема
  • Уроки
  • Следующая тема →

  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

Добавить комментарий