function createMemberExpression(operand, memberName, ...memberNames) {
  if (typeof operand === 'string' || operand instanceof IdentifierToken)
    operand = createIdentifierExpression(operand);
  if (typeof memberName === 'string')
    memberName = createIdentifierToken(memberName);
  if (memberName instanceof LiteralToken)
    memberName = new LiteralExpression(null, memberName);

  let tree = memberName instanceof LiteralExpression ?
      new MemberLookupExpression(null, operand, memberName) :
      new MemberExpression(null, operand, memberName);
  for (let i = 0; i < memberNames.length; i++) {
    tree = createMemberExpression(tree, memberNames[i]);
  }
  return tree;
}
Creates 'operand.memberName' or 'operand[memberName]' if memberName
is a LiteralToken or LiteralExpression.

@param {string|IdentifierToken|ParseTree} operand
@param {string|IdentifierToken|LiteralToken|LiteralExpression} memberName
@param {...string|IdentifierToken} memberNames
@return {MemberExpression|MemberLookupExpression}