public boolean addLabel(String label)
        throws LabelAlreadyExistsError {
        if(labelIndexes.containsKey(label))
            throw new LabelAlreadyExistsError(label);

        int thisIndex = resolvablesList.size();
        PositionedResolvable pr = new PositionedResolvable(label, wordPosition);
        resolvablesList.add(pr);
        assert(resolvablesList.get(thisIndex) == pr);

        labelIndexes.put(label, thisIndex);

        prepared = false;

        return true;
    }