#!/usr/bin/php -q # Licensed under GNU GPL # You can use standard netsaint commands as: # command[...]=... # Also you can use varaibles: # var="$1;..." # Add to variable: # var+string # - this is replaced by: # var="$var,string" or var="string" # Any variable can be user as command: # var param1;param2;... # And repetition operator: # @param1;param2;... cmd1,cmd2,... # - this is replaced by: # cmd1 param1;param2;... # cmd2 param1;param2;... # ... # - paramters can be separated by " ", ",", ";" # Include file: # ](.*)$',"$s",$c)) { $cnfi=$cnf; dofile($c[1]); $cnf=$cnfi; } elseif (ereg('^[ ]*([a-zA-Z0-9_]+)=\"?([^"]*)\"?$',"$s",$c)) { $cmdt[$c[1]]="$c[2]"; $cmds="$cmds|$c[1]"; } elseif (ereg("^[ ]*([a-zA-Z0-9_]+)\+(.*)$","$s",$c)) { if ($cmdt[$c[1]]) { $cmdt[$c[1]]=$cmdt[$c[1]].",".$c[2]; } else { $cmdt[$c[1]]=$c[2]; } } elseif (ereg("^[ ]*($cmds)[ \t]*[( ](.*))?$","$s",$c)) { $mcmd=$cmdt[$c[1]]; $margs=split(";","$c[2]"); for ($i=1;$i<10;$i++) $mcmd=ereg_replace("\\$$i",$margs[$i-1],"$mcmd"); reset($cmdt); while (list($key,$value)=each($cmdt)) $mcmd=ereg_replace("\\$${key}([^a-zA-Z0-9_]|$)","$value\\1","$mcmd"); #echo "$mcmd\n"; fputs($fhost,"$mcmd\n"); } elseif (ereg("^[ ]*@([-a-zA-Z0-9_;]*) (.*)$","$s",$c)) { $ca=split("[ ,;]","$c[2]"); while (list($key,$value)=each($ca)) { chk("$value $c[1]"); } } elseif (ereg("^[ ]*[a-zA-Z0-9_]*\[","$s")) { #print "$s\n"; fputs($fhost,"$s\n"); } elseif (ereg("^define [a-zA-Z0-9_]+[ \t]*\{","$s")) { #print "$s\n"; fputs($fhost,"$s\n"); } elseif ($s!="") { print "# Illegal command: '$s'\n"; } } function dofile($f) { global $cnf,$cmdt,$cmds,$fhost; $cnf=fopen("$f","r"); while (!feof($cnf)) { $s=""; while (1) { $s="$s".ereg_replace("#.*$","",fgets($cnf,9999)); if (feof($cnf)) break; if (((substr_count("$s",'"')%2)==0) and (substr_count("$s",'{')==substr_count("$s",'}'))) break; } chk(trim($s)); } fclose($cnf); } $fhost=fopen("$argv[2]","w"); $cmdt["echo"]="$1"; $cmds="echo"; $cmdt["_"]="\n"; dofile("$argv[1]"); fclose($fhost); ?>