All pastes #230271 Raw Edit

Anonymous

public text v1 · immutable
#230271 ·published 2006-10-31 05:35 UTC
rendered paste body

alias syntax {

  ; change colors here, zero padding isnt necessary

  var %ident = 4 | ; identifiers
  var %vars = 7 | ; variables
  var %comm = 2 | ; commands and switches
  var %paren = 6 | ; identifier syntax characters eg. ,()
  var %chars = 3 | ; command syntax characters eg. [] {} |

  ; do not change the following! unless you really want to

  var %__ident = /(?<=^|[ ,(])(\$(?!\?)[^\s\50]*?|#)(?=[,) ]|$)/gS, $&
    %_vars = /(?<=^|[ ,(])(%\C*?)(?=[,) ]|$)/g, $&
    %_comm = /(?<=^| )(?:(?<=[{|] )|(?=\/+))(\S*(?: -\w+)?)/g, $&
    %_chars = /(?<=^| )([[\]{}|])(?= |$)/g, $&
    %_$? = /(?<=^|[ ,\50])(\$\?[!*]?(?:=?")?)(?(?<=")(\C*?)(")|)/g, $&
    %_ident = /(?<=^|[\17,( ])(\$[^\s(]*(?=\())(\(((?:[^()]*+|(?2))*)\))/g

  noop $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,RETURNEX,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 $$syntax($1-)
    halt
  }
}

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