* @return Variable Definition in a String List
*/
private static StringList parse(PageContext pc,ParserString ps, boolean doLowerCase) {
String id=readIdentifier(ps,doLowerCase);
if(id==null)return null;
StringList list=new StringList(id);
CFMLExpressionInterpreter interpreter=null;
while(true) {
if(ps.forwardIfCurrent('.')) {
id=readIdentifier(ps,doLowerCase);
if(id==null)return null;
list.add(id);
}
else if(ps.forwardIfCurrent('[')) {
if(interpreter==null)interpreter=new CFMLExpressionInterpreter();
try {
list.add(Caster.toString(interpreter.interpretPart(pc,ps)));
} catch (PageException e) {
return null;
}
if(!ps.forwardIfCurrent(']')) return null;
ps.removeSpace();
}
else break;
}
if(ps.isValidIndex()) return null;
list.reset();
return list;
}