function resolveIdentifier( node ) {
		var identifier;
		var command;
		var i;

		// Ignore placeholder nodes:
		if ( node.start >= node.end ) {
			return true;
		}
		// Ignore node if it is an unrecognized `keyword`:
		if ( isUnrecognizedKeyword( node.name ) || isUnrecognizedControlKeyword( node.name ) ) { // eslint-disable-line max-len
			return true;
		}
		// If node is an unrecognized `literal`, push it as a token:
		if ( isUnrecognizedReservedLiteral( node.name ) ) {
			tokens.push({
				'value': node.name,
				'type': 'literal',
				'start': node.start,
				'end': node.end
			});
			return true;
		}
		// If identifier is defined in the local scope, assume and treat it like a `variable` and push it as a token...
		if ( contains( resolveLocalScope( ast, node ), node.name ) ) {
			tokens.push({
				'value': node.name,
				'type': 'variable',
				'start': node.start,
				'end': node.end
			});
			return true;
		}
		// If identifier is a REPL command, push it as a token...
		for ( i = 0; i < COMMANDS.length; i++ ) {
			command = COMMANDS[ i ];
			if ( node.name === command[ 0 ] ) {
				tokens.push({
					'value': node.name,
					'type': 'command',
					'start': node.start,
					'end': node.end
				});
				return true;
			}
		}
		// If identifier is in global context, push it as a token...
		identifier = context[ node.name ];
		if ( identifier ) {
			if ( isLiteralType( typeof identifier ) ) {
				tokens.push({
					'value': node.name,
					'type': 'variable',
					'start': node.start,
					'end': node.end
				});
			} else {
				tokens.push({
					'value': node.name,
					'type': typeof identifier,
					'start': node.start,
					'end': node.end
				});
			}
			return true;
		}
		return false;
	}
Resolves an `Identifier` node.

@private
@param {Object} node - AST node
@returns {boolean} boolean indicating whether the `Identifier` was resolved