boolean needDot = true;
InternalStringBuilder buf = new InternalStringBuilder();
buf.append("{");
for(int i = start; i < _tokens.size(); i++) {
ExpressionToken tok = (ExpressionToken)_tokens.get(i);
if(tok instanceof ArrayIndexToken) {
buf.append(tok.getTokenString());
needDot = false;
} else if(tok instanceof IdentifierToken) {
if(needDot && i != start) buf.append(".");
buf.append(tok.toString());
needDot = true;
} else if(tok instanceof MapKeyToken) {
buf.append(tok.getTokenString());
needDot = false;
}
}
buf.append("}");
return buf.toString();