memberGet method

  1. @override
dynamic memberGet(
  1. String id, {
  2. String? from,
  3. bool isRecursive = false,
  4. bool ignoreUndefined = false,
})
override

Fetch a member by the id, in the form of

object.id

id must be of String type.

Implementation

@override
dynamic memberGet(String id,
    {String? from, bool isRecursive = false, bool ignoreUndefined = false}) {
  if (id == interpreter.lexicon.idBind) {
    return ({positionalArgs, namedArgs}) => bind(positionalArgs.first);
  } else if (id == interpreter.lexicon.idApply) {
    return ({positionalArgs, namedArgs}) {
      assert(positionalArgs.length > 0);
      return apply(
        positionalArgs.first,
        positionalArgs: positionalArgs.sublist(1),
        namedArgs: namedArgs,
      );
    };
  } else if (id == interpreter.lexicon.idCall) {
    return this;
  }

  if (!ignoreUndefined) {
    throw HTError.undefined(id);
  }
}