/*
 * IdentificateurChaine.java, 08/05/2021
 * IUT Rodez 2020-2021, info1
 * pas de copyright, aucun droits
 */

package interpreteurlir.donnees;

import interpreteurlir.InterpreteurException;

/**
 * Identificateur de chaîne
 * @author Nicolas Caminade
 * @author Sylvan Courtiol
 * @author Pierre Debas
 * @author Heia Dexter
 * @author Lucas Vabre
 */
public class IdentificateurChaine extends Identificateur {

    /**
     * Instantiation d'identificateur de chaîne
     * @param identificateur a instancier
     * @throws InterpreteurException si l'identificateur est invalide
     */
    public IdentificateurChaine(String identificateur) {
        super(identificateur);
        identificateur = identificateur.trim();
        if(!isIdentificateurChaine(identificateur)) {
           throw new InterpreteurException(identificateur
                                           + " n'est pas un identificateur"
                                           + " de chaine");
        }
    }

    /**
     * Prédicat attestant la validité de l'identificateur
     * @param identificateur à tester
     * @return true si l'identificateur est bien un identificateur d'entier
     *                 false sinon
     */
    public static boolean isIdentificateurChaine(String identificateur) {

        return identificateur.length() >= 2
                && identificateur.charAt(0) == '$'
                && Character.isLetter(identificateur.charAt(1));
    }
}
