@value.setter
def value(self, value):
    if (value is None):
        return
    tokens = re.findall('(\\w{1,2})(\\d[+,-])', value)
    if (not tokens):
        raise ValueError(f'Invalid element {value}.')
    [tokens] = tokens
    (self.symbol, self.charge) = tokens
@value.setter
def value(self, value):
    if (value is None):
        return
    tokens = re.findall('(\\w{1,2})(\\d[+,-])', value)
    if (not tokens):
        raise ValueError(f'Invalid element {value}.')
    [tokens] = tokens
    (self.symbol, self.charge) = tokens