tokenString method
Implementation
String tokenString( ClipParam param, int code, dynamic token ){
String string = "";
ParamString real = ParamString();
ParamString imag = ParamString();
String tmp = "";
int cur;
switch( code ){
case ClipGlobal.codeTop:
string = "(";
break;
case ClipGlobal.codeEnd:
string = ")";
break;
case ClipGlobal.codeArrayTop:
string = "{";
break;
case ClipGlobal.codeArrayEnd:
string = "}";
break;
case ClipGlobal.codeParamAns:
string = "&";
break;
case ClipGlobal.codeParamArray:
string = "[]";
break;
case ClipGlobal.codeVariable:
if( param.variable().label().label(token) != null ){
string = param.variable().label().label(token)!;
} else if( token == 0 ){
string = "@";
} else {
string = "@${String.fromCharCode( token )}";
}
break;
case ClipGlobal.codeArray:
if( param.array().label().label(token) != null ){
string = param.array().label().label(token)!;
} else {
string = "@@${String.fromCharCode( token )}";
}
break;
case ClipGlobal.codeAutoVar:
case ClipGlobal.codeAutoArray:
case ClipGlobal.codeGlobalVar:
case ClipGlobal.codeGlobalArray:
case ClipGlobal.codeLabel:
string = token;
break;
case ClipGlobal.codeOperator:
string = _tokenOp[token];
break;
case ClipGlobal.codeSe:
string = "\$";
if( token == ClipGlobal.seNull ){
break;
} else if( token - 1 < _tokenSe.length ){
string += _tokenSe[token - 1];
break;
}
token -= ClipGlobal.seFunc;
// そのまま下に流す
continue caseClipGlobalCodeFunction;
caseClipGlobalCodeFunction:
case ClipGlobal.codeFunction:
string += _tokenFunc[token];
break;
case ClipGlobal.codeStatement:
string = _tokenStat[token];
break;
case ClipGlobal.codeExtFunc:
string = "!$token";
break;
case ClipGlobal.codeCommand:
string = ":";
if( token != ClipGlobal.commandNull ){
string += _tokenCommand[token - 1];
}
break;
case ClipGlobal.codeConstant:
valueToString( param, token, real, imag );
tmp = real.str() + imag.str();
cur = 0;
do {
switch( ClipMath.charAt( tmp, cur ) ){
case '-':
case '+':
string += '\\';
break;
}
string += ClipMath.charAt( tmp, cur );
cur++;
} while( cur < tmp.length );
break;
case ClipGlobal.codeString:
cur = 0;
do {
if( token.charAt( cur ) == ']' ){
tmp += '\\';
}
tmp += token.charAt( cur );
cur++;
} while( cur < token.length );
string = "[\"$tmp]";
break;
default:
string = "";
break;
}
if( ClipMath.charAt( string, 0 ) == '\$' ){
return string.toUpperCase();
}
return string;
}