Здравствуйте уважаемые пользователи форума 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!
Получил задание прикрутить пару фич к проекту на 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) Скачиваем эту программу. И открываем ее:
2) Кликаем “Browse” и указываем путь до .pwn файла.
3) Нажимаем “Start”.
4) После, программа вам выдаст кол-во открытых и закрытых скобок. Эти числа должны совпадать. Если же нет, вы где-то не закрыли, или не открыли скобку. Также, программа выдаст строку, в которой скобка не закрыта / не открыта.
Автор: 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
- ← Предыдущая тема
- Уроки
- Следующая тема →
- Вы не можете создать новую тему
- Вы не можете ответить в тему