setIdentifierValue method

Object? setIdentifierValue(
  1. String identifier,
  2. Object? value, {
  3. bool constant = false,
})

Sets an identifier value.

Implementation

Object? setIdentifierValue(String identifier, Object? value, {bool constant = false}) {
  if (!ScrinyParser.isValidIdentifier(identifier)) {
    throw ArgumentError('Invalid identifier : $identifier.');
  }
  if (!isVariableValueValid(value)) {
    throw ArgumentError('Invalid value : $value.');
  }
  _Value? currentValue = _values[identifier];
  if (currentValue?.constant == true) {
    throw ArgumentError('Cannot modify a constant : $identifier.');
  }
  _values[identifier] = _Value(
    value: value,
    constant: constant,
  );
  return currentValue?.value;
}