//noop $example(this,is,a,test,this2,is2,a2,test2)

Code
alias example {
  ;inputs:
 ;any number of inputs / 4

  var %astart $iif($hget(MAKETOK, COUNT),$v1,0)
  maketok MAKETOK V MAKETOKTEST
  maketok MAKETOK V $str(TEST., $floor($calc($0 / 4)))
  var %aend $iif($hget(MAKETOK, COUNT),$v1,0)

  var %bstart $iif($hget(MAKETOK, COUNT),$v1,0)
  maketok MAKETOK V OBJECT_REFERENCE
  var %bend $iif($hget(MAKETOK, COUNT),$v1,0)

  var %cstart $iif($hget(MAKETOK,COUNT),$v1,0) + 1
  maketok MAKETOK V $*
  var %cend $iif($hget(MAKETOK,COUNT),$v1,0)

  return $meval(MAKETOK,%astart,%aend,%bstart,%bend,%cstart,%cend)
}

alias mprop {
  return $iif($2,$token($1,2-,46),$token($1,1,46))
}
alias maketok {
  hinc -m $1 COUNT
  hadd -m $+ $iif($2 == B,b) $1 $hget($1,COUNT) $3-
}
alias meval {
  var %tokentable $1

  var %astart $2 + 1
  var %aend $3
  var %acount $calc(%aend - %astart + 1)

  var %bstart $4 + 1
  var %bend $5
  var %bcount $calc(%bend - %bstart + 1)

  var %cstart $6
  var %cend $$7
  var %ccount $calc(%cend - %cstart + 1)

  var %aregex $regsubex($str(.,%acount),/(.)/g,$+($,hget,$chr(40),%tokentable,$chr(44),$calc(\n + %astart - 1),$chr(41),$chr(35)))
  var %bregex $regsubex($str(.,%bcount),/(.)/g,$+($,hget,$chr(40),%tokentable,$chr(44),$calc(\n + %bstart - 1),$chr(41),$chr(35)))
  var %cregex $regsubex($str(.,%ccount),/(.)/g,$+($,hget,$chr(40),%tokentable,$chr(44),$calc(\n + %cstart - 1),$chr(41),$chr(35)))
  
  tokenize 35 %aregex

  var %function [ [ $1 ] ]
  var %prop [ [ $2 ] ]

  var %regex $+($,%function,.,$mprop(%prop),$chr(40),$replace(%bregex %cregex,$chr(35),$chr(32) $chr(44) $chr(32)),$chr(41),.,$mprop(%prop,1))


  return [ [ %regex ] ]
}
;;;;;;;;;;;;;;;;;;;;;;;;
; END HELPER FUNCTIONS ;
;;;;;;;;;;;;;;;;;;;;;;;;


alias MAKETOKTEST.TEST {
  var %object $1

  echo -a -TEST-
  echo -a OBJECT: %object
  echo -a  $+ $2 @ $3
  echo -a  $+ $4 @ $5
  echo -a -END TEST-

  if $prop {
    var %astart $iif($hget(MAKETOK,COUNT),$v1,0)
    maketok MAKETOK V maketoktest
    maketok MAKETOK V $prop
    var %aend $iif($hget(MAKETOK,COUNT),$v1,0)

    var %bstart $iif($hget(MAKETOK,COUNT),$v1,0)
    maketok MAKETOK V %object
    var %bend $iif($hget(MAKETOK,COUNT),$v1,0)

    var %cstart $iif($hget(MAKETOK,COUNT),$v1,0) + 6
    maketok MAKETOK V $*
    var %cend $iif($hget(MAKETOK,COUNT),$v1,0)

    echo -a TOKEN-COUNT $0 : A-START: %astart A-END: %aend B-START: %bstart B-END: %bend C-START: %cstart CEND: %cend
    return $meval(MAKETOK,%astart,%aend,%bstart,%bend,%cstart,%cend)
  }
  if ($hget(MAKETOK)) hfree MAKETOK
}
;;;;;;;;;;;;;;;;;;;;;;
; END TEST FUNCTIONS ;
;;;;;;;;;;;;;;;;;;;;;;

Last edited by Imk0tter; 11/05/21 08:51 PM.