namespace string.conv; class pinyin{ ctor( q,separator,polyphone ){ { if(!..string.find(q,":")){ q = ..string.lower(q) var chars = pyToChars[q]; if(chars){ return chars;} for(py,chars in pyToChars){ if(..string.startsWith(py,q) ){ return chars; } } return {}; } var chars = ..string.split(q); if(polyphone && (#chars==1)){ var ret = {} for(p,c in pyToChars){ var i = ..table.find(c,chars[1]); if( i ) ..table.push(ret,{p;i/#chars}); } ..table.sort(ret,lambda(b)owner[2]