All pastes #750122 Raw Edit

Miscellany

public text v1 · immutable
#750122 ·published 2007-10-26 07:50 UTC
rendered paste body
alias syntax2 {
  var %ident = 4 | ; identifiers
  var %vars = 7 | ; variables
  var %comm = 12 | ; commands and switches
  var %paren = 10 | ; identifier syntax2 characters eg. ,()
  var %chars = 14 | ; command syntax2 characters eg. [] {} |
  var %__ident = /(?<=^|[ ,(])(\$(?!\?)[^\s\50]*?|#)(?=[,) ]|$)/gS, $&
    %_vars = /(?<=^|[ ,(])(%\C*?)(?=[,) ]|$)/g, $&
    %_comm = /(?<=^| )(?:(?<=[{|] )|(?=\/+))(\S*(?: -\w+)?)/g, $&
    %_chars = /(?<=^| )([[\]{}|])(?= |$)/g, $&
    %_$? = /(?<=^|[ ,\50])(\$\?[!*]?(?:=?")?)(?(?<=")(\C*?)(")|)/g, $&
    %_ident = /(?<=^|[\17,( ])(\$[^\s(]*(?=\())(\(((?:[^()]*+|(?2))*)\))/g
  .echo -q $regsub($1-,%__ident,$syn(%ident),%o) $regsub(%o,%_vars,$syn(%vars),%o) $regsub(%o,%_comm,$syn(%comm),%o) $&
    $regsub(%o,%_chars,$syn(%chars),%o) $regsub(%o,%_$?,$+($syn(%ident),\2,$syn(%ident,\3)),%o)
  while ($regsubex(%o,%_ident,$+( [ $syn(%ident) ] , [ $syn(%paren,$cr) ] ,$replace(\3,$chr(44),$+($chr(3),%paren,$chr(44),$chr(15))) , [ $syn(%paren,$lf) ] )) != %o) %o = $v1   
  $iif($isid,return,echo -ag) $replace(%o,$cr,$chr(40),$lf,$chr(41))
}


alias -l syn return $+($chr(3),$1,$iif($2,$2,\1),$chr(15))

on &*:input:*:{
  if ($left($1,1) !isin $readini($mircini,text,commandchar) /) || ($ctrlenter) $&
    && ($istok(channel chat query,$window($active).type,32)) {
    say $$syntax2($1-)
    halt
  }
}

on &^*:text:*:*:{
  echo -mbflirtc norm $iif(#,#,$nick) $+(<,$iif($left($nick(#,$nick).pnick,1) isin $prefix,$v1),$nick,>) $$syntax2($1-)
  halt
}