public void resolveSymbol() {

		switch (m_lex.tok().type()) {

		case INT:
		case FLOAT:
		case CHAR:
		case STRING:
			updateCurrent(m_symbols.get("{literal}"));
			break;

		case ID: {
			Symbol smb = m_symbols.get(m_lex.tok().value());
			if (smb == null) {
				smb = m_scope.find(m_lex.tok().value());
			}
			updateCurrent(smb);
			break;
		}

		case COP:
		case OP: {
			Symbol smb = m_symbols.get(m_lex.tok().value());
			if (smb == null) {
				m_lex.tok().error("Unexpected token.");
				return;
			}
			updateCurrent(smb);
			break;
		}

		default:
			break;
		}
	}