Как найти пропущеную скобку


#1

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

Отправлено 26 января 2013 – 01:07

  • Профессионал

В этом туториале я покажу вам,как искать пропущенную скобку.

Для этого нам потребуется:

  • ActivePerl ссылка
  • Скрипт Brackets ссылка

Устанавливаем ActivePerl, затем открываем архив со скриптом Brackets и содержимое папки perl в архиве,переносим в папу Perl,которая создалась при установке ActivePerl.

Теперь как проверить мод:

Берём мод(Именно исходник[.pwn]) и кидаем его в папку Perl.После этого открываем GUI в папке Perl.В левом верхнем углу мы наблюдаем кнопку “Open File” и указываем путь до нашего исходника,после того как вы указали путь,он просканирует ваш мод и покажет вам:

  • Кол-во закрытых скобок
  • Кол-во открытых скобок
  • Если где-то недостаёт какой-либо скобки,он покажет в каком месте.



На этом всё. Туториал подготовил: Darw1

Сообщение отредактировал iRusel: 18 августа 2014 – 20:36

Причина редактирования: Обновлена ссылка на скрипт

8



#2

Отправлено 26 января 2013 – 01:11

  • Профессионал

2



#3

Отправлено 09 марта 2013 – 21:14

  • Новичок

Открывю GUI – ничего не происходит…

0



#4

Отправлено 09 марта 2013 – 21:17

  • Профессионал

Просмотр сообщенияKorsar240 (09 марта 2013 – 21:14) писал:

Открывю GUI – ничего не происходит…

Perl установил?
скрипт закинул куда? В корень?

2



#5

Отправлено 09 марта 2013 – 21:27

  • Новичок

Перл установил естественно, скрипт закинул по пути:

D:ПапкаlibPerl

Добавь в скайп coag.dragon, есть вопрос…

0



#6

Отправлено 09 марта 2013 – 21:31

  • Профессионал

Скопируй скрипт в корень перла к примеру у меня перл установлен D:Program FilesPerl так и копируй скрипт

1



#7

Отправлено 09 марта 2013 – 21:49

  • Новичок

Всё получилось, спасибо iRusel!)

0



#8

Отправлено 12 марта 2013 – 14:49

  • Новичок

Нормальный?? За что репутацию снизил??? За то что просто не понял???

Сообщение отредактировал Korsar240: 12 марта 2013 – 14:50

1



#9

Отправлено 03 июля 2013 – 19:58

  • Banned


#10

Отправлено 20 января 2014 – 17:32

  • Местный

Привет ребята, а он лишние скобки показывает? :smile:

0


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

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

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

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

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

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

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

rAw-LC-Vg7w.jpg

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

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

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

kLr6dc3TRJU.jpg

Автор: Evqeniy

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

На этом все!

Делаю проэкт галерею на javascript, потерял скобку.

Ошибка расположена в функции arrows. Пишет, Uncaught SyntaxError: Illegal return statement.

function showImage(event){
    //ПРОВЕРКА И УДАЛЕНИЕ
    //##############
    if (document.querySelector(".canDelete")){
        document.querySelector(".canDelete").classList.remove("canDelete")
    }
    if (document.querySelector(".OtherMiniMain")){
        document.querySelector(".OtherMiniMain").classList.remove(".OtherMiniMain");}
    let pictures=document.querySelector(".pictures");
    if (document.querySelector(".selected")){
        document.querySelector(".selected").classList.remove("selected");
    }
    if (document.querySelector(".open")){
        document.querySelector(".open").remove()
    }
    let OtherMains=document.querySelectorAll(".otherMain");
    for (item of OtherMains){
        item.remove()
    }
    let eventImage;
    if (document.querySelector(".miniUpdate")){
        eventImage=document.querySelector(".miniUpdate");
    }
    else {
        eventImage=event.target;
    }
    //ИНИЦИАЛИЗАЦИЯ
    //#############
    let heart=document.querySelector(".heart");
    if (!eventImage.classList.contains("chosenImg")){
        heart.classList.remove("beforeChose")
    }
    else{
        heart.classList.add("beforeChose")
    }
    let main=document.querySelector("main");
    let block=document.querySelector(".show");
    let imageDiv=document.querySelector(".ImgAndArrow");
    eventImage.classList.add("selected")
    block.hidden=false;
    let other=document.querySelector(".other")
    document.body.style.overflow="hidden";
    let image=document.createElement("img");
    image.src=eventImage.src;
    image.classList.add("open");
    imageDiv.append(image);
    let OtherMainImage=image.cloneNode();
    OtherMainImage.classList.add("otherMain");
    OtherMainImage.classList.remove("open");
    OtherMainImage.classList.add("OtherMiniMain")
    createSublings()
    function createSublings(){
        createMini(2,"-");
        createMini(1,"-");
        pictures.append(OtherMainImage)
        if (document.querySelector(".chosen").textContent=="Home"){
            let items=document.querySelectorAll(".chosenImg");
            if (getChosenIndex()==items.length-2){
                createMini(1,"+")
            }
            if (getChosenIndex()<item.length-2){
                createMini(1,"+");
               createMini(2,"+");
            }
            function getChosenIndex(){
                let col=0;
                for (item of items){
                    if (item.classList.contains("selected")){
                        return col
                    }
                    col++
                }

            }}
        else{
            if (getIndex()==main.children.length-2){
            createMini(1,"+");
        }
          if (getIndex()<main.children.length-2){
            createMini(1,"+");
            createMini(2,"+");
        }
        }
        function checkNoneDiv(){
            let col=0;
            for (item of document.querySelectorAll(".noneImageDiv")){
                col++
            }
            return col
        }
        // alert(checkNoneDiv())
        function createMini(num,znak){
            let coords=OtherMainImage.getBoundingClientRect();
            let image=OtherMainImage.cloneNode();
            let Children;
            if (document.querySelector(".chosen").textContent=="Home"){
                // alert("sdf")
                Children=main.querySelectorAll(".chosenImg")
            }
            else{
                Children=main.children
            }
            image.classList.remove("OtherMiniMain");
            if (znak=="-"){
                if (!Children[getIndex()-num]){
                    if (checkNoneDiv()>=2){
                        return
                    }
                    appendNoneDiv()
                    return
                }
                image.src=Children[getIndex()-num].src;
                image.dataset.number=`r${getIndex()-num}`;
                OtherMainImage.dataset.number=`r${Number(image.getAttribute("data-number").split("").slice(1).join(""))+num}`
              pictures.append(image);
            }
            if (znak=="+"){
                if (!Children[getIndex()+num]){
                    if (checkNoneDiv()>=2){
                        return
                    }
                    appendNoneDiv()
                    return
                }
                image.src=Children[getIndex()+num].src;
                image.dataset.number=`r${getIndex()+num}`;
                OtherMainImage.dataset.number=`r${Number(image.getAttribute("data-number").split("").slice(1).join(""))-num}`
                pictures.append(image);
            }
            function appendNoneDiv(){
                let noneDiv=document.createElement("div");
                noneDiv.classList.add("noneImageDiv")
                pictures.append(noneDiv)
            }
        }
        // alert(document.querySelector("main").children[0].src);
        // image.src=main.children[getIndex()-1].src
        // other.append(image);
        // let predImage=OtherMainImage.cloneNode();
        // predImage.style.left=`${coords.left-coords.width*2-45}px`
    }
    function getIndex(){
        let col=0;
        for (item of main.children){
            if (item.classList.contains("selected")){
                return col;
            }
            col++
        }

    }
    let miniClicks=document.querySelectorAll(".otherMain");
   for (item of miniClicks){
    item.addEventListener("click",miniClick)
   }
}
function hideShow(event){
    document.querySelector(".deleteWindow").hidden=true;
    for (item of document.querySelectorAll(".noneImageDiv")){
        item.remove()
    }
    let block=document.querySelector(".show");
    block.hidden=true;
    document.body.style.overflow="auto";
    if (document.querySelector(".miniUpdate")){
        document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
}   
function miniClick(event){
    document.querySelector(".deleteWindow").hidden=true;
    if (document.querySelector(".noneImageDiv")){
        for (item of document.querySelectorAll(".noneImageDiv")){
            item.remove()
        }
    }
    if (document.querySelector(".miniUpdate")){
        document.querySelector(".miniUpdate").classList.remove("miniUpdate")
    }
    let main=document.querySelector("main");
    if (event.target.getAttribute("data-number")==null){
        return
    }
    let classIndex=Number(event.target.getAttribute("data-number").split("").slice(1).join(""));
    main.children[classIndex].classList.add("miniUpdate");
    showImage()

}
function arrows(event){
    let canDelete;
    let num=1;
    let MainMini=document.querySelector(".OtherMiniMain");
    if (!MainMini){
        return
    }
    if (!MainMini.getAttribute("data-number")){
        hideShow()
        return
    }
    let classIndex=Number(MainMini.getAttribute("data-number").split("").slice(1).join(""));
    if (document.querySelector(".canDelete")){
        if (classIndex<=0){
            document.querySelector(".canDelete").classList.remove("canDelete")
            canDelete=document.querySelector(".arrowRight");
            num=0
        }
        else{
            canDelete=document.querySelector(".arrowLeft");
        }
    }
    else{
        if (document.querySelector(".canDelete")){
        document.querySelector(".canDelete").classList.remove("canDelete")
       }
        canDelete=event.target;
    }
    
    if (document.querySelector(".miniUpdate")){
        document.querySelector(".miniUpdate").classList.remove("miniUpdate")
    }
    if (event){
        if (event.key=="ArrowRight"){
            document.querySelector(".deleteWindow").hidden=true;
            let newIndex=classIndex+1;
        if (newIndex>=main.children.length){
            return
        }
        if (document.querySelector(".chosen").textContent=="Home"){
            if (!main.children[newIndex].classList.contains("chosenImg")){
            return
        }}
        if (newIndex==1){
            document.querySelector(".noneImageDiv").remove();
            document.querySelector(".noneImageDiv").remove()
        }
        if (newIndex==2){
            document.querySelector(".noneImageDiv").remove()

        }
        // if (main.children[newIndex])
       main.children[newIndex].classList.add("miniUpdate");
       // if (main.children[newIndex].classList.contains(""))
       showImage()}
       if (event.key=="ArrowLeft"){
        document.querySelector(".deleteWindow").hidden=true;
       let newIndex=classIndex-1;
        if (newIndex<=-1){
            return
        }
        if (document.querySelector(".chosen").textContent=="Home"){
            if (!main.children[newIndex].classList.contains("chosenImg")){
            return
        }}
       main.children[newIndex].classList.add("miniUpdate");
       showImage()
       }
    }

    if (canDelete.className=="arrowRight"){
        let newIndex=classIndex+num;
        if (newIndex>=main.children.length){
            return
        }
            if (!main.children[newIndex].classList.contains("chosenImg")){
            return
        }
        if (newIndex==1){
            document.querySelector(".noneImageDiv").remove();
            document.querySelector(".noneImageDiv").remove()
        }
        if (newIndex==2){
            document.querySelector(".noneImageDiv").remove()

        }
    }
       main.children[newIndex].classList.add("miniUpdate");
       showImage()}
    //LEFT
    if (canDelete.className=="arrowLeft"){
        let newIndex=classIndex-1;
        // if (newIndex<=-1){
        //  return
        // }
        if (document.querySelector(".chosen").textContent=="Home"){
            if (!main.children[newIndex].classList.contains("chosenImg")){
            return
        }}
       main.children[newIndex].classList.add("miniUpdate");
       showImage()
    }
    if (document.querySelector(".canDelete")){
        document.querySelector(".canDelete").classList.remove("canDelete")
    }
function deleteImage(event){
    if (!document.querySelector(".selected")){
        return
    }
    if (document.querySelector(".selected").classList.contains("chosenImg")){
        document.querySelector(".heart").classList.remove("beforeChose");
    }
    if (document.querySelector(".canDelete")){
        document.querySelector(".canDelete").classList.remove("canDelete")
    }
    let pictures=document.querySelector(".pictures");
    let selected=document.querySelector(".selected");
    let deleteWindow=document.querySelector(".deleteWindow");
    if (!selected){
        hideShow()
        return
    }
    ok=document.querySelector(".deleteOk");
    cancel=document.querySelector(".deleteCancel");
    if (event.key=="Delete"|| event.target.classList.contains("trash")){
        deleteWindow.hidden=false;
        ok.addEventListener("click",deleteWindowButttons);
        cancel.addEventListener("click",deleteWindowButttons);
        document.addEventListener("keydown",deleteWindowButttons)
    }
}
function deleteWindowButttons(event){
    let pictures=document.querySelector(".pictures");
    let selected=document.querySelector(".selected");
    let deleteWindow=document.querySelector(".deleteWindow");
    if (event.target.classList.contains("deleteOk") || event.key=="Enter"){
        selected.remove();
        deleteWindow.hidden=true;
       pictures.classList.add("canDelete");
       arrows()
    }
    if (event.target.classList.contains("deleteCancel") || event.key=="Escape"){
        deleteWindow.hidden=true;
    }
    
}
function showWindowfromImage(event){
    if (document.querySelector(".selectedForRight")){
        document.querySelector(".selectedForRight").classList.remove("selectedForRight")
    }
    event.target.classList.add("selectedForRight")
    let whiteWindow=document.querySelector(".window");
    let deleteW=document.querySelector(".windowDeleteImg");
    if (!event.target.parentNode.tagName){
        return
    }
    if (event.target.parentNode.tagName!="MAIN" || event.target.tagName!="IMG"){
        whiteWindow.hidden=true;
        return
    }
    // alert(event.target.parentNode.tagName)
    whiteWindow.hidden=false;
    whiteWindow.style.left=event.pageX+"px";
    whiteWindow.style.top=event.pageY+"px";
    deleteW.addEventListener("click",deleteOrChosen)
    event.preventDefault();
}
function deleteOrChosen(event){
    document.querySelector(".selectedForRight").remove()
}
function ShowChosenBlock(event){
    let show=document.querySelector(".show")
    let main=document.querySelector("main");
    let images=main.querySelectorAll("img");
    document.querySelector(".deleteWindow").hidden=true;
    show.hidden=true;
    if (event.target.textContent=="Chosen"){
        for (item of images){
            if (!item.classList.contains("chosenImg")){
                item.hidden=true;
        }
    }
        document.body.style.background="rgba(255, 197, 249, 1)";
        event.target.textContent="Home";
        return  
    }
    if (event.target.textContent=="Home"){
        for (item of images){
            item.hidden=false;
        }
        document.body.style.background="rgba(136, 134, 134, 1)";
        event.target.textContent="Chosen";
        return  
    }}
function addToChosen(event){
    let selected=document.querySelector(".selected");
    if (selected.classList.contains("chosenImg")){
        selected.classList.remove("chosenImg")
        document.querySelector(".heart").classList.remove("beforeChose");
        return
    }
    selected.classList.add("chosenImg");
    document.querySelector(".heart").classList.add("beforeChose");

}



//РАБОТА ПРОГРАММЫ
let heart=document.querySelector(".heart");
heart.addEventListener("click", addToChosen)
let chosen=document.querySelector(".chosen");
chosen.addEventListener("click",ShowChosenBlock);
let bin=document.querySelector(".trash");
bin.addEventListener("click",deleteImage);
document.addEventListener("keydown",deleteImage);
let arrowLeft=document.querySelector(".arrowLeft");
let arrowRight=document.querySelector(".arrowRight");
arrowLeft.addEventListener("click",arrows);
arrowRight.addEventListener("click",arrows);
document.addEventListener("keydown",arrows)
let left=document.querySelector(".left");
left.addEventListener("click",hideShow)
let main=document.querySelector("main");
let images=main.querySelectorAll("img");
document.addEventListener("contextmenu",event=>event.preventDefault())
for (item of images){
    item.addEventListener("click",showImage);
    // item.addEventListener("contextmenu",showWindowfromImage);
}
let whiteWindow=document.querySelector(".window");
document.addEventListener("contextmenu",showWindowfromImage);
document.addEventListener("click",event=>whiteWindow.hidden=true);
document.addEventListener("scroll",event=>whiteWindow.hidden=true);
window.addEventListener("resize",event=>whiteWindow.hidden=true);

Статус
Закрыто для дальнейших ответов.

Amfy

Гость


  • #1

Для того, чтобы найти в моде пропущенную скобку, нам понадобиться:

  • ActivePerl (x86(32) и x64)
  • Скрипт Brackets

Устанавливаем ActivePerl, затем разархивируем архив с скриптом Brackets в папку Perl, которая создалась при установке ActivePerl.

Теперь как проверить мод:

Берем мод (именно исходник .pwn) и кидаем его в папку Perl. После этого открываем GUI в папке Perl, в левом верхнем углу мы наблюдаем кнопку “Open File” и указываем путь до нашего исходника, после того как вы указали путь, он просканирует ваш мод и покажет вам:

  • Кол-во закрытых скобок
  • Кол-во открытых скобок
  • Если где-то не хватает какой-либо скобки, он покажет в каком месте.

Последнее редактирование: 29.07.2016

  • #2

Что делать?

Код:

Can not open file C:/Perl64/new.pwn: No such file or directory at brackets.pm line 55.

Can not open file C:/Perl64/new.pwn: No such file or directory at brackets.pm line 55.

    while executing
"::perl::CODE(0x3853a98)"
    invoked from within
".b invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "tk::ButtonUp" line 24)
    invoked from within
"tk::ButtonUp .b"
    (command bound to event)

Amfy

Гость


  • #3

Код кидай, а лучше – создай тему с подробным описанием проблемы, дабы не засорять тему.

  • #4

Код кидай, а лучше – создай тему с подробным описанием проблемы, дабы не засорять тему.

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

Mirex

Mirex

Руководитель проекта


  • #5

Ошибка информирует вас о том, что “невозможно открыть файл”.

Что-то вы сделали не правильно.

  • #6

Ошибка информирует вас о том, что “невозможно открыть файл”.

Что-то вы сделали не правильно.

Делал так как было написано в 1 посту

  • #7

Перевел:

Код:

при выполнении
"::с Perl::код(0x2887c94)"
вызывается изнутри
".б вызвать"
("до уровня" линии тела 1)
вызывается изнутри
"до уровня #0 [список $ш вызовите]"
(процедура "ТЗ::кнопка" линия 24)
вызывается изнутри
"ТЗ::кнопка вверх .б"
(команда привязан к событию)

santafe11


  • #8

Последнее редактирование модератором: 25.09.2015

Amfy

Гость


santafe11


  • #10

  ActivePerl пишет:

MISSING BRACKET: The } bracket on line 34452 does not have a pair!
Result:
Opening angle brackets ({): 4148
Closing angle brackets (}): 4149
1 angle brackets without pair! Fix it!

Строка 34452:

ProxDetector(30.0, playerid, smail, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);

В чем тут проблема?

Последнее редактирование модератором: 25.09.2015

Amfy

Гость


  • #11

@santafe11, проблема не в строке, а там – где находится эта строка. Визуально глянь, выравни код лесенкой и увидишь где не хватает {

  • #12

,ты че настаяшый скриптер? :D83DDE33:

LHTTD

LHTTD

Темная сторона Форума


  • #13

Если у кого-то ошибки и т д, попробуйте выровнить код по лесенки, также можно использовать Notepad

Kaminari


  • #14

,выдаёт строки, в которых нету скобок. Что делать?

Последнее редактирование модератором: 01.06.2016

  • #15

бери полностью код, будь то команда, или диалог. и смотри где пропущена

Kaminari


  • #17

Не знаю,поможет вам или нет,я лично искал пропущенную скобку методом разделения мода на части-сперва на большие,а потом одну из тех больших,где не хватает скобки,разделял на меньшие,пока не нашёл пропущенную скобку.По мне,так очень хороший способ.

Getto Wyatt


  • #18

Что делать если открываю фаил GUI.pl в папке Perl который перетащил с Архива он открывается на 1-2 секунды и закрывается.

  • #19

, у меня не открывается GUI, точнее открывается и закрывается сразу! 

Vlad_Trifonov


  • #20

@Shimer, Вы в какую папку perl кинули ? Кидать нужно в ту, что на диске C. 

Статус
Закрыто для дальнейших ответов.

When I run the code it tells me there’s an error which is ')' expected near '=':

function restartLvl()
    for i = 1, #balloonTexts do
        display.remove(balloonTexts[i])
        print ("restart level")
    end

    score.text = '0'
    ballRemain.text = '3'
    balloonText = {}
    createBalloons(1, 3)

    if (askUser.isVisible = true) then  --this is the line where the error occured
        askUser.isVisible = false
    end

    if (yesBtn.isVisible = true) then
        yesBtn.isVisible = false
    end

    if (noBtn.isVisible = true) then
        noBtn.isVisible = false
    end
end

I don’t know how it is still missing a ‘)‘, because I closed all the brackets.

Peter Mortensen's user avatar

asked Mar 11, 2014 at 8:10

user3305142's user avatar

= is the assignment operator, == is the operator to test equality. Change it to:

if (askUser.isVisible == true) then
    askUser.isVisible = false
end

And all the others as well. The brackets () can be ommited for simplicity:

if askUser.isVisible == true then
    askUser.isVisible = false
end

If the value is a boolean, you can also do this because all values that are not nil or false are treated as true.

if askUser.isVisible then
    askUser.isVisible = false
end

answered Mar 11, 2014 at 8:13

Yu Hao's user avatar

Yu HaoYu Hao

119k44 gold badges230 silver badges289 bronze badges

4

This is not related to your answer but

I recommend you to use lua glider IDE because this type error can be detect well by using this IDE.

answered Mar 14, 2014 at 8:06

Pranav Khandelwal's user avatar

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