private static ArrayList<NumberToken> toTokens(ArrayList<String> in){
        assert (in != null);
        
        ArrayList<NumberToken> toReturn = new ArrayList<NumberToken>(in.size()-1);
        
        for (String s : in){
            NumberToken toAdd = new NumberToken(s);
            
            // If we couldn't create a valid token, return failure
            if (toAdd.type == null){
                return null;
            }
            assert(toAdd.value != 0) : "No value should be zero - it should be -1 if N/A";
            toReturn.add(toAdd);
        }
        
        if (toReturn.size() == 0){
            em.error("No tokens.");
            return null;
        }
        
        return toReturn;
    }