now im having another problem frown
Code:
alias isloaded {
  var %i 1,%file $1,%loaded 0
  while (%i <= $script(0)) {
    if ($nopath($script(%i)) == %file) {
      %loaded = 1
    }
    inc %i
  }
  return %loaded
}
alias getpath {
  var %i 1,%file $1,%path 0
  while (%i <= $script(0)) {
    if ($nopath($script(%i)) == %file) {
      %path = $script(%i)
    }
    inc %i
  }
  return %path
}
alias winerr {
  var %x 1,%file $1
  window -h @error
  while (%x <= $lines($+(",$getpath(%file),"))) {
    aline @error $strip($read($+(",$getpath(%file),"),n,%x))
    inc %x
  }
}
alias error {
  var %g 1,%error 0,%file $1,%t 1
  if (!$isloaded(%file)) || (!$getpath(%file)) { return * $!error $+ : Invalid Parameters }
  if (!$dialog(error)) { dialog -m error error }
  unset %error.line.*
  did -r error 1
  winerr %file
  while (%g <= $line(@error,0)) {
    if (*{* iswm $line(@error,%g)) { inc %error }
    if (*}* iswm $line(@error,%g)) { dec %error }
    if (%error > 1) && (*{* !iswm $line(@error,%g)) && (*on*{* iswm $line(@error,$calc(%g - 1))) || (*alias*{* iswm $line(@error,$calc(%g - 1))) { set %error.line. [ $+ [ $calc(%g - 2) ] ] $calc(%g - 2) }
    inc %g
  }
  if (%error) {
    did -a error 1 %error Errors $chr(123)
    while (%t <= $var(%error.line.*,0)) {
      if (%t) && (%t < $calc($line(@error,0) + 1)) { did -a error 1 $str($chr(160),2) Line: $eval($var(%error.line.*,%t),2) } 
      inc %t
    }
    did -a error 1 $chr(125)
  }
  else {
    did -a error 1 No Errors Found In $+(",%file,[,$getpath(%file),],")
  }
  window -c @error
  did -z error 1
}
dialog error {
  title "Parenthesis Error Catcher"
  size -1 -1 177 77
  option dbu
  list 1, 0 13 177 64, size hsbar vsbar
  edit "", 2, 0 3 60 10
  button "Check", 3, 61 2 37 11
}
on *:dialog:error:close:0:{
  unset %error.line.*
}
on *:dialog:error:sclick:3:{
  error $did(2)
}
menu menubar,channel,status {
  Parenthesis Checker: dialog -m error error
}

im trying to find the line the error was on..
this is the code for it:
Code:
    if (%error > 1) && (*{* !iswm $line(@error,%g)) && (*on*{* iswm $line(@error,$calc(%g - 1))) || (*alias*{* iswm $line(@error,$calc(%g - 1))) { set %error.line. [ $+ [ $calc(%g - 2) ] ] $calc(%g - 2) }

any ideas laugh?