| Code Perl |
sub wsExportVal {local($IN,$OUT) = @_;
local $x = $$IN;
local($i,$k,$y,$y1);
while(true) {
if ($x ne "") {$x =~ s/^\s*//};
if ($x eq '') {$$IN = $x; return 0};
if ($x!~/^\/#\((\w+)\/#/) {return 1}; $y = $1; $x = substr($x,length($y)+3);
$$OUT .= "(#T(".$y.")new:";
while(true) {
if ($x ne "") {$x =~ s/^\s*//};
if ($x!~/^\/#:(\w+)\/#/) {last}; $y = $1; $x = substr($x,length($y)+3);
$$OUT .= "/#T(".$y."):"; $$IN = $x;
if (substr($$IN,0,3) ne "/#(") {
if (($i=&wsExportRec($IN,$OUT))!=0) {return $i}; $x = $$IN; next;
}
while(substr($$IN,0,3) eq "/#(") {
$x = $$IN; $k = index($x,"/#",3);
if ($k==-1) {return 11}; $y1 = substr($x,3,$k-3); $$IN = substr($x,$k);
if ($y1 eq "0") {$y1 = "(#L"} else {if ($y1 ne "") {$y1 =~ s/,/\/#/gi}; $y1 = "(#L(".$y1.")"}
while((substr($$IN,0,3) eq "/#:")||(substr($$IN,0,3) eq "/#(")) {
$$OUT .= $y1.":"; $y1 = "/#L";
if (($i=&wsExportRec($IN,$OUT))!=0) {return $i};
}
if (substr($$IN,0,3) ne "/#)") {return 12}; $$IN = substr($$IN,3);
$$OUT .= $y1.")";
}
$x = $$IN;
}
if (substr($x,0,3) ne "/#)") {return 2}; $x = substr($x,3);
$$OUT .= "/#T)";
}}
sub wsExportRec {local($IN,$OUT) = @_;
local $x = $$IN;
local($i,$k,$y1);
$k = index($x,"/#",3);
if ($k==-1) {return 21}; $y1 = substr($x,3,$k-3); $$IN = substr($x,$k);
if (substr($x,0,3) eq "/#:") {$$OUT .= &wsExportVal1($y1); return 0}
if (substr($x,0,3) ne "/#(") {return 22};
if ($y1 eq "0") {$y1 = "(#L"} else {return 23}
while((substr($$IN,0,3) eq "/#:")||(substr($$IN,0,3) eq "/#(")) {
$$OUT .= $y1.":"; $y1 = "/#L";
if (($i=&wsExportRec($IN,$OUT))!=0) {return $i};
}
if (substr($$IN,0,3) ne "/#)") {return 24}; $$IN = substr($$IN,3);
$$OUT .= $y1.")"; return 0;
}
sub wsExportVal1 {local($x) = @_;
if ($x eq "") {return ""};
$x =~ s/\\/\\\\/gi; $x =~ s/\n/\\n/gi; $x =~ s/\"/\\\"/gi; $x =~ s/\'/\\\'/gi;
return $x
}
|
| Code JavaScript |
function wsExportVal(IN,OUT) {
var x = IN[0];
var i,k,y,y1;
while(true) {
if (x!="") {x = x.replace(/^\s*/,"")};
if (x=='') {IN[0] = x; return 0};
if (!x.match(/^\/#\((\w+)\/#/)) {return 1}; y = RegExp.$1; x = x.substr(y.length+3);
OUT[0] += "(#T("+y+")new:";
while(true) {
if (x!="") {x = x.replace(/^\s*/,"")};
if (!x.match(/^\/#:(\w+)\/#/)) {break}; y = RegExp.$1; x = x.substr(y.length+3);
OUT[0] += "/#T("+y+"):"; IN[0] = x;
if (IN[0].substr(0,3)!="/#(") {
if ((i=wsExportRec(IN,OUT))!=0) {return i}; x = IN[0]; continue;
}
while(IN[0].substr(0,3)=="/#(") {
x = IN[0]; k = x.indexOf("/#",3);
if (k==-1) {return 11}; y1 = x.substr(3,k-3); IN[0] = x.substr(k);
if (y1=="0") {y1 = "(#L"} else {if (y1!="") {y1 = y1.replace(/,/gi,"\/#")}; y1 = "(#L("+y1+")"}
while((IN[0].substr(0,3)=="/#:")||(IN[0].substr(0,3)=="/#(")) {
OUT[0] += y1+":"; y1 = "/#L";
if ((i=wsExportRec(IN,OUT))!=0) {return i};
}
if (IN[0].substr(0,3)!="/#)") {return 12}; IN[0] = IN[0].substr(3);
OUT[0] += y1+")";
}
x = IN[0];
}
if (x.substr(0,3)!="/#)") {return 2}; x = x.substr(3);
OUT[0] += "/#T)";
}}
function wsExportRec(IN,OUT) {
var x = IN[0];
var i,k,y1;
k = x.indexOf("/#",3);
if (k==-1) {return 21}; y1 = x.substr(3,k-3); IN[0] = x.substr(k);
if (x.substr(0,3)=="/#:") {OUT[0] += wsExportVal1(y1); return 0}
if (x.substr(0,3)!="/#(") {return 22};
if (y1=="0") {y1 = "(#L"} else {return 23}
while((IN[0].substr(0,3)=="/#:")||(IN[0].substr(0,3)=="/#(")) {
OUT[0] += y1+":"; y1 = "/#L";
if ((i=wsExportRec(IN,OUT))!=0) {return i};
}
if (IN[0].substr(0,3)!="/#)") {return 24}; IN[0] = IN[0].substr(3);
OUT[0] += y1+")"; return 0;
}
function wsExportVal1(x) {
if (x=="") {return ""};
x = x.replace(/\\/gi,"\\\\"); x = x.replace(/\n/gi,"\\n"); x = x.replace(/\"/gi,"\\\""); x = x.replace(/\'/gi,"\\\'");
return x
}
|